Skip to main content
Sentry is the outside watcher. The engine sends it every crash and every condition the monitor opens; Sentry asks the engine once a minute whether it is still serving; and three rules in Sentry decide what reaches the owner’s inbox. Nothing on this page lives anywhere else: other pages link here. The organisation is akon-dion and the project is comforthub-backend.

What Sentry holds

What emails you

Three rules, all set in Sentry, all mailing the owner’s Sentry user. The first two rules are bound to the project’s issue stream and filter on the monitor’s tags. The third is bound to the uptime monitor only. No rule is bound to function crashes or to the evaluator’s check-in: those you read in Sentry.

The uptime check

Sentry sends one request a minute to the probe address on the ops function, with a header token the function checks. The function answers healthy only when both of these hold:
  • A technician can read their work. The function logs in as the stand-in technician through the same public door the app uses, reads the stand-in’s one work order and its two line items, checks their content, and logs out. The stand-in is an app user tied to a switched-off technician; its work order is cancelled, non-billable and belongs to no customer.
  • The monitor is keeping up. The monitor’s setting is rehearsing or live; the evaluator finished healthy within the last 90 seconds and its latest run neither failed nor timed out; every finished check had its conditions applied within 90 seconds; no urgent notification has waited more than 2 minutes and no for-review one more than 15; and no notification has lost its queue message.

Reading an issue

An issue from the monitor carries: The monitor resolves the issue itself when a later run finds the condition gone. A resolved issue does not reopen: the same problem coming back is another spell and another issue, so the history of a record’s trouble is one issue per spell. A person resolving an issue by hand changes nothing on the engine’s side; the condition stays open until the check finds it gone.

Where the keys live

The engine holds five Sentry values and two probe values in the edge-functions folder of the secrets vault: the project’s ingest address, the organisation’s name, a token the notifier uses to confirm and resolve issues, the environment name, and the trace sample rate; then the header token the uptime check must present, and the stand-in technician’s identity. The gate’s production-clean check uses a personal Sentry token from the operator-tools folder, also held as a GitHub repository secret. The uptime monitor’s copy of the header token is set on the monitor in Sentry. The exact names are on Names; the folders are described on Environments and secrets.