Production checklist
-
Z4J_SECRETandZ4J_SESSION_SECRETeach independently set to 64 hex chars of entropy. -
Z4J_AUDIT_CHAIN_SECRETset to a further independent key of at least 32 bytes. Outside development this is required and has no fallback, so the brain will refuse to start without it. Store it where whoever administers the database cannot read it, otherwise the audit chain proves less than it appears to. -
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).
- Email notification channel configured per project if you use invitations / password reset.
-
Z4J_METRICS_AUTH_TOKENset (or auto-minted) and/metricsscraped by Prometheus. - Container resource limits set (not unlimited).
- Container healthcheck configured.
- Log aggregation sinks z4j’s JSON stdout.
-
z4j audit verifyscheduled via cron / Kubernetes CronJob (the CLI is the verification entry point; there is no in-process auto-verify loop).
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.