ADMIN · SCHEDULED JOBS

Scheduled jobs

Pre-made cleanup, backup, health, and integrity jobs that ship enabled by default. All are fully adjustable in Admin → Scheduled Jobs.

Pre-made catalog

NameDescriptionDefault schedule
audit-log-cleanupDelete audit events older than the retention window (default 90 days)0 3 * * *
query-history-cleanupKeep last 500 results per user, 30-day max0 4 * * *
file-repo-quotaEnforce per-user quota (soft 500MB / hard 1GB); prune oldest non-pinned0 5 * * 0
backup-rotationKeep 7 daily + 4 weekly + 3 monthly snapshots0 2 * * *
bind9-query-log-rollRoll BIND9 query log to a 48-hour window0 * * * *
pg-vacuum-analyzeVACUUM ANALYZE; reclaims dead tuples + refreshes planner stats0 1 * * *
pg-reindexREINDEX hot tables (audit_events, query_history, monitor_*)0 1 * * 0
celery-result-purgeDelete Celery result payloads older than 7 days0 3 * * *
stale-session-cleanupRevoke user sessions idle > 12 hours (API tokens unaffected)0 */6 * * *
monitor-retentionRotate monitor raw/5m/1h per retention policy0 2 * * *
pcap-cleanupDelete pcap files older than 14 days (pinned captures skipped)0 4 * * *
db-full-backupCompressed pg_dump to /var/lib/meridian/backups/full/0 2 * * *
db-wal-shipShip PG WAL to the archive for point-in-time recovery*/15 * * * *
db-integrity-scanVerify the HMAC hash chain; CRITICAL alert on mismatch0 5 * * *
vuln-scanOSV + NVD scan of installed OS + app deps0 2 * * *
cert-expiry-checkScan every monitored cert; alert at 30/14/7 days0 6 * * *
cert-auto-renewRenew auto-managed certs within their renew threshold0 2 * * *
stale-ad-reportWeekly report of AD accounts inactive > 90 days0 7 * * 1
dhcp-utilizationHourly scope-utilization snapshot for trend graphs15 * * * *
ipam-conflict-scanCompare live subnet sweep against IPAM records0 5 * * *
oss-component-scanRefresh oss_components; regenerate SBOM; alert on new copyleft0 4 * * *
pre-update-snapshotFires before any auto-update; enables rollbackon-event
feature-health-pingHourly ping of each enabled integration30 * * * *

Editing a job

Admin → Scheduled Jobs → click any row. You can change:

All edits are audit-logged with the before/after config.

Creating a custom job

Click "+ Custom job" in the Scheduled Jobs tab. You'll pick a handler from the installed set, provide a cron, fill out the job-specific config, and save. Custom jobs appear alongside the pre-made ones.

Change-freeze (CAB) windows

In Admin → Scheduled Jobs → Settings you can declare CAB windows (start + end + blocked action list). Jobs in the respects_cab set (most write-ish jobs) will refuse to fire during a CAB window and log a deferral to the job-run table. They catch up on the next scheduled tick after the window ends.

Running a job on demand

Run-now requests bypass CAB windows only for jobs without the respects_cab flag; write-ish jobs still honor the freeze.

Job history

Each job run inserts a row into job_runs: started, completed, status, output, stats JSON. The Scheduled Jobs tab shows the last run's result; for full history use the CLI:

sudo meridian-nip jobs history <job-name> --limit 50
MERIDIAN 1.0.0 · DOCUMENTATION
meridiannip.com ↗