mirror of
https://github.com/openai/codex.git
synced 2026-10-16 16:58:46 +00:00
## Why App-server clients need a way to connect to executors that require bearer authentication through `environment/add` and `environments.toml`. ## What changed - Add optional `authBearerToken` to `environment/add` and `auth_bearer_token` to URL entries in `environments.toml`. - Send the token as an `Authorization: Bearer` header on initial connections and reconnects, without automatic refresh. Require `wss://` or a loopback destination when a token is supplied. - Redact tokens in debug output, mark connection headers sensitive, and omit source text from TOML parse errors. - Preserve unauthenticated behavior when tokens are omitted, including requests with a null `authBearerToken`. ## Testing Add integration coverage for authenticated and unauthenticated executors through both RPC and TOML configuration, including missing, null, incorrect, and malformed RPC tokens. Extend tests for reconnect authorization headers, token redaction, URL-only token configuration, and timeout preservation. GitOrigin-RevId: 2a5d48a1846df1720e4a9b295968348378c287c6
102 lines
3.0 KiB
TOML
102 lines
3.0 KiB
TOML
[package]
|
|
name = "codex-exec-server"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
# cargo-shear 1.11.2 misresolves this #[path] module in src/client.rs.
|
|
# The module is compiled and exercised by the exec-server unit test target.
|
|
[package.metadata.cargo-shear]
|
|
ignored-paths = ["tests/unit/client_provisioning_tests.rs"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
arc-swap = { workspace = true }
|
|
axum = { workspace = true, features = ["http1", "tokio", "ws"] }
|
|
base64 = { workspace = true }
|
|
bytes = { workspace = true }
|
|
clatter = { workspace = true }
|
|
codex-api = { workspace = true }
|
|
codex-build-info = { workspace = true }
|
|
codex-config = { workspace = true }
|
|
codex-http-client = { workspace = true }
|
|
codex-exec-server-protocol = { workspace = true }
|
|
codex-file-system = { workspace = true }
|
|
codex-network-proxy = { workspace = true }
|
|
codex-otel = { workspace = true }
|
|
codex-protocol = { workspace = true }
|
|
codex-sandboxing = { workspace = true }
|
|
codex-shell-command = { workspace = true }
|
|
codex-utils-absolute-path = { workspace = true }
|
|
codex-utils-home-dir = { workspace = true }
|
|
codex-utils-path-uri = { workspace = true }
|
|
codex-utils-pty = { workspace = true }
|
|
codex-utils-redacted-string = { workspace = true }
|
|
codex-utils-rustls-provider = { workspace = true }
|
|
codex-websocket-auth = { workspace = true }
|
|
codex-websocket-client = { workspace = true }
|
|
dirs = { workspace = true }
|
|
futures = { workspace = true }
|
|
http = { workspace = true }
|
|
opentelemetry = { workspace = true }
|
|
prost = "0.14.3"
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
toml = { workspace = true }
|
|
tokio = { workspace = true, features = [
|
|
"fs",
|
|
"io-std",
|
|
"io-util",
|
|
"macros",
|
|
"net",
|
|
"process",
|
|
"rt-multi-thread",
|
|
"sync",
|
|
"time",
|
|
] }
|
|
tokio-util = { workspace = true, features = ["io", "rt"] }
|
|
tokio-tungstenite = { workspace = true }
|
|
tracing = { workspace = true }
|
|
url = { workspace = true }
|
|
uuid = { workspace = true, features = ["v4"] }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = { workspace = true }
|
|
rustix = { workspace = true, features = ["fs"] }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.52", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Security",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_IO",
|
|
"Win32_System_Kernel",
|
|
"Win32_System_Pipes",
|
|
"Win32_System_Threading",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
anyhow = { workspace = true }
|
|
codex-exec-server-test-support = { workspace = true }
|
|
codex-test-binary-support = { workspace = true }
|
|
codex-utils-cargo-bin = { workspace = true }
|
|
ctor = { workspace = true }
|
|
http = { workspace = true }
|
|
opentelemetry_sdk = { workspace = true }
|
|
pretty_assertions = { workspace = true }
|
|
rcgen = { workspace = true }
|
|
rustls = { workspace = true }
|
|
serial_test = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
test-case = "3.3.1"
|
|
tokio = { workspace = true, features = ["test-util"] }
|
|
tracing-opentelemetry = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
wiremock = { workspace = true }
|