Skip to content

Proxy Settings control two container-wide knobs: is the proxy on, and what is the default policy when no rule matches. They live in a small, dedicated document with ETag concurrency — independent of the permissions matrix, hooks, and aliases.

GET /api/v1/containers/{id}/proxy/settings → data
{
"enable_proxy": true,
"default": "allow",
"file_version": 3,
"etag": "file:v3"
}
  • enable_proxy — boolean. When false, the proxy refuses to route any traffic for this container regardless of what’s in the permissions document. Useful as a global kill-switch.
  • default"allow" or "deny". The fallback decision when no group in the permissions document matches the incoming request.

VerbPathWhat it does
GET/api/v1/containers/{id}/proxy/settingsReturn current enable_proxy + default + ETag
PUT/api/v1/containers/{id}/proxy/settingsUpdate one or both fields. Requires If-Match: file:v<N>.

The PUT body accepts either field independently — you can flip enable_proxy without touching default or vice versa.

Terminal window
# Read current settings
hoody containers proxy settings get <container-id>
# Enable the proxy (pass --enable-proxy as a boolean flag; no value)
hoody containers proxy settings update <container-id> \
--enable-proxy \
--if-match file:v3
# Change the default policy to deny-by-default
hoody containers proxy settings update <container-id> \
--default deny \
--if-match file:v4
const current = await client.api.proxyDiscovery.getContainerProxySettings(containerId);
// current.data: { enable_proxy: true, default: 'allow', file_version: 3, etag: 'file:v3' }
await client.api.proxyDiscovery.updateContainerProxySettings(
containerId,
{ enable_proxy: false },
{ ifMatch: current.data.etag },
);

TaskDocument
Turn the whole proxy off for a containerSettingsenable_proxy: false
Set the catch-all allow/deny when no group matchesSettingsdefault
Define who (IP, JWT, password, token) can call what programPermissions
Attach MITM scripts to matching trafficHooks
Expose a container on a custom subdomainAliases

Proxy Settings are container-level only. There is no project-level settings endpoint; the per-container enable_proxy / default is the authoritative source for a given container. Project-level default policy can be set via the project’s proxy permissions document.


  • Proxy Permissions — the larger document that lists groups and per-program access.
  • Proxy Hooks — attaching MITM scripts that run inside your own hoody-exec.
  • Hoody Proxy overview — how Settings, Permissions, Hooks, and Aliases fit together.