# Glossary

| Term | Meaning |
|---|---|
| **Attempt** | One try at delivering a run. A run has one or more attempts. |
| **Auto-disable** | Automatically setting a job to `disabled` after too many consecutive failed runs. |
| **Claim** | The dispatcher atomically taking due occurrences from the `due` queue and leasing them. |
| **Control database** | `cronpad.db`: users, workspaces, jobs, keys, secrets, alert settings. |
| **Dispatcher** | The single claim loop that hands due work to workers. Only the holder of the dispatcher lock runs it. |
| **Dispatcher lock** | A row in the queue file that ensures only one cronpad process schedules at a time. |
| **Edition** | Open source (this repository) or cloud (open source plus a private extension that runs cronpad Cloud). |
| **CLA** | Contributor License Agreement, signed once by every contributor. |
| **History database** | `history.db`: runs, attempts, audit log, alert outbox, statistics. |
| **Hosted mode** | `mode = "hosted"`: safe defaults for a public, multi-tenant server. |
| **Idempotency key** | The run ID, sent as `Idempotency-Key` and `webhook-id`; identical on every delivery of a run. |
| **Job** | A schedule plus a sink plus policies. |
| **Lease** | Time-limited ownership of an in-flight occurrence, renewed while a worker is busy. |
| **Misfire** | An occurrence that came due while cronpad couldn't run it. |
| **Occurrence** | One scheduled fire of a job; identified by an occurrence ID such as `job_…|1794281400000|0|3|s`. |
| **Overlap** | A new occurrence coming due while the previous run of the same job is unfinished. |
| **Queue file** | `cronpad-queue.db`: the rebuildable SQLite index of due and in-flight occurrences, plus the dispatcher lock. Never backed up. |
| **Reaper** | Returns occurrences with expired leases to the queue. |
| **Reconciler** | Makes the queue agree with the database: repairs lost entries and rebuilds after data loss. |
| **Run** | The record of one occurrence and everything that happened to it. |
| **Secret** | An encrypted workspace value referenced as `{{secret.NAME}}`. |
| **Sink** | What a job does when it fires: webhook or command. |
| **SLA threshold** | Maximum acceptable start lag (default 5 s). Runs above it are SLA breaches. |
| **Start lag** | Time from a run's scheduled moment to the start of its first attempt. |
| **Workspace** | The tenancy boundary that owns jobs, keys, secrets and alert settings. |