mirror of
https://github.com/openai/codex.git
synced 2026-08-23 13:09:46 +00:00
Add network policy metadata to environment configuration (#39055)
## What changed - Add `EnvironmentNetworkPolicy` as a serializable view of portable domain, Unix-socket, upstream-proxy, and local-binding restrictions without exposing controller-owned proxy runtime settings. - Add an optional `network_policy` field to `EnvironmentConfig` and re-export the policy and related permission types through the core APIs. - Reject owner-provided network policies during environment preview and readiness until runtime enforcement is implemented, while preserving the existing controller policy when the field is absent. ## Testing - Cover rejection through both environment preview and readiness, including preservation of the existing environment selection. GitOrigin-RevId: 80ad4cf4d4a45632daa7a823e6cf568eb0e8bb80
This commit is contained in:
@@ -2,6 +2,7 @@ use crate::capabilities::SelectedCapabilityRoot;
|
||||
use crate::config_types::ShellEnvironmentPolicy;
|
||||
use crate::models::PermissionProfileSnapshot;
|
||||
use codex_execpolicy::RequirementsExecPolicy;
|
||||
use codex_network_proxy::EnvironmentNetworkPolicy;
|
||||
|
||||
/// Configuration supplied for a thread's selected environment.
|
||||
#[allow(clippy::large_enum_variant)]
|
||||
@@ -28,6 +29,9 @@ pub struct EnvironmentConfig {
|
||||
pub shell_environment_policy: ShellEnvironmentPolicy,
|
||||
/// Additional managed command restrictions for this environment attachment.
|
||||
pub exec_policy: Option<RequirementsExecPolicy>,
|
||||
/// Owner-provided traffic restrictions. `None` keeps the existing controller policy.
|
||||
/// Core rejects `Some` until attachment-owned network enforcement is implemented.
|
||||
pub network_policy: Option<EnvironmentNetworkPolicy>,
|
||||
/// Capability roots selected for this thread's environment attachment.
|
||||
pub selected_capability_roots: Vec<SelectedCapabilityRoot>,
|
||||
}
|
||||
@@ -40,6 +44,7 @@ impl std::fmt::Debug for EnvironmentConfig {
|
||||
.field("permission_profile", &self.permission_profile)
|
||||
.field("shell_environment_policy", &"<redacted>")
|
||||
.field("exec_policy", &self.exec_policy)
|
||||
.field("network_policy", &self.network_policy)
|
||||
.field("selected_capability_roots", &self.selected_capability_roots)
|
||||
.finish()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user