Skip to content

CLI and scheduler reference

Run Artisan commands inside the core container or the matching production service. Commands that mutate runtime state still use jobs and do not perform synchronous deployment.

CDNFoundry Artisan commands

CommandPurpose
cdnf:admin:create --name= --email=Interactively create an administrator
api:openapi [--check]Generate or verify the route-derived API contract and endpoint catalog
platform:settings:show [group] [--json]Show settings, descriptions, defaults, and active values
platform:settings:set group valuesValidate a JSON object and update one group
dns:deprovision-dueDispatch DNS removals whose delay elapsed
domains:finalize-deprovisioning --limit=100Finalize bounded retired domains
edge:complete-placement-drains --limit=100Complete ready target/source transitions
edge:dispatch-origin-checks --limit=100Dispatch due opt-in origin checks
edge:prune-revisions --limit=1000Prune derived history while keeping protected revisions
tls:dispatch-maintenance --limit=500Renew, retry, clean challenge state, and alert
security:reconcile-readiness --limit=100Expire controls and advance recovery
waf:expire-exclusions --limit=100Expire bounded managed-WAF exclusions and queue signed revisions
usage:finalizeDispatch the most recently finalizable usage hour
audit:prune --batch=1000Delete one bounded expired audit batch
backups:create [--wait]Queue or synchronously execute one Restic backup
backups:restore operationExecute a preflighted restore in maintenance mode

backups:restore requires a successful preflight operation and the explicit BACKUP_RESTORE_ALLOWED maintenance boundary. It intentionally leaves maintenance mode enabled for operator verification.

Scheduler

ScheduleWork
Every minuteDNS deprovision, domain finalization, placement drains, origin checks, platform DNS reconcile, security readiness, WAF exclusion expiry, scheduler heartbeat
Every five minutesHorizon snapshot
HourlyIdempotency pruning, managed TLS maintenance
Hourly at minute 20Usage finalization
Daily 01:30Control backup
Daily 02:30Edge revision pruning
Daily 03:10Audit pruning

Every schedule uses overlap prevention.

Make targets

TargetPurpose
dev-assetsBuild/export production frontend assets
dev-upBuild and start full development plus devtools
dev-edge-up, dev-edge-statusStart or inspect UI-enrolled local agents
dev-scale-upStart only bounded scale-test dependencies
dev-downStop containers without removing volumes
dev-migrate, dev-pdns-migrateExplicit schema deployment
dev-testIsolated SQLite Laravel suite
dev-e2eCumulative non-browser real-runtime suite
dev-scale-e2e500,000-zone/1,000,000-record qualification
dev-phase7-e2eAnalytics runtime qualification
dev-phase8-e2eOperations runtime qualification
dev-phase8-recovery-e2eRecovery qualification
dev-phase8-upgrade-e2eMixed-version upgrade qualification
dev-phase8-throughput-e2eHTTP/DNS throughput sample
dev-phase8-mmdb-e2eMMDB updater qualification
prod-pullPull pinned production images
prod-migrate, prod-pdns-migrateExplicit production migrations
prod-control, prod-dns, prod-telemetry, prod-edgeStart one profile
config-checkValidate base and overlay Compose contracts
openapi-checkVerify committed route contract
docs-checkRun documentation lint, links, coverage, and build

CDNFoundry documentation