Skip to content
quarry Artifact [578f32842d]
Login

Artifact [578f32842d]

Artifact 578f32842d71e044f5d9c50d1172f2c5373314fafcd11357ad713d6edde2b7c9:


# quarry-probe

Cloudflare Worker that watches the forge from outside the host. Cron every minute:
`GET https://zeitforge.app/api/v1/version` (10 s timeout; healthy = 200 and `ready:true`), and when
healthy `GET /r/quarry/timeline`.

- Down: alert after 2 consecutive unhealthy checks, once per incident, then a recovery mail with the outage length.
- Up but broken: timeline answers 5xx twice in a row with a healthy version endpoint. A 503 within 3 minutes of a version change (a deploy restart) is ignored.
- `GET` on the Worker URL returns its current state as JSON (no secrets).

Logic lives in `src/logic.js` as pure functions; `npm test` runs `node --test` with no network.

## Deploy

1. `cd scripts/probe && npm install`
2. `npx wrangler kv namespace create PROBE_STATE`, paste the id into `wrangler.toml`.
3. Confirm craftdesign.group is enabled for Email Sending: `npx wrangler email sending list`. Do not enable Email Routing; it rewrites MX records.
4. `ALERT_TO` and `ALERT_FROM` in `wrangler.toml` are already set (`ALERT_FROM` must be on the onboarded domain); the `send_email` binding has no `destination_address`.
5. `npx wrangler deploy`
6. Open the `workers.dev` URL and confirm the JSON state updates each minute.