AsterionDocumentation v0.4.1

Background jobs

What the scheduler and the queue do on their own, and when.

Scheduler

The scheduler container runs these tasks (cron expressions in UTC):

TaskWhenDoes
polaris:watchdogevery minutemarks satellites offline/online and notifies; ends one-shot jobs without progress for 2 h and scheduled runs without progress for 26 h; notifies overdue plans once
asterion:auto-plansevery 10 minutesrebuilds the automatic plans of every tenant (new tenants, satellites, targets)
asterion:ct-pollevery 10 minutespolls crt.sh for its share of the monitored domains (details)
asterion:reportsevery minutegenerates and sends the reports that are due
polaris:prunedaily 03:30enforces the retention of every kind of data, in small batches; also expired cache entries (one per satellite request) and fired one-time schedules older than 2 days
privacy:prunedaily 03:40deletes expired sessions and password reset links
asterion:rir-refreshdaily 04:15queues the refresh of registry and routing data of public IPs

Tasks that could overlap run withoutOverlapping: a slow round is never started twice.

The exact schedule of this release, as read from the code:

TaskCron (UTC)No overlap
asterion:auto-plans*/10 * * * *yes
polaris:watchdog* * * * *yes
polaris:prune30 3 * * *
privacy:prune40 3 * * *
asterion:rir-refresh15 4 * * *
asterion:ct-poll*/10 * * * *yes
asterion:reports* * * * *yes

Queue

The queue container works off:

  • SendNotification — one notification to one channel,
  • GenerateReport — builds the files of a report, stores them in the archive and mails them,
  • EnrichIp — RIPEstat and RDAP lookup of one public address.
  • LocateSatellite — locates a satellite from the address it connects from (on registration, when the address changes, and daily).

The queue lives in the database (QUEUE_CONNECTION=database); failed jobs land in failed_jobs.

Retention

DataKeptVariable
Satellite heartbeats30 daysPOLARIS_RETENTION_HEARTBEATS
Satellite logs60 daysPOLARIS_RETENTION_LOGS
Runs and their parsed results365 daysPOLARIS_RETENTION_RESULTS
Raw tool output (nmap XML, …) and debug steps30 daysPOLARIS_RETENTION_RAW
Change history: service events, DNS / registry / certificate changes, certificate observations, expired CT entries, resolved findings, stale network paths2 yearsPOLARIS_RETENTION_HISTORY
Notification log90 daysPOLARIS_RETENTION_NOTIFICATION_LOGS
Failed queue jobs30 daysPOLARIS_RETENTION_FAILED_JOBS
Archived reports7 yearsPOLARIS_RETENTION_REPORTS_YEARS
Sessionssession lifetime—
Password reset links60 minutes—

The current state — hosts, services, certificates, DNS records, open findings — is kept until it is deleted. Deletion runs in batches of 1000 rows (200 runs), so large tables are never locked by one long statement.