pipework 0.276.0 → 0.277.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.277.0
4
+
5
+ - **Added: `resendOnNewRelease` on alerts** (#959). On `alerts.create` and per `raise` (default `false`): an open, unacknowledged alert is sent again the first time it is raised by a release first seen later than the release it was last sent from, once per release, in the same atomic statement as `resendAfterMs` (either may send). Releases are detected: each process records its `release` once in the new `pipework_alert_releases` table, so a rollback or two releases live at once never re-send. No configured release: no effect. Each process records its release when the manifold starts or a script runs (blueprint `alerts` set; a failure only logs a warning), with a tick and a raise as fallbacks. The last-sent release only moves to a later-first-seen release. **Migration:** generate a migration to add `pipework_alert_releases` and the `resend_on_new_release` and `last_sent_release` columns on `pipework_alerts`.
6
+
3
7
  ## 0.276.0
4
8
 
5
9
  - **Fixed: an aborted request always settles, and a real failure after a disconnect is not silent** (#956). A request whose signal aborted (a client disconnect, or `inject({ signal })`) is never answered: the server destroys the raw response whether the handler threw or completed afterwards, so an injected call rejects with `AbortError` instead of never settling or resolving with the real status. Only errors the abort caused (the signal's reason, `RequestAbortedError`, `AbortError`, Postgres `57014`/`25P02`, anywhere in the `cause` chain) are a client abort; any other error after the abort goes through the normal classification and `onInternalError`, with nothing sent. The `pg_cancel_backend` sent on abort is sent over a connection reserved for cancels and awaited before the transaction's connection returns to the pool, so it cannot cancel another request's statement and never waits on a full pool. `cancelOnDisconnect: false` routes are unchanged.
package/REFERENCE.md CHANGED
@@ -1939,16 +1939,18 @@ Opt in with blueprint `alerts: {}`. The generated migration then includes three
1939
1939
  - `pipework_alerts` — one row per key: `status` (`open | resolved`), `severity`, `message`, `subject` jsonb, `count`, `first_seen_at`, `last_seen_at`, `last_sent_at`, `resolved_at`, `trace_ids` (latest 10, newest first).
1940
1940
  - `pipework_alert_deliveries` — the outbox, one row per event and sink: `kind` (`raise | repeat | resolve`), `sink`, `payload`, `attempts`, `next_attempt_at`, `delivered_at`, `failed_at`, `last_error`.
1941
1941
  - `pipework_alert_source_state` — the position a built-in source has reached.
1942
+ - `pipework_alert_releases` — one row per release seen (`release`, `first_seen_at`); `resendOnNewRelease` compares them.
1942
1943
 
1943
1944
  ### `alerts.create`
1944
1945
 
1945
- `alerts.create({ sinks, queue, jobType?, resendAfterMs?, resolveAfterQuietMs?, maxAttempts?, backoffMs?, sources?, database?, redact? })` returns a handle.
1946
+ `alerts.create({ sinks, queue, jobType?, resendAfterMs?, resendOnNewRelease?, resolveAfterQuietMs?, maxAttempts?, backoffMs?, sources?, database?, redact? })` returns a handle.
1946
1947
 
1947
1948
  Email addresses in an alert's message and in the strings of its context become `[email]` before it is stored, recorded or sent; add patterns with `redact` (`RegExp[]`, each match becomes `[redacted]`). A job's own `error_payload` is not changed.
1948
1949
 
1949
1950
  - `sinks` — at least one, names unique. `alerts.webhook({ url, secret, name?, timeoutMs? })` POSTs the alert as JSON with `X-Webhook-Id`, `X-Webhook-Timestamp` and `X-Webhook-Signature`, signed like `webhook.sign` and checkable with `webhook.verify.hmac`; a non-2xx answer fails the attempt. `alerts.memory({ name? })` keeps deliveries in `.delivered` (and `.clear()`) for tests. A custom sink is `{ name, send(delivery) }`; throwing, or taking over 10 s, fails the attempt.
1950
1951
  - `queue` — the app's queue; sending an alert enqueues the alerts job as a child of the raising trace.
1951
1952
  - `jobType` — default `'pipework.alerts'`. `resendAfterMs` — default `null`: an open alert is never re-sent. `resolveAfterQuietMs` — default `null`: only an explicit `resolve` closes it. Both can be set per raise.
1953
+ - `resendOnNewRelease` — default `false`. An open, unacknowledged alert is sent again (a `repeat` delivery, status `'resent'`) the first time it is raised by a release first seen later than the release it was last sent from: once per release, with no `(key, release)` table of your own. The release is the app's `release` (`release.env`); each process records it in `pipework_alert_releases` with the time it was first seen, so a rollback to an older release, or two releases live at once (canary and stable), never re-send. With no release configured the option has no effect. Independent of `resendAfterMs`: either may send. An acknowledged alert never sends; a resolved one reopens as usual, and the reopening release becomes the last sent. Can be set per raise. The release is recorded automatically when the manifold starts (`start()`) or a script runs, if blueprint `alerts` is set (a failure only logs a warning), and again by a tick or a raise if that did not happen, so an older release that is still running and has not raised is not mistaken for a newer one. A later send for another reason (`resendAfterMs`) never moves the last-sent release back to an older one. Existing alerts with no recorded release send once on their next raise from a release.
1952
1954
  - `maxAttempts` (default 10) and `backoffMs` (default 5000, doubling per attempt, capped at one hour) govern retries; a row that reaches `maxAttempts`, or names a sink no longer configured, is marked `failed_at` and logged at error.
1953
1955
  - `sources` — built-in conditions evaluated on every tick (below). `database` — default the default database.
1954
1956
 
@@ -1956,7 +1958,7 @@ Every write goes through `pipe.system()`, outside the request's transaction, so
1956
1958
 
1957
1959
  ### Methods
1958
1960
 
1959
- - `raise(key, { severity, message, subject?, resendAfterMs?, resolveAfterQuietMs? })` — `severity` is `info | warning | error | critical`; `subject` is `{ tenantId?, entity?, entityId? }`. Returns `{ status }`: `'opened'` (new, or reopened after a resolve: count restarts at 1, one `raise` delivery), `'grouped'` (already open: count, last seen, latest message and trace id updated, nothing sent), or `'resent'` (open, `resendAfterMs` passed since the last send: one `repeat` delivery carrying the count). One atomic statement decides it, so 20 processes raising one new key open it once and send once.
1961
+ - `raise(key, { severity, message, subject?, resendAfterMs?, resendOnNewRelease?, resolveAfterQuietMs? })` — `severity` is `info | warning | error | critical`; `subject` is `{ tenantId?, entity?, entityId? }`. Returns `{ status }`: `'opened'` (new, or reopened after a resolve: count restarts at 1, one `raise` delivery), `'grouped'` (already open: count, last seen, latest message and trace id updated, nothing sent), or `'resent'` (open, `resendAfterMs` passed since the last send or `resendOnNewRelease` and a newer release: one `repeat` delivery carrying the count). One atomic statement decides it, so 20 processes raising one new key open it once and send once.
1960
1962
  - `resolve(key)` — `true` and one `resolve` delivery if the alert was open; `false` and nothing otherwise.
1961
1963
  - `job` — the handler for `jobType`. Add it to the worker's `jobs` and schedule it (every minute with `schedules: [{ job: 'pipework.alerts', cron: '* * * * *' }]`). Each run resolves alerts quiet for their period, evaluates the sources, and sends due deliveries. The schedule is also the safety net: deliveries left by a crash are sent by the next run on any process. Two runs at once send each delivery once, and the deliveries of one alert to one sink go in order.
1962
1964
  - `tick()` — what one run does, for tests. Returns `{ resolved, delivered, retried, failed }`.
@@ -1 +1 @@
1
- {"version":3,"file":"run-script.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAYtD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iGAAiG;IACjG,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;QAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAiCZ"}
1
+ {"version":3,"file":"run-script.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAatD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iGAAiG;IACjG,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;QAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAkCZ"}
@@ -5,6 +5,7 @@ import { isTracingEnabled } from '../../trace/entry/tracing-enabled.js';
5
5
  import { openTrace } from '../../trace/entry/open-trace.js';
6
6
  import { parentTraceRef } from '../../trace/entry/parent-trace.js';
7
7
  import { closeTrace } from '../../trace/entry/close-trace.js';
8
+ import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js';
8
9
  import { stageProcessStart } from '../../trace/entry/process-start.js';
9
10
  const SCRIPT_TRANSACTION_TIMEOUT_MS = 5000;
10
11
  /**
@@ -17,6 +18,8 @@ const SCRIPT_TRANSACTION_TIMEOUT_MS = 5000;
17
18
  * The trace close is awaited, so the row is written before the caller closes the pool.
18
19
  */
19
20
  export async function runScript(instance, fn, options = {}) {
21
+ if (options.process?.phase === 'script')
22
+ await recordAlertReleaseAtStart(instance);
20
23
  const tenant = options.tenant ?? null;
21
24
  const auth = options.auth ?? null;
22
25
  const jobType = options.jobType ?? 'script';
@@ -1 +1 @@
1
- {"version":3,"file":"run-script.js","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,6BAA6B,GAAG,IAAI,CAAA;AAU1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAkB,EAClB,EAAwB,EACxB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAA;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAA;IAC3C,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;YACV,QAAQ;YACR,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,cAAc,EAAE;YACxB,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,CAAC,CAAC,IAAI,CAAA;IACR,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpD,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACvG,MAAM,GAAG,GAAG,KAAK,IAAgB,EAAE,CAAC,EAAE,EAAE,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI;YAC5B,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACxF,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAC1C,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"run-script.js","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,6BAA6B,GAAG,IAAI,CAAA;AAU1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAkB,EAClB,EAAwB,EACxB,UAA4B,EAAE;IAE9B,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,KAAK,QAAQ;QAAE,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAA;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAA;IAC3C,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;YACV,QAAQ;YACR,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,cAAc,EAAE;YACxB,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,CAAC,CAAC,IAAI,CAAA;IACR,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpD,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACvG,MAAM,GAAG,GAAG,KAAK,IAAgB,EAAE,CAAC,EAAE,EAAE,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI;YAC5B,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACxF,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAC1C,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ7C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgExG"}
1
+ {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiExG"}
@@ -3,6 +3,7 @@ import { sql } from '../../data/db/sql.js';
3
3
  import { getBaseLogger } from '../logging/index.js';
4
4
  import { runScript } from '../../async/jobs/run-script.js';
5
5
  import { getContext } from '../../request/context/store.js';
6
+ import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js';
6
7
  import { TRACE_PARTITION_HOOK_NAME } from '../../trace/partition/startup-hook.js';
7
8
  import { projectStepError } from '../../trace/runtime/step-error.js';
8
9
  import { serializeForTrace } from '../../trace/capture/bounded-serializer.js';
@@ -11,6 +12,7 @@ export async function orchestrateStartup(instance, options = {}) {
11
12
  const timeoutMs = options.timeoutMs ?? 30000;
12
13
  const doStartupWork = async () => {
13
14
  await verifyDatabases(instance, logger);
15
+ await recordAlertReleaseAtStart(instance);
14
16
  if (options.hooks) {
15
17
  // The partition hook creates today's trace partition, so it runs first and outside the trace.
16
18
  const partition = options.hooks.filter(h => h.name === TRACE_PARTITION_HOOK_NAME);
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"internal-definitions.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkKlC"}
1
+ {"version":3,"file":"internal-definitions.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmKlC"}
@@ -73,11 +73,12 @@ export async function loadInternalDefinitions(blueprint, options) {
73
73
  result['__pipework_crawl_resource'] = crawlResources;
74
74
  }
75
75
  if (blueprint.alerts !== undefined) {
76
- const { alerts, alertOccurrences, alertDeliveries, alertSourceState, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js');
76
+ const { alerts, alertOccurrences, alertDeliveries, alertSourceState, alertReleases, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js');
77
77
  result['__pipework_alerts'] = alerts;
78
78
  result['__pipework_alert_occurrences'] = alertOccurrences;
79
79
  result['__pipework_alert_deliveries'] = alertDeliveries;
80
80
  result['__pipework_alert_source_state'] = alertSourceState;
81
+ result['__pipework_alert_releases'] = alertReleases;
81
82
  result['__pipework_unit_faults'] = unitFaults;
82
83
  result['__pipework_loop_beats'] = loopBeats;
83
84
  result['__pipework_faults'] = faults;
@@ -1 +1 @@
1
- {"version":3,"file":"internal-definitions.js","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-definitions.js","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,14 @@ export interface AlertsConfig {
17
17
  readonly jobType?: string;
18
18
  /** Send again while an alert stays open and is raised again after this long since the last send. Default `null`: never. */
19
19
  readonly resendAfterMs?: number | null;
20
+ /**
21
+ * Send an open, unacknowledged alert again the first time it is raised by a release first seen later than the
22
+ * release it was last sent from, once per release. Releases are detected, not configured: each process records its
23
+ * `release` (from `release.env`) with the time it was first seen. A rollback to an older release, or two releases
24
+ * live at once, never re-send. Without a configured release it has no effect. Independent of `resendAfterMs`:
25
+ * either may send. Default `false`; a raise can override it.
26
+ */
27
+ readonly resendOnNewRelease?: boolean;
20
28
  /** Resolve an open alert nobody raised for this long, on the job's tick. Default `null`: only `resolve`. */
21
29
  readonly resolveAfterQuietMs?: number | null;
22
30
  /** Delivery attempts before a row is given up on; default 10. A delivery given up raises `pipework.alerts.undeliverable:<sink>` through the other sinks. */
@@ -68,6 +76,8 @@ export interface RaiseOptions {
68
76
  readonly context?: Readonly<Record<string, JsonValue>>;
69
77
  /** Overrides the handle's `resendAfterMs` for this alert; `null`: this alert is never re-sent. */
70
78
  readonly resendAfterMs?: number | null;
79
+ /** Overrides the handle's `resendOnNewRelease` for this alert. */
80
+ readonly resendOnNewRelease?: boolean;
71
81
  /** Overrides the handle's `resolveAfterQuietMs` for this alert; `null`: only `resolve` closes it. */
72
82
  readonly resolveAfterQuietMs?: number | null;
73
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAOxD,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAM/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;AAErE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IACpC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2HAA2H;IAC3H,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,4GAA4G;IAC5G,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5C,4JAA4J;IAC5J,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IACvC,mJAAmJ;IACnJ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IACxC,uHAAuH;IACvH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;KAAE,CAAA;IAC9F,gGAAgG;IAChG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IACzC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,CAAA;AAC9D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,SAAS,EAAE,GAAG;IAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAErH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAA;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,oGAAoG;IACpG,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IACtD,kGAAkG;IAClG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,qGAAqG;IACrG,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7C;AAED,MAAM,WAAW,WAAW;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE;AAE1H,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5D,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,IAAI,CAAC,CAAC;IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAE9E,MAAM,WAAW,WAAW;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;CACxE;AAED,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACxE,QAAQ,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAC7G,EAAE,CAAA;CACJ;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;KAAE,CAAC,CAAA;IAC5G,gIAAgI;IAChI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClG,wGAAwG;IACxG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChD,4EAA4E;IAC5E,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,aAAa,EAAE,CAAA;QAClG,yCAAyC;QACzC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAC3D,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACxB,yEAAyE;IACzE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;IACvG,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9B,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IACjC,wHAAwH;IACxH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;IACvD,sEAAsE;IACtE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3B,yJAAyJ;IACzJ,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IACvC,UAAU,CAAC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC9D;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACzG;AAgGD,sHAAsH;AACtH,eAAO,MAAM,oBAAoB,mCAAmC,CAAA;AAEpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAmgBzD"}
@@ -5,6 +5,7 @@ import { getContext } from '../../request/context/store.js';
5
5
  import { getBaseLogger } from '../../core/logging/index.js';
6
6
  import { __flowStep } from '../../trace/runtime/flow-step.js';
7
7
  import { auditAlert } from './audit.js';
8
+ import { insertAlertRelease } from './release.js';
8
9
  import { ALERT_SEVERITIES, ALERT_STATUSES } from './schema.js';
9
10
  import { encodeCursor, decodeCursor } from '../../request/fixture/paginate.js';
10
11
  import { checkRetention, createOutbox, hourlySweep } from '../outbox/core.js';
@@ -147,6 +148,7 @@ export function createAlerts(config) {
147
148
  const backoffMs = config.backoffMs ?? 5000;
148
149
  const defaultResend = config.resendAfterMs ?? null;
149
150
  const defaultQuiet = config.resolveAfterQuietMs ?? null;
151
+ const defaultOnRelease = config.resendOnNewRelease ?? false;
150
152
  const sources = config.sources ?? [];
151
153
  const database = config.database;
152
154
  const redactExtra = config.redact ?? [];
@@ -164,6 +166,17 @@ export function createAlerts(config) {
164
166
  throw new Error(`[pipework] alerts.raise: ${name} must be a non-negative integer or null, got ${String(value)}.`);
165
167
  return value;
166
168
  }
169
+ // Each release this process raises from is recorded once (first writer wins) before any resend decision reads it.
170
+ const recorded = new Map();
171
+ function recordRelease(release) {
172
+ let p = recorded.get(release);
173
+ if (p === undefined) {
174
+ p = insertAlertRelease(db(), release).then(() => undefined);
175
+ p.catch(() => recorded.delete(release));
176
+ recorded.set(release, p);
177
+ }
178
+ return p;
179
+ }
167
180
  // The alert and its deliveries move in one statement, so a crash cannot leave one without the other.
168
181
  const payloadSql = (kind, environment) => sql `jsonb_build_object(
169
182
  'kind', ${kind}, 'key', up.key, 'severity', up.severity, 'message', up.message, 'subject', up.subject,
@@ -182,6 +195,10 @@ export function createAlerts(config) {
182
195
  if (!SEVERITIES.has(options.severity))
183
196
  throw new Error(`[pipework] alerts.raise: severity must be info, warning, error or critical, got "${String(options.severity)}".`);
184
197
  const resendStored = storedMs('resendAfterMs', options.resendAfterMs);
198
+ const onReleaseStored = options.resendOnNewRelease ?? null;
199
+ const release = getContext()?.instance.config.release ?? null;
200
+ if (release !== null)
201
+ await recordRelease(release);
185
202
  const quietStored = storedMs('resolveAfterQuietMs', options.resolveAfterQuietMs);
186
203
  const traceId = getContext()?.trace?.id ?? null;
187
204
  const traceArray = traceId === null ? '{}' : textArrayParam([traceId]);
@@ -195,16 +212,20 @@ export function createAlerts(config) {
195
212
  const sendsSql = sql `(a.status <> 'acknowledged' AND (a.status = 'resolved' OR a.last_sent_at IS NULL
196
213
  OR (NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) IS NOT NULL
197
214
  AND EXCLUDED.last_sent_at - a.last_sent_at
198
- >= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')))`;
215
+ >= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')
216
+ OR (${release}::text IS NOT NULL
217
+ AND COALESCE(EXCLUDED.resend_on_new_release, a.resend_on_new_release, ${defaultOnRelease}::boolean)
218
+ AND (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
219
+ > COALESCE((SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release), '-infinity'::timestamptz))))`;
199
220
  const kindSql = sql `CASE WHEN up.inserted THEN 'raise' WHEN up.reopened THEN 'reopen' ELSE 'repeat' END`;
200
221
  const rows = await db().execute(sql `
201
222
  WITH up AS (
202
223
  INSERT INTO pipework_alerts AS a
203
224
  (key, status, severity, message, subject, owner, runbook, context, count, first_seen_at, last_seen_at, last_sent_at,
204
- trace_ids, resend_after_ms, resolve_after_quiet_ms, updated_at)
225
+ trace_ids, resend_after_ms, resend_on_new_release, last_sent_release, resolve_after_quiet_ms, updated_at)
205
226
  SELECT ${key}, 'open', ${options.severity}, ${message}, ${subject}::jsonb,
206
227
  ${options.owner ?? null}::text, ${options.runbook ?? null}::text, ${context}::jsonb, 1, c.ts, c.ts, c.ts,
207
- ${traceArray}::text[], ${resendStored}::int, ${quietStored}::int, c.ts
228
+ ${traceArray}::text[], ${resendStored}::int, ${onReleaseStored}::boolean, ${release}::text, ${quietStored}::int, c.ts
208
229
  FROM (SELECT clock_timestamp() AS ts) c
209
230
  ON CONFLICT (key) DO UPDATE SET
210
231
  status = CASE WHEN a.status = 'acknowledged' THEN 'acknowledged' ELSE 'open' END,
@@ -227,6 +248,13 @@ export function createAlerts(config) {
227
248
  WHEN ${traceId}::text IS NULL THEN a.trace_ids
228
249
  ELSE (EXCLUDED.trace_ids || array_remove(a.trace_ids, ${traceId}::text))[1:10] END,
229
250
  resend_after_ms = COALESCE(EXCLUDED.resend_after_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_after_ms END),
251
+ resend_on_new_release = COALESCE(EXCLUDED.resend_on_new_release, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_on_new_release END),
252
+ last_sent_release = CASE WHEN NOT ${sendsSql} THEN a.last_sent_release
253
+ WHEN a.status = 'resolved' THEN ${release}::text
254
+ WHEN ${release}::text IS NULL OR a.last_sent_release IS NULL THEN COALESCE(${release}::text, a.last_sent_release)
255
+ WHEN (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
256
+ > (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release)
257
+ THEN ${release}::text ELSE a.last_sent_release END,
230
258
  resolve_after_quiet_ms = COALESCE(EXCLUDED.resolve_after_quiet_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resolve_after_quiet_ms END),
231
259
  last_sent_at = CASE WHEN ${sendsSql} THEN ${seenSql} ELSE a.last_sent_at END,
232
260
  updated_at = EXCLUDED.updated_at
@@ -552,6 +580,9 @@ export function createAlerts(config) {
552
580
  log.error({ err }, 'alert delivery sweep failed');
553
581
  });
554
582
  async function runTick() {
583
+ const running = getContext()?.instance.config.release ?? null;
584
+ if (running !== null)
585
+ await recordRelease(running);
555
586
  let resolved = await autoResolve();
556
587
  resolved += await runSources();
557
588
  await pruneOccurrences();
@@ -1 +1 @@
1
- {"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { DB } from '../../data/db/index.js';
2
+ import type { Manifold } from '../../core/pipework.js';
3
+ export declare function insertAlertRelease(db: DB, release: string): Promise<unknown>;
4
+ /** No-op without blueprint `alerts` or a release. A failure logs a warning and never throws. */
5
+ export declare function recordAlertReleaseAtStart(instance: Manifold): Promise<void>;
6
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/release.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGtD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5E;AAID,gGAAgG;AAChG,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjF"}
@@ -0,0 +1,25 @@
1
+ // Records the release a process runs in `pipework_alert_releases`, first writer wins, so `resendOnNewRelease` can order
2
+ // releases by when each was first seen. Done at manifold start and script start when blueprint `alerts` is set; a
3
+ // raise and a tick record it too if this did not.
4
+ import { sql } from '../../data/db/sql.js';
5
+ import { getBaseLogger } from '../../core/logging/index.js';
6
+ export function insertAlertRelease(db, release) {
7
+ return Promise.resolve(db.execute(sql `INSERT INTO pipework_alert_releases ("release", first_seen_at)
8
+ VALUES (${release}::text, clock_timestamp()) ON CONFLICT ("release") DO NOTHING`));
9
+ }
10
+ const recorded = new WeakSet();
11
+ /** No-op without blueprint `alerts` or a release. A failure logs a warning and never throws. */
12
+ export async function recordAlertReleaseAtStart(instance) {
13
+ const release = instance.config.release;
14
+ if (instance.config.raw.alerts === undefined || release === null || recorded.has(instance))
15
+ return;
16
+ try {
17
+ const db = instance.pool.getOrCreate(instance.config.database(instance.config.defaultDatabaseName())).drizzle;
18
+ await insertAlertRelease(db, release);
19
+ recorded.add(instance);
20
+ }
21
+ catch (err) {
22
+ getBaseLogger().warn({ release, err }, 'Could not record the release for alerts at start; the first tick or raise will');
23
+ }
24
+ }
25
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/infra/alerts/release.ts"],"names":[],"mappings":"AAAA,wHAAwH;AACxH,kHAAkH;AAClH,kDAAkD;AAElD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,MAAM,UAAU,kBAAkB,CAAC,EAAM,EAAE,OAAe;IACxD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;cACzB,OAAO,+DAA+D,CAAC,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAY,CAAA;AAExC,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,QAAkB;IAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAA;IACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAM;IAClG,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QAC7G,MAAM,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACrC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,gFAAgF,CAAC,CAAA;IAC1H,CAAC;AACH,CAAC"}
@@ -114,6 +114,16 @@ export declare const alerts: import("../../data/domain/types.js").DefinedTable<{
114
114
  }> & import("../../data/domain/field.js").FieldModifiers<number | null, {
115
115
  nullable: true;
116
116
  }>;
117
+ resendOnNewRelease: import("../../data/domain/types.js").FieldDescriptor<boolean | null, {
118
+ nullable: true;
119
+ }> & import("../../data/domain/field.js").FieldModifiers<boolean | null, {
120
+ nullable: true;
121
+ }>;
122
+ lastSentRelease: import("../../data/domain/types.js").FieldDescriptor<string | null, {
123
+ nullable: true;
124
+ }> & import("../../data/domain/field.js").FieldModifiers<string | null, {
125
+ nullable: true;
126
+ }>;
117
127
  resolveAfterQuietMs: import("../../data/domain/types.js").FieldDescriptor<number | null, {
118
128
  nullable: true;
119
129
  }> & import("../../data/domain/field.js").FieldModifiers<number | null, {
@@ -125,6 +135,18 @@ export declare const alerts: import("../../data/domain/types.js").DefinedTable<{
125
135
  hasDefault: true;
126
136
  }>;
127
137
  }, "pipework_alerts">;
138
+ export declare const alertReleases: import("../../data/domain/types.js").DefinedTable<{
139
+ release: import("../../data/domain/types.js").FieldDescriptor<string, {
140
+ primaryKey: true;
141
+ }> & import("../../data/domain/field.js").FieldModifiers<string, {
142
+ primaryKey: true;
143
+ }>;
144
+ firstSeenAt: import("../../data/domain/types.js").FieldDescriptor<Date, {
145
+ hasDefault: true;
146
+ }> & import("../../data/domain/field.js").FieldModifiers<Date, {
147
+ hasDefault: true;
148
+ }>;
149
+ }, "pipework_alert_releases">;
128
150
  export declare const alertOccurrences: import("../../data/domain/types.js").DefinedTable<{
129
151
  id: import("../../data/domain/types.js").FieldDescriptor<string, {
130
152
  defaultRandom: true;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,+CAAgD,CAAA;AAC3E,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AACjF,eAAO,MAAM,oBAAoB,6DAA8D,CAAA;AAE/F,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA+BjB,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAa3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmB1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;iCAG3B,CAAA;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAWrB,CAAA;AAGF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;yBAMpB,CAAA;AAGF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAWjB,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,+CAAgD,CAAA;AAC3E,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AACjF,eAAO,MAAM,oBAAoB,6DAA8D,CAAA;AAE/F,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAiCjB,CAAA;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;6BAGxB,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAa3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmB1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;iCAG3B,CAAA;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAWrB,CAAA;AAGF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;yBAMpB,CAAA;AAGF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAWjB,CAAA"}
@@ -33,6 +33,8 @@ export const alerts = define('pipework_alerts', {
33
33
  issueUrl: field.text().nullable(),
34
34
  traceIds: field.custom(schema.col.text('trace_ids').array(), schema.check.array(schema.check.string())).default('{}'),
35
35
  resendAfterMs: field.integer().nullable(),
36
+ resendOnNewRelease: field.boolean().nullable(),
37
+ lastSentRelease: field.text().nullable(),
36
38
  resolveAfterQuietMs: field.integer().nullable(),
37
39
  updatedAt: field.timestamp().default('now'),
38
40
  }, {
@@ -40,6 +42,11 @@ export const alerts = define('pipework_alerts', {
40
42
  byStatus: index('idx_pipework_alerts_status').on(t['status']),
41
43
  }),
42
44
  });
45
+ // One row per release a process running alerts has recorded, with when it was first seen; `resendOnNewRelease` compares these.
46
+ export const alertReleases = define('pipework_alert_releases', {
47
+ release: field.text().primaryKey(),
48
+ firstSeenAt: field.timestamp().default('now'),
49
+ });
43
50
  // One row per raise, kept for `occurrenceRetentionMs`.
44
51
  export const alertOccurrences = define('pipework_alert_occurrences', {
45
52
  id: field.uuid().defaultRandom().primaryKey(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.276.0",
3
+ "version": "0.277.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -6,6 +6,7 @@ import { isTracingEnabled } from '../../trace/entry/tracing-enabled.js'
6
6
  import { openTrace } from '../../trace/entry/open-trace.js'
7
7
  import { parentTraceRef } from '../../trace/entry/parent-trace.js'
8
8
  import { closeTrace } from '../../trace/entry/close-trace.js'
9
+ import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js'
9
10
  import { stageProcessStart } from '../../trace/entry/process-start.js'
10
11
 
11
12
  const SCRIPT_TRANSACTION_TIMEOUT_MS = 5000
@@ -32,6 +33,7 @@ export async function runScript<T>(
32
33
  fn: () => T | Promise<T>,
33
34
  options: RunScriptOptions = {},
34
35
  ): Promise<T> {
36
+ if (options.process?.phase === 'script') await recordAlertReleaseAtStart(instance)
35
37
  const tenant = options.tenant ?? null
36
38
  const auth = options.auth ?? null
37
39
  const jobType = options.jobType ?? 'script'
@@ -5,6 +5,7 @@ import type { StartupHook } from './types.js'
5
5
  import { getBaseLogger } from '../logging/index.js'
6
6
  import { runScript } from '../../async/jobs/run-script.js'
7
7
  import { getContext } from '../../request/context/store.js'
8
+ import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js'
8
9
  import { TRACE_PARTITION_HOOK_NAME } from '../../trace/partition/startup-hook.js'
9
10
  import { projectStepError } from '../../trace/runtime/step-error.js'
10
11
  import { serializeForTrace } from '../../trace/capture/bounded-serializer.js'
@@ -20,6 +21,7 @@ export async function orchestrateStartup(instance: Manifold, options: StartupOpt
20
21
 
21
22
  const doStartupWork = async () => {
22
23
  await verifyDatabases(instance, logger)
24
+ await recordAlertReleaseAtStart(instance)
23
25
 
24
26
  if (options.hooks) {
25
27
  // The partition hook creates today's trace partition, so it runs first and outside the trace.
@@ -92,11 +92,12 @@ export async function loadInternalDefinitions(
92
92
  }
93
93
 
94
94
  if (blueprint.alerts !== undefined) {
95
- const { alerts, alertOccurrences, alertDeliveries, alertSourceState, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js')
95
+ const { alerts, alertOccurrences, alertDeliveries, alertSourceState, alertReleases, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js')
96
96
  result['__pipework_alerts'] = alerts
97
97
  result['__pipework_alert_occurrences'] = alertOccurrences
98
98
  result['__pipework_alert_deliveries'] = alertDeliveries
99
99
  result['__pipework_alert_source_state'] = alertSourceState
100
+ result['__pipework_alert_releases'] = alertReleases
100
101
  result['__pipework_unit_faults'] = unitFaults
101
102
  result['__pipework_loop_beats'] = loopBeats
102
103
  result['__pipework_faults'] = faults
@@ -7,6 +7,7 @@ import type { Queue } from '../../async/jobs/queue.js'
7
7
  import type { Handler } from '../../request/di/types.js'
8
8
  import { __flowStep } from '../../trace/runtime/flow-step.js'
9
9
  import { auditAlert } from './audit.js'
10
+ import { insertAlertRelease } from './release.js'
10
11
  import { ALERT_SEVERITIES, ALERT_STATUSES } from './schema.js'
11
12
  import { encodeCursor, decodeCursor } from '../../request/fixture/paginate.js'
12
13
  import { checkRetention, createOutbox, hourlySweep } from '../outbox/core.js'
@@ -34,6 +35,14 @@ export interface AlertsConfig {
34
35
  readonly jobType?: string
35
36
  /** Send again while an alert stays open and is raised again after this long since the last send. Default `null`: never. */
36
37
  readonly resendAfterMs?: number | null
38
+ /**
39
+ * Send an open, unacknowledged alert again the first time it is raised by a release first seen later than the
40
+ * release it was last sent from, once per release. Releases are detected, not configured: each process records its
41
+ * `release` (from `release.env`) with the time it was first seen. A rollback to an older release, or two releases
42
+ * live at once, never re-send. Without a configured release it has no effect. Independent of `resendAfterMs`:
43
+ * either may send. Default `false`; a raise can override it.
44
+ */
45
+ readonly resendOnNewRelease?: boolean
37
46
  /** Resolve an open alert nobody raised for this long, on the job's tick. Default `null`: only `resolve`. */
38
47
  readonly resolveAfterQuietMs?: number | null
39
48
  /** Delivery attempts before a row is given up on; default 10. A delivery given up raises `pipework.alerts.undeliverable:<sink>` through the other sinks. */
@@ -82,6 +91,8 @@ export interface RaiseOptions {
82
91
  readonly context?: Readonly<Record<string, JsonValue>>
83
92
  /** Overrides the handle's `resendAfterMs` for this alert; `null`: this alert is never re-sent. */
84
93
  readonly resendAfterMs?: number | null
94
+ /** Overrides the handle's `resendOnNewRelease` for this alert. */
95
+ readonly resendOnNewRelease?: boolean
85
96
  /** Overrides the handle's `resolveAfterQuietMs` for this alert; `null`: only `resolve` closes it. */
86
97
  readonly resolveAfterQuietMs?: number | null
87
98
  }
@@ -354,6 +365,7 @@ export function createAlerts(config: AlertsConfig): Alerts {
354
365
  const backoffMs = config.backoffMs ?? 5000
355
366
  const defaultResend = config.resendAfterMs ?? null
356
367
  const defaultQuiet = config.resolveAfterQuietMs ?? null
368
+ const defaultOnRelease = config.resendOnNewRelease ?? false
357
369
  const sources = config.sources ?? []
358
370
  const database = config.database
359
371
  const redactExtra = config.redact ?? []
@@ -372,6 +384,18 @@ export function createAlerts(config: AlertsConfig): Alerts {
372
384
  return value
373
385
  }
374
386
 
387
+ // Each release this process raises from is recorded once (first writer wins) before any resend decision reads it.
388
+ const recorded = new Map<string, Promise<void>>()
389
+ function recordRelease(release: string): Promise<void> {
390
+ let p = recorded.get(release)
391
+ if (p === undefined) {
392
+ p = insertAlertRelease(db(), release).then(() => undefined)
393
+ p.catch(() => recorded.delete(release))
394
+ recorded.set(release, p)
395
+ }
396
+ return p
397
+ }
398
+
375
399
  // The alert and its deliveries move in one statement, so a crash cannot leave one without the other.
376
400
  const payloadSql = (kind: ReturnType<typeof sql>, environment: string) => sql`jsonb_build_object(
377
401
  'kind', ${kind}, 'key', up.key, 'severity', up.severity, 'message', up.message, 'subject', up.subject,
@@ -390,6 +414,9 @@ export function createAlerts(config: AlertsConfig): Alerts {
390
414
  if (key.trim() === '') throw new Error('[pipework] alerts.raise needs a non-empty key.')
391
415
  if (!SEVERITIES.has(options.severity)) throw new Error(`[pipework] alerts.raise: severity must be info, warning, error or critical, got "${String(options.severity)}".`)
392
416
  const resendStored = storedMs('resendAfterMs', options.resendAfterMs)
417
+ const onReleaseStored = options.resendOnNewRelease ?? null
418
+ const release = getContext()?.instance.config.release ?? null
419
+ if (release !== null) await recordRelease(release)
393
420
  const quietStored = storedMs('resolveAfterQuietMs', options.resolveAfterQuietMs)
394
421
  const traceId = getContext()?.trace?.id ?? null
395
422
  const traceArray = traceId === null ? '{}' : textArrayParam([traceId])
@@ -403,16 +430,20 @@ export function createAlerts(config: AlertsConfig): Alerts {
403
430
  const sendsSql = sql`(a.status <> 'acknowledged' AND (a.status = 'resolved' OR a.last_sent_at IS NULL
404
431
  OR (NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) IS NOT NULL
405
432
  AND EXCLUDED.last_sent_at - a.last_sent_at
406
- >= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')))`
433
+ >= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')
434
+ OR (${release}::text IS NOT NULL
435
+ AND COALESCE(EXCLUDED.resend_on_new_release, a.resend_on_new_release, ${defaultOnRelease}::boolean)
436
+ AND (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
437
+ > COALESCE((SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release), '-infinity'::timestamptz))))`
407
438
  const kindSql = sql`CASE WHEN up.inserted THEN 'raise' WHEN up.reopened THEN 'reopen' ELSE 'repeat' END`
408
439
  const rows = await db().execute(sql`
409
440
  WITH up AS (
410
441
  INSERT INTO pipework_alerts AS a
411
442
  (key, status, severity, message, subject, owner, runbook, context, count, first_seen_at, last_seen_at, last_sent_at,
412
- trace_ids, resend_after_ms, resolve_after_quiet_ms, updated_at)
443
+ trace_ids, resend_after_ms, resend_on_new_release, last_sent_release, resolve_after_quiet_ms, updated_at)
413
444
  SELECT ${key}, 'open', ${options.severity}, ${message}, ${subject}::jsonb,
414
445
  ${options.owner ?? null}::text, ${options.runbook ?? null}::text, ${context}::jsonb, 1, c.ts, c.ts, c.ts,
415
- ${traceArray}::text[], ${resendStored}::int, ${quietStored}::int, c.ts
446
+ ${traceArray}::text[], ${resendStored}::int, ${onReleaseStored}::boolean, ${release}::text, ${quietStored}::int, c.ts
416
447
  FROM (SELECT clock_timestamp() AS ts) c
417
448
  ON CONFLICT (key) DO UPDATE SET
418
449
  status = CASE WHEN a.status = 'acknowledged' THEN 'acknowledged' ELSE 'open' END,
@@ -435,6 +466,13 @@ export function createAlerts(config: AlertsConfig): Alerts {
435
466
  WHEN ${traceId}::text IS NULL THEN a.trace_ids
436
467
  ELSE (EXCLUDED.trace_ids || array_remove(a.trace_ids, ${traceId}::text))[1:10] END,
437
468
  resend_after_ms = COALESCE(EXCLUDED.resend_after_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_after_ms END),
469
+ resend_on_new_release = COALESCE(EXCLUDED.resend_on_new_release, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_on_new_release END),
470
+ last_sent_release = CASE WHEN NOT ${sendsSql} THEN a.last_sent_release
471
+ WHEN a.status = 'resolved' THEN ${release}::text
472
+ WHEN ${release}::text IS NULL OR a.last_sent_release IS NULL THEN COALESCE(${release}::text, a.last_sent_release)
473
+ WHEN (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
474
+ > (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release)
475
+ THEN ${release}::text ELSE a.last_sent_release END,
438
476
  resolve_after_quiet_ms = COALESCE(EXCLUDED.resolve_after_quiet_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resolve_after_quiet_ms END),
439
477
  last_sent_at = CASE WHEN ${sendsSql} THEN ${seenSql} ELSE a.last_sent_at END,
440
478
  updated_at = EXCLUDED.updated_at
@@ -750,6 +788,8 @@ export function createAlerts(config: AlertsConfig): Alerts {
750
788
  })
751
789
 
752
790
  async function runTick(): Promise<TickResult> {
791
+ const running = getContext()?.instance.config.release ?? null
792
+ if (running !== null) await recordRelease(running)
753
793
  let resolved = await autoResolve()
754
794
  resolved += await runSources()
755
795
  await pruneOccurrences()
@@ -0,0 +1,28 @@
1
+ // Records the release a process runs in `pipework_alert_releases`, first writer wins, so `resendOnNewRelease` can order
2
+ // releases by when each was first seen. Done at manifold start and script start when blueprint `alerts` is set; a
3
+ // raise and a tick record it too if this did not.
4
+
5
+ import { sql } from '../../data/db/sql.js'
6
+ import type { DB } from '../../data/db/index.js'
7
+ import type { Manifold } from '../../core/pipework.js'
8
+ import { getBaseLogger } from '../../core/logging/index.js'
9
+
10
+ export function insertAlertRelease(db: DB, release: string): Promise<unknown> {
11
+ return Promise.resolve(db.execute(sql`INSERT INTO pipework_alert_releases ("release", first_seen_at)
12
+ VALUES (${release}::text, clock_timestamp()) ON CONFLICT ("release") DO NOTHING`))
13
+ }
14
+
15
+ const recorded = new WeakSet<Manifold>()
16
+
17
+ /** No-op without blueprint `alerts` or a release. A failure logs a warning and never throws. */
18
+ export async function recordAlertReleaseAtStart(instance: Manifold): Promise<void> {
19
+ const release = instance.config.release
20
+ if (instance.config.raw.alerts === undefined || release === null || recorded.has(instance)) return
21
+ try {
22
+ const db = instance.pool.getOrCreate(instance.config.database(instance.config.defaultDatabaseName())).drizzle
23
+ await insertAlertRelease(db, release)
24
+ recorded.add(instance)
25
+ } catch (err) {
26
+ getBaseLogger().warn({ release, err }, 'Could not record the release for alerts at start; the first tick or raise will')
27
+ }
28
+ }
@@ -36,6 +36,8 @@ export const alerts = define('pipework_alerts', {
36
36
  issueUrl: field.text().nullable(),
37
37
  traceIds: field.custom(schema.col.text('trace_ids').array(), schema.check.array(schema.check.string())).default('{}'),
38
38
  resendAfterMs: field.integer().nullable(),
39
+ resendOnNewRelease: field.boolean().nullable(),
40
+ lastSentRelease: field.text().nullable(),
39
41
  resolveAfterQuietMs: field.integer().nullable(),
40
42
  updatedAt: field.timestamp().default('now'),
41
43
  }, {
@@ -44,6 +46,12 @@ export const alerts = define('pipework_alerts', {
44
46
  }),
45
47
  })
46
48
 
49
+ // One row per release a process running alerts has recorded, with when it was first seen; `resendOnNewRelease` compares these.
50
+ export const alertReleases = define('pipework_alert_releases', {
51
+ release: field.text().primaryKey(),
52
+ firstSeenAt: field.timestamp().default('now'),
53
+ })
54
+
47
55
  // One row per raise, kept for `occurrenceRetentionMs`.
48
56
  export const alertOccurrences = define('pipework_alert_occurrences', {
49
57
  id: field.uuid().defaultRandom().primaryKey(),