Update a proxy

PUT
/v1/{namespace}/proxies/{proxy}

Replaces the proxy's name, description, firewalls, user header, and trust. Needs ns:update. The credential and the proxy's own CA stay the same. Answered with 400 in the same cases as Create a proxy.

Authorization

headerAuthorizationBearer <token>

A personal or service access token, sent as Authorization: Bearer <token>. See access tokens.

Path Parameters

namespace*string

The namespace id.

proxy*string

The proxy id.

Request Body

application/json
  1. body

The writable fields of a proxy.

name*string

A display name. Required.

description?string

A free-form description.

firewalls?array<string>

The firewalls whose registries the proxy routes. Duplicates are dropped. Container (OCI) firewalls cannot be attached, and no two may cover the same host.

userHeader?string

How the user identity header is read. Defaults to none.

Value in"none""plain""base64"
userHeaderName?string

The header the user identity is read from. Defaults to X-Authenticated-User.

trust?string

The CA the web proxy trusts. Defaults to dedicated. shared is accepted only when the deployment has a shared root.

Value in"dedicated""shared"

Response Body

The updated proxy.

application/json
  1. response

An endpoint a company web proxy, such as Zscaler, Prisma Access, or Squid, chains package registry traffic to. Requests for a host an attached firewall covers are served by that firewall. The CA's private key and the credential are never returned.

id*string

The proxy id. Unique across all namespaces.

name*string

A display name.

description?string

A free-form description.

firewalls*array<string>

The firewalls whose registries the proxy routes. No two cover the same host. A proxy with no firewalls cannot authenticate.

userHeader*string

How the user identity header is read: none ignores it, plain reads it as the user name, base64 as the base64 of the user name. The value is recorded as proxyUser on log entries.

Value in"none""plain""base64"
userHeaderName*string

The header the user identity is read from.

trust*string

The CA the web proxy trusts: dedicated is the proxy's own CA, shared the deployment's shared root.

Value in"dedicated""shared"
caCertificatePem*string

The proxy's own CA certificate, PEM encoded. Present for every proxy; when trust is shared the web proxy trusts the shared root instead.

caFingerprint*string

The hex SHA-256 of the proxy's own CA certificate.

caExpiresAt*string

When the proxy's own CA expires. It is created valid for two years.

Formatdate-time
secretRotatedAt?string

When the credential was last rotated. Absent until the first rotation.

Formatdate-time
createdAt?string

When the proxy was created.

Formatdate-time
updatedAt?string

When the proxy was last changed.

Formatdate-time
curl -X PUT 'https://eu-sov-1.bytesafecloud.eu/v1/my-namespace-id/proxies/proxy-01kya2b7m3q8xz5n0hdr4wcv6t' \  -H 'Content-Type: application/json' \  -d '{  "name": "Zscaler, Stockholm office",  "description": "Office egress",  "firewalls": [    "npm-main"  ],  "userHeader": "plain",  "userHeaderName": "X-Authenticated-User",  "trust": "shared"}'
{  "id": "proxy-01kya2b7m3q8xz5n0hdr4wcv6t",  "name": "Zscaler, Stockholm office",  "description": "Office egress",  "firewalls": [    "npm-main"  ],  "userHeader": "plain",  "userHeaderName": "X-Authenticated-User",  "trust": "shared",  "caCertificatePem": "-----BEGIN CERTIFICATE-----\nMIIBszCCAVmgAwIBAgIQ...\n-----END CERTIFICATE-----\n",  "caFingerprint": "97ebbd4919033a7226e1c8b7f7fde3a4c2b1e0f9d8c7b6a5f4e3d2c1b0a99887",  "caExpiresAt": "2028-11-04T09:30:00Z",  "secretRotatedAt": "2026-11-05T10:12:00Z",  "createdAt": "2026-11-05T09:30:00Z",  "updatedAt": "2026-11-05T10:12:00Z"}