The egress sidecar is a per-sandbox process that enforces outbound network policy using DNS-based filtering. It runs inside the sandbox pod and is accessible at portDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/opensandbox-group/OpenSandbox/llms.txt
Use this file to discover all available pages before exploring further.
18080 on the sidecar’s local address. From the server side, access is established by first resolving the sandbox endpoint for the egress port via GET /v1/sandboxes/{sandboxId}/endpoints/{port}, then calling the sidecar endpoint directly. This API supports runtime inspection and mutation of FQDN-based egress rules, as well as management of sandbox-local Credential Vault bindings for transparent credential injection.
Initial egress policy configuration (set at sandbox creation time) is part of the
networkPolicy field in POST /v1/sandboxes. This API is for runtime inspection and mutation after the sandbox is already running.secureAccess: true, the endpoint resolver returns required headers — these must be forwarded on every egress API request.
GET /policy
Returns the currently enforced egress policy and the sidecar’s derived runtime mode metadata.Response — 200 OK
Operation status reported by the sidecar. Example:
"ok".Derived runtime mode for the current policy. Example:
"deny_all".Egress sidecar enforcement backend mode. Example:
"dns".Optional human-readable reason when the sidecar returns extra context.
The currently enforced network policy.
Example
PATCH /policy
Merges incoming egress rules into the currently enforced policy. This uses merge semantics: existing rules remain unless overridden, incoming rules take higher priority than existing rules, and if multiple incoming rules reference the sametarget, the first one wins.
Request Body
An array ofNetworkRule objects (minimum 1 item):
Whether to allow or deny the target. Enum:
allow, deny.FQDN or wildcard domain to match. Examples:
"example.com", "*.example.com". IP/CIDR targets are not currently supported.Response — 200 OK
Returns aPolicyStatusResponse with the updated status, mode, and enforcementMode.
Patch Semantics
- First Rule Wins
- Merge With Existing
When multiple incoming rules reference the same Result:
target, only the first rule in the array is applied:example.com is allowed (first rule wins).Example
DELETE /policy
Removes specific egress rules from the currently enforced policy by target FQDN. Targets not present in the current policy are silently ignored (idempotent operation).Request Body
An array of target strings (minimum 1 item) identifying the rules to remove:Response — 200 OK
Returns aPolicyStatusResponse confirming the updated policy state.
Example
POST /credential-vault
Creates the initial sandbox-local Credential Vault revision and activates it in Credential Proxy. Inline credential values are write-only and are never returned by this or any other endpoint. Returns409 Conflict if a Credential Vault already exists.
Request Body
Array of credentials to store.
Array of credential bindings that map credentials to outbound request targets.
Response — 201 Created
Current vault revision number.
Sanitized credential metadata (names and source types only — no values).
Sanitized binding metadata.
Example
GET /credential-vault
Returns sanitized Credential Vault state. Credential values are never included in responses.Response — 200 OK
Current vault revision number.
Array of
CredentialMetadata objects (name, sourceType, revision).Array of
CredentialBindingMetadata objects (name, revision, match, auth type metadata).Example
PATCH /credential-vault
Atomically mutates credentials and bindings in the vault. Supports add, replace, and delete operations for both credentials and bindings. Optionally enforces optimistic concurrency viaexpectedRevision.
Request Body
Optional optimistic concurrency guard. The patch is rejected with
409 Conflict if the vault’s current revision does not match.Credential mutation set with optional
add, replace, and delete arrays.Binding mutation set with optional
add, replace, and delete arrays.Example
DELETE /credential-vault
Deletes the entire sandbox-local Credential Vault. Returns204 No Content on success.
Example
GET /credential-vault/credentials
Lists sanitized metadata for all credentials in the vault.Example
GET /credential-vault/credentials/
Returns sanitized metadata for a single credential. Credential values are never returned.Path Parameters
Credential name to retrieve.
Example
GET /credential-vault/bindings
Lists sanitized metadata for all credential bindings.Example
GET /credential-vault/bindings/
Returns sanitized metadata for a single credential binding.Path Parameters
Binding name to retrieve.
Example
Auth Injection Types
Theauth field in a credential binding supports four injection strategies:
| Type | Description |
|---|---|
bearer | Injects Authorization: Bearer <value> header using the referenced credential. |
basic | Injects Authorization: Basic <base64(user:pass)> using a pre-encoded credential. |
apiKey | Injects a named request header (e.g. X-Api-Key) with the credential value. |
customHeaders | Injects one or more named headers, each mapped to a credential value. |