Skip to content

Production checklist

  • Z4J_SECRET, Z4J_SESSION_SECRET, Z4J_AUDIT_SECRET each independently set to 64 hex chars of entropy.
  • Z4J_PUBLIC_URL set to the public HTTPS URL (used in emails, cookies, cors).
  • TLS terminated in front of the brain; X-Forwarded-Proto honored.
  • Postgres 17+ with backups (pg_dump schedule or managed service snapshots).
  • At least two admin accounts (avoids lockout if one is lost).
  • SMTP configured if you use invitations / password reset.
  • Z4J_METRICS_TOKEN set and /metrics scraped by Prometheus.
  • Container resource limits set (not unlimited).
  • Container healthcheck configured.
  • Log aggregation sinks the brain’s JSON stdout.
  • Audit chain verify scheduled (cron or Z4J_AUDIT_VERIFY_INTERVAL).
  • One agent token per agent, stored in the app’s secret manager.
  • Token rotation plan documented (mint new → deploy → revoke old).
  • Z4J_BRAIN_URL uses wss:// in prod.
  • agent_name distinguishes web / worker / beat / cron processes.
  • Egress firewall allows WebSocket to brain.
  • Redaction rules reviewed for your domain-specific secrets (see redaction).
  • Rate limits verified on /auth/*, /setup, /invite/*.
  • No Z4J_BOOTSTRAP_ADMIN_* left in env after first boot.
  • Password policy appropriate for your org (length, complexity, denylist - all enforced by default).
  • Audit retention policy documented (z4j doesn’t auto-delete; you decide).
  • Runbook for “brain down” (restart, check Postgres, check disk).
  • Runbook for “agent offline” (check token, network, app logs).
  • Runbook for “stuck tasks” (reconciliation worker status, manual retry).
  • Disaster recovery tested - can you restore Postgres + re-mint agent tokens?

z4j is not certified against SOC 2, HIPAA, or ISO 27001. If you need compliance, the audit log export + Postgres backups provide most of the raw evidence, but you own the policies, controls, and external audit.