Infrastructure as code
Define your jobs in a YAML manifest and reconcile them with the SteadyCron CLI — no click-ops, no drift.
SteadyCron is infra-as-code first. Instead of clicking through the dashboard, you can declare your jobs in a YAML manifest, commit it to your repo, and have the CLI reconcile your account to match.
Quick example
namespace: production
channels:
- id: ops-slack
name: Slack #ops
kind: slack
config:
webhook_url: ${SLACK_WEBHOOK_URL}
jobs:
- id: weekly-digest
name: Weekly digest email
kind: http
method: POST
url: https://api.myapp.com/jobs/digest
schedule: "0 9 * * 1"
timezone: Europe/Berlin
timeout: 120
retries: 3
rules:
- channel: ops-slack
trigger: on_failure
- id: nightly-backup
name: Nightly DB backup
kind: heartbeat
schedule: "0 2 * * *"
grace: 1800
Apply it with:
export STEADYCRON_API_KEY=sc_...
steadycron sync production.yaml
Going deeper
- IaC workflow — all CLI commands (
export,validate,plan,sync,apply --prune), namespaces, stable IDs, and the secrets model. - Manifest reference — every top-level key and field, with the full job field table and a complete annotated example.
- CI/CD setup — the GitHub Action that posts a plan diff on every PR and applies on merge.
- API & authentication — creating API keys and scopes.
Authentication
The CLI authenticates with an API key. Create one in the dashboard and supply it via an environment variable so it never lands in your manifest:
export STEADYCRON_API_KEY=sc_...
steadycron sync jobs.yaml