pipework 0.175.0 → 0.177.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 +17 -0
- package/REFERENCE.md +10 -2
- package/dist/REFERENCE.md +131 -10
- package/dist/infra/alerts/async-sources.d.ts +54 -0
- package/dist/infra/alerts/async-sources.d.ts.map +1 -0
- package/dist/infra/alerts/async-sources.js +233 -0
- package/dist/infra/alerts/async-sources.js.map +1 -0
- package/dist/infra/alerts/infra-sources.d.ts +49 -0
- package/dist/infra/alerts/infra-sources.d.ts.map +1 -0
- package/dist/infra/alerts/infra-sources.js +176 -0
- package/dist/infra/alerts/infra-sources.js.map +1 -0
- package/dist/infra/alerts/namespace.d.ts +18 -0
- package/dist/infra/alerts/namespace.d.ts.map +1 -1
- package/dist/infra/alerts/namespace.js +18 -0
- package/dist/infra/alerts/namespace.js.map +1 -1
- package/dist/infra/alerts/source-options.d.ts +13 -0
- package/dist/infra/alerts/source-options.d.ts.map +1 -0
- package/dist/infra/alerts/source-options.js +19 -0
- package/dist/infra/alerts/source-options.js.map +1 -0
- package/dist/infra/alerts/subsystem-sources.d.ts +1 -8
- package/dist/infra/alerts/subsystem-sources.d.ts.map +1 -1
- package/dist/infra/alerts/subsystem-sources.js +1 -17
- package/dist/infra/alerts/subsystem-sources.js.map +1 -1
- package/dist/infra/email/inbound.js +1 -1
- package/dist/infra/email/inbound.js.map +1 -1
- package/dist/infra/email/mail.js +1 -1
- package/dist/infra/email/mail.js.map +1 -1
- package/dist/infra/email/schema.d.ts +10 -0
- package/dist/infra/email/schema.d.ts.map +1 -1
- package/dist/infra/email/schema.js +2 -0
- package/dist/infra/email/schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Basics } from './source-options.js';
|
|
2
|
+
import { type AlertSource } from './sources.js';
|
|
3
|
+
/**
|
|
4
|
+
* Needs blueprint `email: {}`. Raises `email-failed:outbound` and `email-failed:inbound` for messages marked
|
|
5
|
+
* `failed` (`failed_at`) since the last tick (clears by the handle's quiet period); `email-stuck:sending` while
|
|
6
|
+
* a message has been `sending` more than `stuckAfterMs` (default 15 min); `email-stuck:queued` while one has been
|
|
7
|
+
* `queued` more than `queuedAfterMs` (default 1 h), which means nothing drains the send queue;
|
|
8
|
+
* `email-inbound-stuck:received` while an inbound message has been `received` more than `receivedAfterMs`
|
|
9
|
+
* (default 15 min) without being handled; and `email-raw-undrained:all` while raw inbound messages are more than
|
|
10
|
+
* `sweepGraceMs` (default 1 h) past `raw_expires_at` and not deleted, which means the raw sweep is not running.
|
|
11
|
+
* Addresses and subjects are never put in a key, message or context.
|
|
12
|
+
*/
|
|
13
|
+
export declare function emailSource(options?: Basics & {
|
|
14
|
+
stuckAfterMs?: number;
|
|
15
|
+
queuedAfterMs?: number;
|
|
16
|
+
receivedAfterMs?: number;
|
|
17
|
+
sweepGraceMs?: number;
|
|
18
|
+
settleMs?: number;
|
|
19
|
+
}): AlertSource;
|
|
20
|
+
/**
|
|
21
|
+
* Needs blueprint `storage: {}`. Raises `storage-expiry-undrained:all` while `storage_file` rows are more than
|
|
22
|
+
* `sweepGraceMs` (default 1 h) past `expires_at` and still exist (`sweep()` deletes them), which means the
|
|
23
|
+
* storage sweep is not scheduled.
|
|
24
|
+
*/
|
|
25
|
+
export declare function storageSource(options?: Basics & {
|
|
26
|
+
sweepGraceMs?: number;
|
|
27
|
+
}): AlertSource;
|
|
28
|
+
/**
|
|
29
|
+
* Needs blueprint `accessLinks: {}`. Raises `access-link-abandoned:<tenantId>` while a tenant has uses still
|
|
30
|
+
* `pending` more than `graceMs` (default 15 min) after `reserved_until`: the reservation was taken and never
|
|
31
|
+
* completed or released.
|
|
32
|
+
*/
|
|
33
|
+
export declare function accessLinksSource(options?: Basics & {
|
|
34
|
+
graceMs?: number;
|
|
35
|
+
}): AlertSource;
|
|
36
|
+
declare const LOCKOUT_TABLES: readonly ["pipework_signin_attempts", "pipework_guard_attempts"];
|
|
37
|
+
type LockoutTable = typeof LOCKOUT_TABLES[number];
|
|
38
|
+
/**
|
|
39
|
+
* Raises `auth-lockout:<table>` (default severity `warning`) while rows of that table have `locked_until` in the
|
|
40
|
+
* future, with the count in the message and context. One condition per table, never per account: no account,
|
|
41
|
+
* address or key is named. `pipework_signin_attempts` needs blueprint `passwords: {}`, `pipework_guard_attempts`
|
|
42
|
+
* needs `guards: {}`. `tables` overrides; when omitted, the tables that exist are resolved once, on the first
|
|
43
|
+
* evaluate, and it throws if neither does.
|
|
44
|
+
*/
|
|
45
|
+
export declare function lockoutsSource(options?: Basics & {
|
|
46
|
+
tables?: readonly LockoutTable[];
|
|
47
|
+
}): AlertSource;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=infra-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-sources.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/infra-sources.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6C,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5F,OAAO,EAA8C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAI3F;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CA8DrL;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAc3F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAe1F;AAED,QAAA,MAAM,cAAc,kEAAmE,CAAA;AACvF,KAAK,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AAEjD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CAAO,GAAG,WAAW,CAyCvG"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// Sources over the failures that mail, storage, access links and sign-in locks record but nothing used to read.
|
|
2
|
+
// Each is a composition of `querySource` and `newRowsSource`; a source is opt-in, so its tables exist only
|
|
3
|
+
// when the blueprint key named in its JSDoc is set.
|
|
4
|
+
import { sql } from '../../data/db/sql.js';
|
|
5
|
+
import { pipeSystem } from '../../data/db/db.js';
|
|
6
|
+
import { common, positive, text, FIFTEEN_MIN, HOUR } from './source-options.js';
|
|
7
|
+
import { composeSources, newRowsSource, querySource } from './sources.js';
|
|
8
|
+
const nullable = (v) => v === null || v === undefined ? null : String(v);
|
|
9
|
+
/**
|
|
10
|
+
* Needs blueprint `email: {}`. Raises `email-failed:outbound` and `email-failed:inbound` for messages marked
|
|
11
|
+
* `failed` (`failed_at`) since the last tick (clears by the handle's quiet period); `email-stuck:sending` while
|
|
12
|
+
* a message has been `sending` more than `stuckAfterMs` (default 15 min); `email-stuck:queued` while one has been
|
|
13
|
+
* `queued` more than `queuedAfterMs` (default 1 h), which means nothing drains the send queue;
|
|
14
|
+
* `email-inbound-stuck:received` while an inbound message has been `received` more than `receivedAfterMs`
|
|
15
|
+
* (default 15 min) without being handled; and `email-raw-undrained:all` while raw inbound messages are more than
|
|
16
|
+
* `sweepGraceMs` (default 1 h) past `raw_expires_at` and not deleted, which means the raw sweep is not running.
|
|
17
|
+
* Addresses and subjects are never put in a key, message or context.
|
|
18
|
+
*/
|
|
19
|
+
export function emailSource(options = {}) {
|
|
20
|
+
const who = 'alerts.source.email';
|
|
21
|
+
const stuckAfter = positive(options.stuckAfterMs ?? FIFTEEN_MIN, 'stuckAfterMs', who);
|
|
22
|
+
const queuedAfter = positive(options.queuedAfterMs ?? HOUR, 'queuedAfterMs', who);
|
|
23
|
+
const receivedAfter = positive(options.receivedAfterMs ?? FIFTEEN_MIN, 'receivedAfterMs', who);
|
|
24
|
+
const grace = positive(options.sweepGraceMs ?? HOUR, 'sweepGraceMs', who);
|
|
25
|
+
const failedRows = (direction, table) => newRowsSource({
|
|
26
|
+
...common(options),
|
|
27
|
+
name: 'email-failed',
|
|
28
|
+
stateKey: `email-failed:${direction}`,
|
|
29
|
+
table,
|
|
30
|
+
at: 'failed_at',
|
|
31
|
+
groupBy: sql.raw(`'${direction}'`),
|
|
32
|
+
...(options.settleMs !== undefined ? { settleMs: options.settleMs } : {}),
|
|
33
|
+
message: g => `${String(g.count)} ${direction} email(s) failed; last error: ${text(g.last['error'])}`,
|
|
34
|
+
context: g => ({ direction, count: g.count, lastError: nullable(g.last['error']) }),
|
|
35
|
+
});
|
|
36
|
+
const stuck = querySource({
|
|
37
|
+
...common(options),
|
|
38
|
+
name: 'email-stuck',
|
|
39
|
+
query: sql `
|
|
40
|
+
SELECT 'sending' AS kind, count(*)::int AS n, (extract(epoch FROM clock_timestamp() - min(sending_at)) * 1000)::bigint AS oldest_ms
|
|
41
|
+
FROM pipework_email_messages
|
|
42
|
+
WHERE status = 'sending' AND sending_at < clock_timestamp() - ${stuckAfter} * interval '1 millisecond'
|
|
43
|
+
HAVING count(*) > 0
|
|
44
|
+
UNION ALL
|
|
45
|
+
SELECT 'queued', count(*)::int, (extract(epoch FROM clock_timestamp() - min(created_at)) * 1000)::bigint
|
|
46
|
+
FROM pipework_email_messages
|
|
47
|
+
WHERE status = 'queued' AND created_at < clock_timestamp() - ${queuedAfter} * interval '1 millisecond'
|
|
48
|
+
HAVING count(*) > 0`,
|
|
49
|
+
id: r => String(r['kind']),
|
|
50
|
+
message: r => String(r['kind']) === 'sending'
|
|
51
|
+
? `${String(r['n'])} email(s) stuck sending for more than ${String(stuckAfter)} ms (oldest ${String(r['oldest_ms'])} ms)`
|
|
52
|
+
: `${String(r['n'])} email(s) queued for more than ${String(queuedAfter)} ms (oldest ${String(r['oldest_ms'])} ms); is the send queue being drained?`,
|
|
53
|
+
context: r => ({ count: Number(r['n']), oldestMs: Number(r['oldest_ms']) }),
|
|
54
|
+
});
|
|
55
|
+
const received = querySource({
|
|
56
|
+
...common(options),
|
|
57
|
+
name: 'email-inbound-stuck',
|
|
58
|
+
query: sql `
|
|
59
|
+
SELECT count(*)::int AS n, (extract(epoch FROM clock_timestamp() - min(received_at)) * 1000)::bigint AS oldest_ms
|
|
60
|
+
FROM pipework_email_inbound
|
|
61
|
+
WHERE status = 'received' AND received_at < clock_timestamp() - ${receivedAfter} * interval '1 millisecond'
|
|
62
|
+
HAVING count(*) > 0`,
|
|
63
|
+
id: () => 'received',
|
|
64
|
+
message: r => `${String(r['n'])} inbound email(s) received more than ${String(receivedAfter)} ms ago and not handled (oldest ${String(r['oldest_ms'])} ms)`,
|
|
65
|
+
context: r => ({ count: Number(r['n']), oldestMs: Number(r['oldest_ms']) }),
|
|
66
|
+
});
|
|
67
|
+
const raw = querySource({
|
|
68
|
+
...common(options),
|
|
69
|
+
name: 'email-raw-undrained',
|
|
70
|
+
query: sql `
|
|
71
|
+
SELECT count(*)::int AS n FROM pipework_email_inbound
|
|
72
|
+
WHERE raw_deleted_at IS NULL AND raw_expires_at < clock_timestamp() - ${grace} * interval '1 millisecond'
|
|
73
|
+
HAVING count(*) > 0`,
|
|
74
|
+
id: () => 'all',
|
|
75
|
+
message: r => `${String(r['n'])} raw inbound message(s) past their retention and not deleted; is the inbound sweep scheduled?`,
|
|
76
|
+
context: r => ({ count: Number(r['n']) }),
|
|
77
|
+
});
|
|
78
|
+
return composeSources('email', [
|
|
79
|
+
failedRows('outbound', 'pipework_email_messages'), failedRows('inbound', 'pipework_email_inbound'), stuck, received, raw,
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Needs blueprint `storage: {}`. Raises `storage-expiry-undrained:all` while `storage_file` rows are more than
|
|
84
|
+
* `sweepGraceMs` (default 1 h) past `expires_at` and still exist (`sweep()` deletes them), which means the
|
|
85
|
+
* storage sweep is not scheduled.
|
|
86
|
+
*/
|
|
87
|
+
export function storageSource(options = {}) {
|
|
88
|
+
const grace = positive(options.sweepGraceMs ?? HOUR, 'sweepGraceMs', 'alerts.source.storage');
|
|
89
|
+
return querySource({
|
|
90
|
+
...common(options),
|
|
91
|
+
name: 'storage-expiry-undrained',
|
|
92
|
+
query: sql `
|
|
93
|
+
SELECT count(*)::int AS n, (extract(epoch FROM clock_timestamp() - min(expires_at)) * 1000)::bigint AS oldest_ms
|
|
94
|
+
FROM storage_file
|
|
95
|
+
WHERE expires_at IS NOT NULL AND expires_at < clock_timestamp() - ${grace} * interval '1 millisecond'
|
|
96
|
+
HAVING count(*) > 0`,
|
|
97
|
+
id: () => 'all',
|
|
98
|
+
message: r => `${String(r['n'])} expired file(s) not swept (oldest ${String(r['oldest_ms'])} ms past expiry); is the storage sweep scheduled?`,
|
|
99
|
+
context: r => ({ count: Number(r['n']), oldestMs: Number(r['oldest_ms']) }),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Needs blueprint `accessLinks: {}`. Raises `access-link-abandoned:<tenantId>` while a tenant has uses still
|
|
104
|
+
* `pending` more than `graceMs` (default 15 min) after `reserved_until`: the reservation was taken and never
|
|
105
|
+
* completed or released.
|
|
106
|
+
*/
|
|
107
|
+
export function accessLinksSource(options = {}) {
|
|
108
|
+
const grace = positive(options.graceMs ?? FIFTEEN_MIN, 'graceMs', 'alerts.source.accessLinks');
|
|
109
|
+
return querySource({
|
|
110
|
+
...common(options),
|
|
111
|
+
name: 'access-link-abandoned',
|
|
112
|
+
query: sql `
|
|
113
|
+
SELECT tenant_id, count(*)::int AS n, (extract(epoch FROM clock_timestamp() - min(reserved_until)) * 1000)::bigint AS oldest_ms
|
|
114
|
+
FROM access_link_use
|
|
115
|
+
WHERE status = 'pending' AND reserved_until < clock_timestamp() - ${grace} * interval '1 millisecond'
|
|
116
|
+
GROUP BY tenant_id ORDER BY tenant_id`,
|
|
117
|
+
id: r => String(r['tenant_id']),
|
|
118
|
+
message: r => `${String(r['n'])} access link use(s) for ${String(r['tenant_id'])} reserved and never finished (oldest ${String(r['oldest_ms'])} ms past reservation)`,
|
|
119
|
+
subject: r => ({ tenantId: String(r['tenant_id']) }),
|
|
120
|
+
context: r => ({ count: Number(r['n']), oldestMs: Number(r['oldest_ms']) }),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const LOCKOUT_TABLES = ['pipework_signin_attempts', 'pipework_guard_attempts'];
|
|
124
|
+
/**
|
|
125
|
+
* Raises `auth-lockout:<table>` (default severity `warning`) while rows of that table have `locked_until` in the
|
|
126
|
+
* future, with the count in the message and context. One condition per table, never per account: no account,
|
|
127
|
+
* address or key is named. `pipework_signin_attempts` needs blueprint `passwords: {}`, `pipework_guard_attempts`
|
|
128
|
+
* needs `guards: {}`. `tables` overrides; when omitted, the tables that exist are resolved once, on the first
|
|
129
|
+
* evaluate, and it throws if neither does.
|
|
130
|
+
*/
|
|
131
|
+
export function lockoutsSource(options = {}) {
|
|
132
|
+
if (options.tables !== undefined) {
|
|
133
|
+
if (options.tables.length === 0)
|
|
134
|
+
throw new Error('[pipework] alerts.source.lockouts tables must not be empty; omit it to watch the lockout tables that exist.');
|
|
135
|
+
for (const t of options.tables) {
|
|
136
|
+
if (!LOCKOUT_TABLES.includes(t))
|
|
137
|
+
throw new Error(`[pipework] alerts.source.lockouts table must be one of ${LOCKOUT_TABLES.join(', ')}, got ${String(t)}.`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const build = (tables) => {
|
|
141
|
+
const selects = [...new Set(tables)].map(t => `SELECT '${t}' AS tbl, count(*)::int AS n FROM ${t} WHERE locked_until > clock_timestamp() HAVING count(*) > 0`);
|
|
142
|
+
return querySource({
|
|
143
|
+
...common(options),
|
|
144
|
+
severity: options.severity ?? 'warning',
|
|
145
|
+
name: 'auth-lockout',
|
|
146
|
+
query: sql.raw(selects.join(' UNION ALL ')),
|
|
147
|
+
id: r => String(r['tbl']),
|
|
148
|
+
message: r => `${String(r['n'])} lockout(s) active on ${String(r['tbl'])}`,
|
|
149
|
+
context: r => ({ table: String(r['tbl']), count: Number(r['n']) }),
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
if (options.tables !== undefined)
|
|
153
|
+
return build(options.tables);
|
|
154
|
+
let resolved;
|
|
155
|
+
const resolve = async () => {
|
|
156
|
+
const rows = await pipeSystem(options.database).execute(sql `
|
|
157
|
+
SELECT to_regclass('pipework_signin_attempts') IS NOT NULL AS a, to_regclass('pipework_guard_attempts') IS NOT NULL AS b`);
|
|
158
|
+
const found = LOCKOUT_TABLES.filter((_, i) => rows[0]?.[i === 0 ? 'a' : 'b'] === true);
|
|
159
|
+
if (found.length === 0) {
|
|
160
|
+
throw new Error('[pipework] alerts.source.lockouts found neither pipework_signin_attempts nor pipework_guard_attempts; enable `passwords: {}` and/or `guards: {}` in the blueprint, or drop this source.');
|
|
161
|
+
}
|
|
162
|
+
return build(found);
|
|
163
|
+
};
|
|
164
|
+
return {
|
|
165
|
+
name: 'auth-lockout',
|
|
166
|
+
owns: key => key.startsWith('auth-lockout:'),
|
|
167
|
+
async evaluate() {
|
|
168
|
+
if (resolved === undefined) {
|
|
169
|
+
resolved = resolve();
|
|
170
|
+
resolved.catch(() => { resolved = undefined; });
|
|
171
|
+
}
|
|
172
|
+
return (await resolved).evaluate();
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=infra-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-sources.js","sourceRoot":"","sources":["../../../src/infra/alerts/infra-sources.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,2GAA2G;AAC3G,oDAAoD;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAe,MAAM,qBAAqB,CAAA;AAC5F,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAA;AAE3F,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAEhG;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,UAA0I,EAAE;IACtK,MAAM,GAAG,GAAG,qBAAqB,CAAA;IACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,WAAW,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;IACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;IACjF,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,IAAI,WAAW,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAA;IAC9F,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,CAAC,SAAiC,EAAE,KAAa,EAAe,EAAE,CAAC,aAAa,CAAC;QAClG,GAAG,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,gBAAgB,SAAS,EAAE;QACrC,KAAK;QACL,EAAE,EAAE,WAAW;QACf,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,iCAAiC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;QACrG,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,WAAW,CAAC;QACxB,GAAG,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,GAAG,CAAA;;;sEAGwD,UAAU;;;;;qEAKX,WAAW;0BACtD;QACtB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,SAAS;YAC3C,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,yCAAyC,MAAM,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM;YACzH,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kCAAkC,MAAM,CAAC,WAAW,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,wCAAwC;QACvJ,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,GAAG,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,GAAG,CAAA;;;wEAG0D,aAAa;0BAC3D;QACtB,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,wCAAwC,MAAM,CAAC,aAAa,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM;QAC3J,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,WAAW,CAAC;QACtB,GAAG,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,GAAG,CAAA;;8EAEgE,KAAK;0BACzD;QACtB,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK;QACf,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,+FAA+F;QAC9H,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IACF,OAAO,cAAc,CAAC,OAAO,EAAE;QAC7B,UAAU,CAAC,UAAU,EAAE,yBAAyB,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG;KACzH,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAA8C,EAAE;IAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAA;IAC7F,OAAO,WAAW,CAAC;QACjB,GAAG,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,GAAG,CAAA;;;0EAG4D,KAAK;0BACrD;QACtB,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK;QACf,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sCAAsC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,mDAAmD;QAC9I,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAyC,EAAE;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAA;IAC9F,OAAO,WAAW,CAAC;QACjB,GAAG,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,GAAG,CAAA;;;0EAG4D,KAAK;4CACnC;QACxC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,2BAA2B,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,wCAAwC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,uBAAuB;QACrK,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,0BAA0B,EAAE,yBAAyB,CAAU,CAAA;AAGvF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,UAAyD,EAAE;IACxF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAA;QAC/J,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC5J,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,MAA+B,EAAe,EAAE;QAC7D,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,qCAAqC,CAAC,6DAA6D,CAAC,CAAA;QAC9J,OAAO,WAAW,CAAC;YACjB,GAAG,MAAM,CAAC,OAAO,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;YACvC,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3C,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,yBAAyB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YAC1E,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9D,IAAI,QAA0C,CAAA;IAC9C,MAAM,OAAO,GAAG,KAAK,IAA0B,EAAE;QAC/C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;+HACgE,CAAC,CAAA;QAC5H,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;QACtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yLAAyL,CAAC,CAAA;QAC5M,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC,CAAA;IACD,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;QAC5C,KAAK,CAAC,QAAQ;YACZ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,QAAQ,GAAG,OAAO,EAAE,CAAA;gBACpB,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAA,CAAC,CAAC,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QACpC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -5,6 +5,8 @@ import { webhookSink, memorySink } from './sinks.js';
|
|
|
5
5
|
import { requestFaultsHook } from './request-faults.js';
|
|
6
6
|
import { deadLetterSource, longRunningSource, backlogSource, healthSource, quotaExhaustedSource, unitFaultSource, loopStalledSource, loopCheck, querySource, newRowsSource } from './sources.js';
|
|
7
7
|
import { deliveryFailedSource, webhookFailedSource, creditsSource } from './subsystem-sources.js';
|
|
8
|
+
import { emailSource, storageSource, accessLinksSource, lockoutsSource } from './infra-sources.js';
|
|
9
|
+
import { schedulesSource, stepsSource, pipelinesSource, tracesSource } from './async-sources.js';
|
|
8
10
|
/** Alerts namespace — raise and resolve keyed conditions, grouped, delivered to sinks through an outbox, traced. */
|
|
9
11
|
export declare const alerts: {
|
|
10
12
|
/** Creates an alerts handle. */
|
|
@@ -44,6 +46,22 @@ export declare const alerts: {
|
|
|
44
46
|
readonly webhookFailed: typeof webhookFailedSource;
|
|
45
47
|
/** Raises `credit-overdraft:<tenantId>`, `credit-held:<tenantId>` and `credit-expiry-undrained:all` over the credits tables. */
|
|
46
48
|
readonly credits: typeof creditsSource;
|
|
49
|
+
/** Raises `email-failed:<direction>`, `email-stuck:<sending|queued>`, `email-inbound-stuck:received` and `email-raw-undrained:all` over the mail tables. */
|
|
50
|
+
readonly email: typeof emailSource;
|
|
51
|
+
/** Raises `storage-expiry-undrained:all` while expired files are not swept. */
|
|
52
|
+
readonly storage: typeof storageSource;
|
|
53
|
+
/** Raises `access-link-abandoned:<tenantId>` while link uses stay reserved and never finish. */
|
|
54
|
+
readonly accessLinks: typeof accessLinksSource;
|
|
55
|
+
/** Raises `auth-lockout:<table>` (warning) while sign-in or guard lockouts are active; counts only, no accounts. */
|
|
56
|
+
readonly lockouts: typeof lockoutsSource;
|
|
57
|
+
/** Raises `schedule-overdue:<name>` while a cron schedule's `next_run_at` is long past, which means no scheduler is firing it. */
|
|
58
|
+
readonly schedules: typeof schedulesSource;
|
|
59
|
+
/** Raises `step-run-failed:<graph>`, `step-run-unnotified:<graph>` and `step-task-waiting:<graph>` and `step-run-stalled:<graph>` over the step graph tables. */
|
|
60
|
+
readonly steps: typeof stepsSource;
|
|
61
|
+
/** Raises `pipeline-failed:<pipeline>` for failed runs `pipeline-waiting:<pipeline>` for runs waiting too long and `pipeline-stalled:<pipeline>` for runs still running too long. */
|
|
62
|
+
readonly pipelines: typeof pipelinesSource;
|
|
63
|
+
/** Raises `trace-expired:<entryKind>` for traces force-closed by the expiry sweep and `trace-expiry-undrained:all` while expired open traces are not being swept. */
|
|
64
|
+
readonly traces: typeof tracesSource;
|
|
47
65
|
/** Raises `loop-stalled:<name>` while a background loop (scheduler, reaper, claim loop, support drain) has not run or succeeded within its allowance; the tick itself is covered by `pipework alerts stale`. */
|
|
48
66
|
readonly loopStalled: typeof loopStalledSource;
|
|
49
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAChM,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAChM,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACjG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhG,oHAAoH;AACpH,eAAO,MAAM,MAAM;IACjB,gCAAgC;;IAEhC,0HAA0H;;IAE1H,wLAAwL;;IAExL,oHAAoH;;IAEpH,2DAA2D;;IAE3D,+DAA+D;;IAE/D,kJAAkJ;;;QAGhJ,4EAA4E;;QAE5E,iFAAiF;;QAEjF,mGAAmG;;QAEnG,yGAAyG;;QAEzG,yDAAyD;;QAEzD,6IAA6I;;QAE7I,2HAA2H;;QAE3H,iIAAiI;;QAEjI,0IAA0I;;QAE1I,yJAAyJ;;QAEzJ,gIAAgI;;QAEhI,4JAA4J;;QAE5J,+EAA+E;;QAE/E,gGAAgG;;QAEhG,oHAAoH;;QAEpH,kIAAkI;;QAElI,iKAAiK;;QAEjK,qLAAqL;;QAErL,qKAAqK;;QAErK,gNAAgN;;;CAG1M,CAAA"}
|
|
@@ -5,6 +5,8 @@ import { webhookSink, memorySink } from './sinks.js';
|
|
|
5
5
|
import { requestFaultsHook } from './request-faults.js';
|
|
6
6
|
import { deadLetterSource, longRunningSource, backlogSource, healthSource, quotaExhaustedSource, unitFaultSource, loopStalledSource, loopCheck, querySource, newRowsSource } from './sources.js';
|
|
7
7
|
import { deliveryFailedSource, webhookFailedSource, creditsSource } from './subsystem-sources.js';
|
|
8
|
+
import { emailSource, storageSource, accessLinksSource, lockoutsSource } from './infra-sources.js';
|
|
9
|
+
import { schedulesSource, stepsSource, pipelinesSource, tracesSource } from './async-sources.js';
|
|
8
10
|
/** Alerts namespace — raise and resolve keyed conditions, grouped, delivered to sinks through an outbox, traced. */
|
|
9
11
|
export const alerts = {
|
|
10
12
|
/** Creates an alerts handle. */
|
|
@@ -44,6 +46,22 @@ export const alerts = {
|
|
|
44
46
|
webhookFailed: webhookFailedSource,
|
|
45
47
|
/** Raises `credit-overdraft:<tenantId>`, `credit-held:<tenantId>` and `credit-expiry-undrained:all` over the credits tables. */
|
|
46
48
|
credits: creditsSource,
|
|
49
|
+
/** Raises `email-failed:<direction>`, `email-stuck:<sending|queued>`, `email-inbound-stuck:received` and `email-raw-undrained:all` over the mail tables. */
|
|
50
|
+
email: emailSource,
|
|
51
|
+
/** Raises `storage-expiry-undrained:all` while expired files are not swept. */
|
|
52
|
+
storage: storageSource,
|
|
53
|
+
/** Raises `access-link-abandoned:<tenantId>` while link uses stay reserved and never finish. */
|
|
54
|
+
accessLinks: accessLinksSource,
|
|
55
|
+
/** Raises `auth-lockout:<table>` (warning) while sign-in or guard lockouts are active; counts only, no accounts. */
|
|
56
|
+
lockouts: lockoutsSource,
|
|
57
|
+
/** Raises `schedule-overdue:<name>` while a cron schedule's `next_run_at` is long past, which means no scheduler is firing it. */
|
|
58
|
+
schedules: schedulesSource,
|
|
59
|
+
/** Raises `step-run-failed:<graph>`, `step-run-unnotified:<graph>` and `step-task-waiting:<graph>` and `step-run-stalled:<graph>` over the step graph tables. */
|
|
60
|
+
steps: stepsSource,
|
|
61
|
+
/** Raises `pipeline-failed:<pipeline>` for failed runs `pipeline-waiting:<pipeline>` for runs waiting too long and `pipeline-stalled:<pipeline>` for runs still running too long. */
|
|
62
|
+
pipelines: pipelinesSource,
|
|
63
|
+
/** Raises `trace-expired:<entryKind>` for traces force-closed by the expiry sweep and `trace-expiry-undrained:all` while expired open traces are not being swept. */
|
|
64
|
+
traces: tracesSource,
|
|
47
65
|
/** Raises `loop-stalled:<name>` while a background loop (scheduler, reaper, claim loop, support drain) has not run or succeeded within its allowance; the tick itself is covered by `pipework alerts stale`. */
|
|
48
66
|
loopStalled: loopStalledSource,
|
|
49
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/infra/alerts/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAChM,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/infra/alerts/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAChM,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACjG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhG,oHAAoH;AACpH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,gCAAgC;IAChC,MAAM,EAAE,YAAY;IACpB,0HAA0H;IAC1H,IAAI,EAAE,UAAU;IAChB,wLAAwL;IACxL,YAAY;IACZ,oHAAoH;IACpH,aAAa,EAAE,iBAAiB;IAChC,2DAA2D;IAC3D,OAAO,EAAE,WAAW;IACpB,+DAA+D;IAC/D,MAAM,EAAE,UAAU;IAClB,kJAAkJ;IAClJ,SAAS;IACT,MAAM,EAAE;QACN,4EAA4E;QAC5E,UAAU,EAAE,gBAAgB;QAC5B,iFAAiF;QACjF,WAAW,EAAE,iBAAiB;QAC9B,mGAAmG;QACnG,OAAO,EAAE,aAAa;QACtB,yGAAyG;QACzG,cAAc,EAAE,oBAAoB;QACpC,yDAAyD;QACzD,MAAM,EAAE,YAAY;QACpB,6IAA6I;QAC7I,SAAS,EAAE,eAAe;QAC1B,2HAA2H;QAC3H,KAAK,EAAE,WAAW;QAClB,iIAAiI;QACjI,OAAO,EAAE,aAAa;QACtB,0IAA0I;QAC1I,cAAc,EAAE,oBAAoB;QACpC,yJAAyJ;QACzJ,aAAa,EAAE,mBAAmB;QAClC,gIAAgI;QAChI,OAAO,EAAE,aAAa;QACtB,4JAA4J;QAC5J,KAAK,EAAE,WAAW;QAClB,+EAA+E;QAC/E,OAAO,EAAE,aAAa;QACtB,gGAAgG;QAChG,WAAW,EAAE,iBAAiB;QAC9B,oHAAoH;QACpH,QAAQ,EAAE,cAAc;QACxB,kIAAkI;QAClI,SAAS,EAAE,eAAe;QAC1B,iKAAiK;QACjK,KAAK,EAAE,WAAW;QAClB,qLAAqL;QACrL,SAAS,EAAE,eAAe;QAC1B,qKAAqK;QACrK,MAAM,EAAE,YAAY;QACpB,gNAAgN;QAChN,WAAW,EAAE,iBAAiB;KAC/B;CACO,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AlertSeverity } from './handle.js';
|
|
2
|
+
export interface Basics {
|
|
3
|
+
owner?: string;
|
|
4
|
+
runbook?: string;
|
|
5
|
+
severity?: AlertSeverity;
|
|
6
|
+
database?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const FIFTEEN_MIN: number;
|
|
9
|
+
export declare const HOUR = 3600000;
|
|
10
|
+
export declare function positive(value: number, label: string, who: string): number;
|
|
11
|
+
export declare function common(options: Basics): Basics;
|
|
12
|
+
export declare const text: (v: unknown) => string;
|
|
13
|
+
//# sourceMappingURL=source-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-options.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/source-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,WAAW,MAAM;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAEzG,eAAO,MAAM,WAAW,QAAc,CAAA;AACtC,eAAO,MAAM,IAAI,UAAY,CAAA;AAE7B,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED,eAAO,MAAM,IAAI,GAAI,GAAG,OAAO,KAAG,MAA4D,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Options and helpers shared by the alert sources built on `querySource` and `newRowsSource`.
|
|
2
|
+
export const FIFTEEN_MIN = 15 * 60_000;
|
|
3
|
+
export const HOUR = 3_600_000;
|
|
4
|
+
export function positive(value, label, who) {
|
|
5
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
6
|
+
throw new Error(`[pipework] ${who} ${label} must be a positive number of milliseconds, got ${String(value)}.`);
|
|
7
|
+
}
|
|
8
|
+
return Math.trunc(value);
|
|
9
|
+
}
|
|
10
|
+
export function common(options) {
|
|
11
|
+
return {
|
|
12
|
+
...(options.owner !== undefined ? { owner: options.owner } : {}),
|
|
13
|
+
...(options.runbook !== undefined ? { runbook: options.runbook } : {}),
|
|
14
|
+
...(options.severity !== undefined ? { severity: options.severity } : {}),
|
|
15
|
+
...(options.database !== undefined ? { database: options.database } : {}),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export const text = (v) => v === null || v === undefined ? 'none' : String(v);
|
|
19
|
+
//# sourceMappingURL=source-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-options.js","sourceRoot":"","sources":["../../../src/infra/alerts/source-options.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAM9F,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,CAAA;AACtC,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAA;AAE7B,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAE,GAAW;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,IAAI,KAAK,mDAAmD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Basics } from './source-options.js';
|
|
2
2
|
import { type AlertSource } from './sources.js';
|
|
3
|
-
interface Basics {
|
|
4
|
-
owner?: string;
|
|
5
|
-
runbook?: string;
|
|
6
|
-
severity?: AlertSeverity;
|
|
7
|
-
database?: string;
|
|
8
|
-
}
|
|
9
3
|
/**
|
|
10
4
|
* Raises `delivery-failed:<table>:<sink>` for outbox rows that gave up (`failed_at`) since the last tick, and
|
|
11
5
|
* `delivery-stuck:<table>:<sink>` while rows are still pending more than `stuckAfterMs` (default 15 min) past
|
|
@@ -38,5 +32,4 @@ export declare function creditsSource(options?: Basics & {
|
|
|
38
32
|
expiryGraceMs?: number;
|
|
39
33
|
settleMs?: number;
|
|
40
34
|
}): AlertSource;
|
|
41
|
-
export {};
|
|
42
35
|
//# sourceMappingURL=subsystem-sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subsystem-sources.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/subsystem-sources.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"subsystem-sources.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/subsystem-sources.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6C,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5F,OAAO,EAA8C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAE3F;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAkCjJ;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CA+BtI;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAM,GAAG;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAyCzI"}
|
|
@@ -3,24 +3,8 @@
|
|
|
3
3
|
import { sql } from '../../data/db/sql.js';
|
|
4
4
|
import { assertValidIdentifier, quoteIdentifier } from '../../data/db/identifiers.js';
|
|
5
5
|
import { DEFAULT_WEBHOOK_DELIVERY_TABLE } from '../webhook/outbound.js';
|
|
6
|
+
import { common, positive, text, FIFTEEN_MIN, HOUR } from './source-options.js';
|
|
6
7
|
import { composeSources, newRowsSource, querySource } from './sources.js';
|
|
7
|
-
const FIFTEEN_MIN = 15 * 60_000;
|
|
8
|
-
const HOUR = 3_600_000;
|
|
9
|
-
function positive(value, label, who) {
|
|
10
|
-
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
11
|
-
throw new Error(`[pipework] ${who} ${label} must be a positive number of milliseconds, got ${String(value)}.`);
|
|
12
|
-
}
|
|
13
|
-
return Math.trunc(value);
|
|
14
|
-
}
|
|
15
|
-
function common(options) {
|
|
16
|
-
return {
|
|
17
|
-
...(options.owner !== undefined ? { owner: options.owner } : {}),
|
|
18
|
-
...(options.runbook !== undefined ? { runbook: options.runbook } : {}),
|
|
19
|
-
...(options.severity !== undefined ? { severity: options.severity } : {}),
|
|
20
|
-
...(options.database !== undefined ? { database: options.database } : {}),
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
const text = (v) => v === null || v === undefined ? 'none' : String(v);
|
|
24
8
|
/**
|
|
25
9
|
* Raises `delivery-failed:<table>:<sink>` for outbox rows that gave up (`failed_at`) since the last tick, and
|
|
26
10
|
* `delivery-stuck:<table>:<sink>` while rows are still pending more than `stuckAfterMs` (default 15 min) past
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subsystem-sources.js","sourceRoot":"","sources":["../../../src/infra/alerts/subsystem-sources.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,kFAAkF;AAElF,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"subsystem-sources.js","sourceRoot":"","sources":["../../../src/infra/alerts/subsystem-sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -252,7 +252,7 @@ export function createInbound(config) {
|
|
|
252
252
|
return { conversationId: randomUUID(), isNew: true };
|
|
253
253
|
}
|
|
254
254
|
async function fail(id, error) {
|
|
255
|
-
await pipeSystem().execute(sql `UPDATE pipework_email_inbound SET status = 'failed', error = ${error} WHERE id = ${id}::uuid`);
|
|
255
|
+
await pipeSystem().execute(sql `UPDATE pipework_email_inbound SET status = 'failed', failed_at = now(), error = ${error} WHERE id = ${id}::uuid`);
|
|
256
256
|
await auditEmail('failed', id, { error }, 'EmailInbound');
|
|
257
257
|
getBaseLogger().error({ event: 'email receive failed', inboundId: id }, `received email not handled: ${error}`);
|
|
258
258
|
return { status: 'failed' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/infra/email/inbound.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/infra/email/inbound.ts"],"names":[],"mappings":"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"}
|
package/dist/infra/email/mail.js
CHANGED
|
@@ -135,7 +135,7 @@ export function createMail(config) {
|
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
if (rendered === null) {
|
|
138
|
-
await db.execute(sql `UPDATE pipework_email_messages SET status = 'failed', error = ${renderError} WHERE id = ${messageId}::uuid`);
|
|
138
|
+
await db.execute(sql `UPDATE pipework_email_messages SET status = 'failed', failed_at = now(), error = ${renderError} WHERE id = ${messageId}::uuid`);
|
|
139
139
|
await auditEmail('failed', messageId, { error: renderError });
|
|
140
140
|
getBaseLogger().error({ event: 'email failed', messageId }, `email not sent: ${renderError}`);
|
|
141
141
|
return { status: 'failed' };
|