Skip to content

Security and Remote Access

nguyen.david edited this page Aug 13, 2026 · 1 revision

Security and Remote Access

CCAM stores prompts, paths, tool activity, transcripts, and operational metadata. Treat it as access to the underlying development environment.

Default trust boundary

The server binds to 127.0.0.1 by default. For a local-only instance, loopback is the primary boundary. Do not change the bind address just to simplify access from another device.

When exposing the dashboard

Use all of these controls together:

  • TLS at the edge;
  • DASHBOARD_HOST set intentionally;
  • DASHBOARD_TOKEN or DASHBOARD_TOKEN_FILE;
  • a narrow DASHBOARD_ALLOWED_HOSTS list;
  • firewall or network-policy restrictions;
  • authenticated WebSocket proxying;
  • logs that redact authorization values.

Use separate secrets for dashboard clients, hook ingestion, and MCP. Separation limits the effect of one leaked credential.

Endpoint exposure matrix

Surface Typical consumer Recommended exposure
UI, REST, WebSocket Trusted users and CLI TLS + dashboard token
/api/hooks/* Provider hosts TLS + independent hook token; only when needed
/api/metrics Prometheus Private network + dashboard token
MCP HTTP/SSE Trusted MCP clients Private or TLS edge + MCP transport token
Health probe Load balancer/orchestrator Minimal response, no sensitive payload

The full Compose Nginx policy blocks hooks, metrics, and MCP by default. Enable only the specific snippets required.

Secret handling

  • Prefer file-backed secrets in containers and Kubernetes.
  • Generate long random values and set restrictive filesystem permissions.
  • Never put production tokens in Helm values, Terraform state, shell history, screenshots, or tickets.
  • Rotate one credential class at a time and test its consumer.
  • Backups inherit the same sensitivity as the live database.

Browser and transcript privacy

Restrict access based on transcript content, not merely dashboard configuration. Tool results may contain source code, file paths, environment details, or accidental secrets. Redact exports before sharing and avoid exposing CCAM to an untrusted LAN.

Security response

If a token may be exposed: remove public access if possible, rotate the affected token, restart consumers, verify rejected access with the old token, and inspect edge/server logs. If transcript data may have leaked, follow your repository and secret-rotation incident process.

Canonical guidance: Security policy and Deployment reference.

Clone this wiki locally