48 lines
1.9 KiB
TOML
48 lines
1.9 KiB
TOML
# Fleet registry — single source of truth for scheduled automations.
|
|
# Spark Control (scheduler) and the dispatcher both fetch this file; the
|
|
# scheduler triggers POST /run/<name> at the dispatcher on each job's cron,
|
|
# and the dispatcher runs the job's script. Edit HERE (git), never in a UI.
|
|
#
|
|
# Schema (enforced strictly by Spark Control app/fleet.py:validate_registry —
|
|
# unknown keys are refused): [dispatcher] host/port/health_path; [[job]]
|
|
# name, schedule (5-field cron), tz (IANA), script/cwd/log (absolute),
|
|
# kicks_off, env (strings only, NO secrets — the fetch rejects them),
|
|
# missed_run (run_once|skip), timeout (s), retries, enabled.
|
|
|
|
[dispatcher]
|
|
# The Start9 host (sandy-paycheck) — the dispatcher runs there as
|
|
# fleet-dispatcher.service and executes job scripts locally.
|
|
host = "192.168.86.107"
|
|
port = 8377
|
|
health_path = "/health"
|
|
|
|
[[job]]
|
|
name = "gazette-daily"
|
|
schedule = "0 5 * * *"
|
|
tz = "America/New_York"
|
|
script = "/opt/philadelphia-gazette/pipeline/daily.sh"
|
|
cwd = "/opt/philadelphia-gazette"
|
|
log = "/opt/philadelphia-gazette/logs/fleet-gazette.log"
|
|
kicks_off = "Fetches the news wires, composes the day's Philadelphia Gazette on the Sparks (wire clerk model on spark-1fc2, Franklin model on spark-69e7), validates the edition, and publishes it to the PhilGaz web root serving philadelphiagazette.ai. Penny Post notices the new feed item on its next poll and carries it to email subscribers."
|
|
env = {}
|
|
missed_run = "run_once"
|
|
timeout = 5400
|
|
retries = 0
|
|
enabled = true
|
|
|
|
[[job]]
|
|
# Disabled on purpose: exists for Run-now verification of the whole
|
|
# scheduler -> dispatcher -> script chain without touching the live paper.
|
|
name = "fleet-smoke"
|
|
schedule = "0 0 1 1 *"
|
|
tz = "America/New_York"
|
|
script = "/opt/philadelphia-gazette/pipeline/fleet-smoke.sh"
|
|
cwd = "/opt/philadelphia-gazette"
|
|
log = "/opt/philadelphia-gazette/logs/fleet-smoke.log"
|
|
kicks_off = "Nothing — prints a line and exits 0."
|
|
env = {}
|
|
missed_run = "skip"
|
|
timeout = 60
|
|
retries = 0
|
|
enabled = false
|