Production checklist
-
Z4J_SECRET,Z4J_SESSION_SECRET,Z4J_AUDIT_SECRETeach independently set to 64 hex chars of entropy. -
Z4J_PUBLIC_URLset to the public HTTPS URL (used in emails, cookies, cors). - TLS terminated in front of the brain;
X-Forwarded-Protohonored. - Postgres 17+ with backups (
pg_dumpschedule 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_TOKENset and/metricsscraped 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).
Agents
Section titled “Agents”- One agent token per agent, stored in the app’s secret manager.
- Token rotation plan documented (mint new → deploy → revoke old).
-
Z4J_BRAIN_URLuseswss://in prod. -
agent_namedistinguishes web / worker / beat / cron processes. - Egress firewall allows WebSocket to brain.
Security posture
Section titled “Security posture”- 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).
Operations
Section titled “Operations”- 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?
Compliance notes
Section titled “Compliance notes”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.