@snagset/server 0.1.5 → 0.1.7
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/README.md +7 -5
- package/dist/app.js +34 -1
- package/dist/app.js.map +1 -1
- package/dist/bin.js +26 -23
- package/dist/bin.js.map +1 -1
- package/dist/db/connect.js +68 -31
- package/dist/db/connect.js.map +1 -1
- package/dist/db/migrate.js +144 -81
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/rls.js +5 -4
- package/dist/db/rls.js.map +1 -1
- package/dist/explain.js +1 -1
- package/dist/explain.js.map +1 -1
- package/dist/integrations/outbox.js +3 -0
- package/dist/integrations/outbox.js.map +1 -1
- package/dist/jobs/index.js +32 -11
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/set.js +35 -0
- package/dist/jobs/set.js.map +1 -0
- package/dist/jobs/soon.js +112 -0
- package/dist/jobs/soon.js.map +1 -0
- package/dist/mail/notify.js +4 -0
- package/dist/mail/notify.js.map +1 -1
- package/dist/platform.js +5 -1
- package/dist/platform.js.map +1 -1
- package/dist/routes/jobs.js +6 -28
- package/dist/routes/jobs.js.map +1 -1
- package/dist/routes/owner.js +7 -3
- package/dist/routes/owner.js.map +1 -1
- package/dist/routes/sites.js +4 -2
- package/dist/routes/sites.js.map +1 -1
- package/dist/serverless.js +25 -1
- package/dist/serverless.js.map +1 -1
- package/package.json +1 -1
package/dist/db/migrate.js
CHANGED
|
@@ -15,11 +15,23 @@ import postgres from "postgres";
|
|
|
15
15
|
*
|
|
16
16
|
* The four rules that make an unattended boot safe:
|
|
17
17
|
*
|
|
18
|
-
* 1. **One advisory lock,
|
|
19
|
-
* deploy overlaps old and new containers. Without
|
|
20
|
-
* run `CREATE TABLE` concurrently and the loser
|
|
21
|
-
* looks exactly like a corrupt database to
|
|
22
|
-
* the loser waits
|
|
18
|
+
* 1. **One advisory lock, per file, inside its transaction.** Vercel starts
|
|
19
|
+
* N lambdas; a Railway deploy overlaps old and new containers. Without
|
|
20
|
+
* the lock, two processes run `CREATE TABLE` concurrently and the loser
|
|
21
|
+
* dies on a duplicate — which looks exactly like a corrupt database to
|
|
22
|
+
* whoever reads the logs. With it, the loser waits, then finds the file
|
|
23
|
+
* already in the ledger and moves on.
|
|
24
|
+
*
|
|
25
|
+
* TRANSACTION-scoped (`pg_advisory_xact_lock`), not session-scoped, and
|
|
26
|
+
* the reason is the pooled `DATABASE_URL` 08 §3.2 blesses. A pooler in
|
|
27
|
+
* transaction mode (Supabase's port 6543, Neon's `-pooler`, PgBouncer)
|
|
28
|
+
* hands a client a backend for one transaction at a time; a session lock
|
|
29
|
+
* taken on one backend and released on another is a lock nobody holds
|
|
30
|
+
* and nobody can release — the fleet wedges on the next deploy. Inside a
|
|
31
|
+
* transaction every statement is on one backend, by the pooler's own
|
|
32
|
+
* rule, so the lock and the work it guards cannot come apart. The lock
|
|
33
|
+
* also dies with a crashed migrator's transaction, so nothing has to be
|
|
34
|
+
* released by hand.
|
|
23
35
|
* 2. **Checksums, compared every boot.** A migration file that changed after
|
|
24
36
|
* it was applied is the single most expensive thing to discover late: every
|
|
25
37
|
* environment is now a different schema wearing the same version number.
|
|
@@ -74,7 +86,7 @@ export class MigrationError extends Error {
|
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
88
|
export async function migrate(sql, log = console.log) {
|
|
77
|
-
// The ledger itself, first and outside
|
|
89
|
+
// The ledger itself, first and outside any lock: it is `IF NOT EXISTS`, it is
|
|
78
90
|
// the only DDL that can safely race, and every later step reads it.
|
|
79
91
|
await sql `
|
|
80
92
|
CREATE TABLE IF NOT EXISTS _migrations (
|
|
@@ -84,95 +96,146 @@ export async function migrate(sql, log = console.log) {
|
|
|
84
96
|
duration_ms integer NOT NULL
|
|
85
97
|
)
|
|
86
98
|
`;
|
|
87
|
-
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
const all = files();
|
|
100
|
+
// Rule 2, and it runs over EVERY file before any of them is applied. A
|
|
101
|
+
// half-migrated database whose next file is the corrupt one is worse than
|
|
102
|
+
// one that refused at the door.
|
|
103
|
+
/*
|
|
104
|
+
* WHEN 0001 STOPS BEING REGENERABLE, and why it still is today.
|
|
105
|
+
*
|
|
106
|
+
* 0001_init.sql is GENERATED from 05 §3 (gen-migration.mjs), so §3 is the
|
|
107
|
+
* single description of the schema and the file is its rendering. That
|
|
108
|
+
* works right up to the moment a second person has applied it, and then it
|
|
109
|
+
* cannot: an applied migration is history, and history that regenerates is
|
|
110
|
+
* a checksum mismatch on somebody else's database.
|
|
111
|
+
*
|
|
112
|
+
* The switch point is M2-35, where schemaVersion freezes for publish
|
|
113
|
+
* (spine §0.2). Before it there is exactly one real install -- the studio's
|
|
114
|
+
* own dogfood -- and correcting §3 plus bringing that one database along by
|
|
115
|
+
* hand is both cheaper and more honest than a numbered ALTER for a schema
|
|
116
|
+
* nobody else has. After it, §3 describes the CURRENT schema, 0001 is
|
|
117
|
+
* frozen at what publish shipped, and every change is a new numbered file.
|
|
118
|
+
* The generator's check has to change shape with it: from "0001 renders §3"
|
|
119
|
+
* to "0001 plus every later file EQUALS §3", which needs a scratch database
|
|
120
|
+
* to answer and is therefore a gate rather than a pure function.
|
|
121
|
+
*
|
|
122
|
+
* The rule below does not soften either way. It is what makes that switch
|
|
123
|
+
* point real rather than aspirational.
|
|
124
|
+
*/
|
|
125
|
+
const pending = reconcile(all, await ledger(sql));
|
|
126
|
+
if (!pending.length) {
|
|
127
|
+
log(`migrate: up to date (${all.length} applied)`);
|
|
128
|
+
return { applied: [], alreadyApplied: all.length };
|
|
97
129
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* single description of the schema and the file is its rendering. That
|
|
109
|
-
* works right up to the moment a second person has applied it, and then it
|
|
110
|
-
* cannot: an applied migration is history, and history that regenerates is
|
|
111
|
-
* a checksum mismatch on somebody else's database.
|
|
112
|
-
*
|
|
113
|
-
* The switch point is M2-35, where schemaVersion freezes for publish
|
|
114
|
-
* (spine §0.2). Before it there is exactly one real install -- the studio's
|
|
115
|
-
* own dogfood -- and correcting §3 plus bringing that one database along by
|
|
116
|
-
* hand is both cheaper and more honest than a numbered ALTER for a schema
|
|
117
|
-
* nobody else has. After it, §3 describes the CURRENT schema, 0001 is
|
|
118
|
-
* frozen at what publish shipped, and every change is a new numbered file.
|
|
119
|
-
* The generator's check has to change shape with it: from "0001 renders §3"
|
|
120
|
-
* to "0001 plus every later file EQUALS §3", which needs a scratch database
|
|
121
|
-
* to answer and is therefore a gate rather than a pure function.
|
|
130
|
+
const applied = [];
|
|
131
|
+
for (const f of pending) {
|
|
132
|
+
const started = Date.now();
|
|
133
|
+
/**
|
|
134
|
+
* Rule 1, per file: the lock is TRANSACTION-scoped and the ledger is read
|
|
135
|
+
* again under it. Another instance may have applied this file between
|
|
136
|
+
* the reconcile above and here — the loser of that race finds the row,
|
|
137
|
+
* checks the checksum still agrees, and moves on. Two instances booting
|
|
138
|
+
* at once therefore apply each file exactly once between them, and
|
|
139
|
+
* neither needs to know the other exists.
|
|
122
140
|
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
141
|
+
* Order matters inside: the advisory lock BEFORE `SET LOCAL lock_timeout`,
|
|
142
|
+
* because lock_timeout applies to advisory locks too, and waiting for the
|
|
143
|
+
* other instance to finish a migration is exactly the wait rule 4 must
|
|
144
|
+
* not cut short.
|
|
125
145
|
*/
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
if (
|
|
129
|
-
|
|
146
|
+
const run = async (tx) => {
|
|
147
|
+
const [got] = await tx `SELECT pg_try_advisory_xact_lock(${MIGRATION_LOCK_ID}) AS ok`;
|
|
148
|
+
if (!got?.ok) {
|
|
149
|
+
log("migrate: another instance holds the lock — waiting");
|
|
150
|
+
await tx `SELECT pg_advisory_xact_lock(${MIGRATION_LOCK_ID})`;
|
|
130
151
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
152
|
+
// Rule 4, per file and inside the transaction so it reverts with it.
|
|
153
|
+
await tx `SET LOCAL lock_timeout = '3s'`;
|
|
154
|
+
const [seen] = await tx `SELECT checksum FROM _migrations WHERE name = ${f.name}`;
|
|
155
|
+
if (seen) {
|
|
156
|
+
changed(f, seen.checksum);
|
|
157
|
+
return false;
|
|
135
158
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if (!pending.length) {
|
|
146
|
-
log(`migrate: up to date (${files().length} applied)`);
|
|
147
|
-
return { applied: [], alreadyApplied: files().length };
|
|
148
|
-
}
|
|
149
|
-
const applied = [];
|
|
150
|
-
for (const f of pending) {
|
|
151
|
-
const started = Date.now();
|
|
159
|
+
await tx.unsafe(f.sql);
|
|
160
|
+
await tx `
|
|
161
|
+
INSERT INTO _migrations (name, checksum, duration_ms)
|
|
162
|
+
VALUES (${f.name}, ${f.checksum}, ${Date.now() - started})
|
|
163
|
+
`;
|
|
164
|
+
return true;
|
|
165
|
+
};
|
|
166
|
+
let did;
|
|
167
|
+
if (f.txn) {
|
|
152
168
|
log(`migrate: applying ${f.name}…`);
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
169
|
+
did = (await sql.begin(run));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
/**
|
|
173
|
+
* Rule 3's exception. A `.no-txn.sql` file holds the one statement
|
|
174
|
+
* Postgres refuses inside a transaction block, so there is no
|
|
175
|
+
* transaction to carry a lock either: it runs on the bare connection,
|
|
176
|
+
* after its own look at the ledger, and the ledger write tolerates a
|
|
177
|
+
* twin. The file is held to being idempotent (`IF NOT EXISTS`) for
|
|
178
|
+
* exactly this reason — two instances may both run it, and the
|
|
179
|
+
* statement, not the runner, is what makes that harmless.
|
|
180
|
+
*/
|
|
181
|
+
const [seen] = await sql `SELECT checksum FROM _migrations WHERE name = ${f.name}`;
|
|
182
|
+
if (seen) {
|
|
183
|
+
changed(f, seen.checksum);
|
|
184
|
+
did = false;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
log(`migrate: applying ${f.name} (outside a transaction)…`);
|
|
188
|
+
await sql.unsafe(f.sql);
|
|
189
|
+
const won = await sql `
|
|
158
190
|
INSERT INTO _migrations (name, checksum, duration_ms)
|
|
159
191
|
VALUES (${f.name}, ${f.checksum}, ${Date.now() - started})
|
|
192
|
+
ON CONFLICT (name) DO NOTHING
|
|
193
|
+
RETURNING name
|
|
160
194
|
`;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
await sql.begin(run);
|
|
166
|
-
else
|
|
167
|
-
await run(sql);
|
|
195
|
+
did = won.length > 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (did) {
|
|
168
199
|
log(`migrate: applied ${f.name} in ${Date.now() - started} ms`);
|
|
169
200
|
applied.push(f.name);
|
|
170
201
|
}
|
|
171
|
-
|
|
202
|
+
else {
|
|
203
|
+
log(`migrate: ${f.name} was applied by another instance meanwhile`);
|
|
204
|
+
}
|
|
172
205
|
}
|
|
173
|
-
|
|
174
|
-
|
|
206
|
+
return { applied, alreadyApplied: all.length - applied.length };
|
|
207
|
+
}
|
|
208
|
+
async function ledger(sql) {
|
|
209
|
+
return new Map((await sql `SELECT name, checksum FROM _migrations`).map((r) => [r.name, r.checksum]));
|
|
210
|
+
}
|
|
211
|
+
/** Rule 2's refusal, in one place: an applied file whose bytes moved. */
|
|
212
|
+
function changed(f, recorded) {
|
|
213
|
+
if (recorded === f.checksum)
|
|
214
|
+
return;
|
|
215
|
+
throw new MigrationError(`${f.name} has changed since it was applied (recorded ${recorded.slice(0, 12)}…, ` +
|
|
216
|
+
`file is ${f.checksum.slice(0, 12)}…). An applied migration is history: ` +
|
|
217
|
+
`add a new file instead of editing this one.`, 4);
|
|
218
|
+
}
|
|
219
|
+
/** The files not yet in the ledger, after rule 2 has refused anything that disagrees with it. */
|
|
220
|
+
function reconcile(all, done) {
|
|
221
|
+
const pending = [];
|
|
222
|
+
const left = new Map(done);
|
|
223
|
+
for (const f of all) {
|
|
224
|
+
const seen = left.get(f.name);
|
|
225
|
+
if (seen === undefined)
|
|
226
|
+
pending.push(f);
|
|
227
|
+
else
|
|
228
|
+
changed(f, seen);
|
|
229
|
+
left.delete(f.name);
|
|
230
|
+
}
|
|
231
|
+
// Whatever is left was applied and no longer exists on disk — a rollback to
|
|
232
|
+
// an older build against a newer database. Refused for the same reason:
|
|
233
|
+
// the code is about to assume a schema that is not the one present.
|
|
234
|
+
if (left.size) {
|
|
235
|
+
throw new MigrationError(`the database has migrations this build does not ship: ${[...left.keys()].join(", ")}. ` +
|
|
236
|
+
`This is an older release running against a newer database.`, 4);
|
|
175
237
|
}
|
|
238
|
+
return pending;
|
|
176
239
|
}
|
|
177
240
|
/**
|
|
178
241
|
* `pnpm migrate` / `snagset migrate`. The library above takes a connection so a
|
package/dist/db/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/db/rls.js
CHANGED
|
@@ -30,10 +30,11 @@ export async function rlsStatus(sql) {
|
|
|
30
30
|
warning =
|
|
31
31
|
`row-level security is NOT in force: the role "${role?.name}" has BYPASSRLS, ` +
|
|
32
32
|
`which overrides every policy migration 0001 created. Managed Postgres often ` +
|
|
33
|
-
`grants it to the
|
|
34
|
-
`neondb_owner
|
|
35
|
-
`so this is a lost safety net rather than an open door — to
|
|
36
|
-
`a role without BYPASSRLS, grant it the tables, and point
|
|
33
|
+
`grants it to the role in the connection string it hands you (Supabase's ` +
|
|
34
|
+
`postgres and Neon's neondb_owner both do). Requests are still scoped by org_id ` +
|
|
35
|
+
`in the application, so this is a lost safety net rather than an open door — to ` +
|
|
36
|
+
`get it back, create a role without BYPASSRLS, grant it the tables, and point ` +
|
|
37
|
+
`DATABASE_URL at it.`;
|
|
37
38
|
}
|
|
38
39
|
else if (unprotected.length) {
|
|
39
40
|
warning =
|
package/dist/db/rls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rls.js","sourceRoot":"","sources":["../../src/db/rls.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rls.js","sourceRoot":"","sources":["../../src/db/rls.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAiB;IAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAqC;;;GAG5D,CAAC;IAEF,iEAAiE;IACjE,8EAA8E;IAC9E,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAuD;;;;;;;;;;;;;GAa9E,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3F,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,iDAAiD,IAAI,EAAE,IAAI,mBAAmB;gBAC9E,8EAA8E;gBAC9E,0EAA0E;gBAC1E,iFAAiF;gBACjF,iFAAiF;gBACjF,+EAA+E;gBAC/E,qBAAqB,CAAC;IAC1B,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO;YACL,qCAAqC,WAAW,CAAC,MAAM,yBAAyB;gBAChF,mBAAmB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;IACjF,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO;YACL,2DAA2D,SAAS,CAAC,MAAM,GAAG;gBAC9E,aAAa,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC;gBAC9E,+BAA+B,CAAC;IACpC,CAAC;IAED,OAAO;QACL,SAAS;QACT,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS;QAC7B,eAAe,EAAE,MAAM;QACvB,SAAS;QACT,WAAW;QACX,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/explain.js
CHANGED
|
@@ -46,7 +46,7 @@ export function explain(e) {
|
|
|
46
46
|
case "ECONNREFUSED":
|
|
47
47
|
return (`✗ no Postgres answered${where}.\n` +
|
|
48
48
|
` Start one, or point DATABASE_URL at a database that is running —\n` +
|
|
49
|
-
` a free
|
|
49
|
+
` a free Supabase or Neon project works, so does a local install.`);
|
|
50
50
|
case "ENOTFOUND":
|
|
51
51
|
return `✗ that database host does not resolve${where}.\n Check the hostname in DATABASE_URL.`;
|
|
52
52
|
case "ETIMEDOUT":
|
package/dist/explain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../src/explain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qEAAqE;AACrE,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ;QAC9F,CAAC,CAAE,CAAsB,CAAC,IAAI;QAC9B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,GAAG;QAAE,OAAO,KAAK,GAAG,EAAE,CAAC;IAE3B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,KAAK,GAAG,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;IAED,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,CACL,yBAAyB,KAAK,KAAK;gBACnC,sEAAsE;gBACtE,
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../src/explain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qEAAqE;AACrE,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ;QAC9F,CAAC,CAAE,CAAsB,CAAC,IAAI;QAC9B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,GAAG;QAAE,OAAO,KAAK,GAAG,EAAE,CAAC;IAE3B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,KAAK,GAAG,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;IAED,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,CACL,yBAAyB,KAAK,KAAK;gBACnC,sEAAsE;gBACtE,mEAAmE,CACpE,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,wCAAwC,KAAK,0CAA0C,CAAC;QACjG,KAAK,WAAW;YACd,OAAO,CACL,wCAAwC,KAAK,KAAK;gBAClD,kEAAkE,CACnE,CAAC;QACJ;YACE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,wDAAwD,EAAE,CAAC;IACzF,CAAC;AACH,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { sanitise } from "../vendor/adapters/index.js";
|
|
3
3
|
import { briefMarkdown } from "../vendor/types/brief.js";
|
|
4
4
|
import { ID_PREFIX, param } from "../vendor/types/names.js";
|
|
5
|
+
import { noteQueued } from "../jobs/soon.js";
|
|
5
6
|
import { githubClient, GitHubError, issueTitle } from "./github.js";
|
|
6
7
|
import { linearClient, LinearError, linearStateFor } from "./linear.js";
|
|
7
8
|
import { escapeForJiraWiki, jiraCategoryFor, jiraClient, JiraError } from "./jira.js";
|
|
@@ -17,6 +18,8 @@ export async function queueIntegrationEvent(tx, q) {
|
|
|
17
18
|
${tx.json((q.event ?? {}))})
|
|
18
19
|
ON CONFLICT (provider, dedupe_key) DO NOTHING
|
|
19
20
|
`;
|
|
21
|
+
// D119: the request drains this once its response is ready.
|
|
22
|
+
noteQueued();
|
|
20
23
|
}
|
|
21
24
|
const BACKOFF_MIN = [1, 5, 15, 30, 60];
|
|
22
25
|
/** The thread as the brief wants it, under the org's claim. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../src/integrations/outbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../src/integrations/outbox.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/index.js
CHANGED
|
@@ -68,7 +68,7 @@ export async function runDueJobs(sql, jobs, opts) {
|
|
|
68
68
|
const previous = last.get(job.name);
|
|
69
69
|
// No row at all means never run, which is due. `>=` rather than `>` so a
|
|
70
70
|
// job with everyMs 0 — "every tick" — actually runs every tick.
|
|
71
|
-
if (previous && now.getTime() - previous.getTime() < job.everyMs) {
|
|
71
|
+
if (!opts.force && previous && now.getTime() - previous.getTime() < job.everyMs) {
|
|
72
72
|
skipped.push({ name: job.name, why: "not-due" });
|
|
73
73
|
continue;
|
|
74
74
|
}
|
|
@@ -79,7 +79,7 @@ export async function runDueJobs(sql, jobs, opts) {
|
|
|
79
79
|
let lockedOut = false;
|
|
80
80
|
try {
|
|
81
81
|
for (;;) {
|
|
82
|
-
const outcome = await runOnce(sql, job, clock(), log);
|
|
82
|
+
const outcome = await runOnce(sql, job, clock(), log, opts.waitForLockMs);
|
|
83
83
|
if (outcome === "locked") {
|
|
84
84
|
lockedOut = true;
|
|
85
85
|
break;
|
|
@@ -128,17 +128,38 @@ export async function runDueJobs(sql, jobs, opts) {
|
|
|
128
128
|
* role does not bypass RLS. `LOCAL` is the half that makes it an exemption
|
|
129
129
|
* rather than a hole: it cannot outlive this transaction, so nothing that runs
|
|
130
130
|
* after it inherits cross-tenant reach.
|
|
131
|
+
*
|
|
132
|
+
* With `waitMs` the lock is WAITED for, up to that long (D119), under a
|
|
133
|
+
* `lock_timeout` set with `set_config(…, true)` — the `SET LOCAL` that takes a
|
|
134
|
+
* parameter — and put back to the default once the lock is held, so the job's
|
|
135
|
+
* own statements wait on rows exactly as they always did. Running out of time
|
|
136
|
+
* is `lock_not_available` (55P03), which aborts the transaction; it is caught
|
|
137
|
+
* outside and reported as "locked", the answer the try-lock would have given.
|
|
131
138
|
*/
|
|
132
|
-
async function runOnce(sql, job, now, log) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
139
|
+
async function runOnce(sql, job, now, log, waitMs) {
|
|
140
|
+
try {
|
|
141
|
+
return (await sql.begin(async (tx) => {
|
|
142
|
+
if (waitMs) {
|
|
143
|
+
await tx `SELECT set_config('lock_timeout', ${`${Math.max(1, Math.round(waitMs))}ms`}, true)`;
|
|
144
|
+
await tx `SELECT pg_advisory_xact_lock(${JOB_LOCK_NAMESPACE}, ${jobLockKey(job.name)})`;
|
|
145
|
+
await tx `SET LOCAL lock_timeout TO DEFAULT`;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const [lock] = await tx `
|
|
149
|
+
SELECT pg_try_advisory_xact_lock(${JOB_LOCK_NAMESPACE}, ${jobLockKey(job.name)}) AS ok
|
|
150
|
+
`;
|
|
151
|
+
if (!lock?.ok)
|
|
152
|
+
return "locked";
|
|
153
|
+
}
|
|
154
|
+
await tx `SET LOCAL app.maintenance = 'on'`;
|
|
155
|
+
return job.run({ sql: tx, now, log });
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
if (waitMs && e.code === "55P03")
|
|
138
160
|
return "locked";
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
});
|
|
161
|
+
throw e;
|
|
162
|
+
}
|
|
142
163
|
}
|
|
143
164
|
/** Bookkeeping, in its own transaction so a rolled-back job still records the
|
|
144
165
|
* attempt. Every job is idempotent, so the worst case if this write is lost
|
package/dist/jobs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/set.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { addressSource } from "../instance/address.js";
|
|
2
|
+
import { resolveMailer } from "../mail/resolve.js";
|
|
3
|
+
import { deliverEmail } from "../mail/notify.js";
|
|
4
|
+
import { pushToTrackers } from "../integrations/outbox.js";
|
|
5
|
+
import { getBucket } from "../storage/settings.js";
|
|
6
|
+
import { l1Jobs } from "./reaper.js";
|
|
7
|
+
export function jobSet(d) {
|
|
8
|
+
// D106: the address as it is when each job runs, not when this was built.
|
|
9
|
+
const address = addressSource(d.sql, d.keys, d.cfg);
|
|
10
|
+
const githubApiBase = d.githubApiBase ?? d.cfg.get("SNAGSET_GITHUB_API_BASE");
|
|
11
|
+
const linearApiBase = d.linearApiBase ?? d.cfg.get("SNAGSET_LINEAR_API_BASE");
|
|
12
|
+
const slackApiBase = d.slackApiBase ?? d.cfg.get("SNAGSET_SLACK_API_BASE");
|
|
13
|
+
const push = {
|
|
14
|
+
keys: d.keys,
|
|
15
|
+
baseUrl: address,
|
|
16
|
+
...(githubApiBase ? { githubApiBase } : {}),
|
|
17
|
+
...(linearApiBase ? { linearApiBase } : {}),
|
|
18
|
+
...(slackApiBase ? { slackApiBase } : {}),
|
|
19
|
+
};
|
|
20
|
+
const outbox = async () => [
|
|
21
|
+
// D89: the environment first, then the transport connected on Studio › General.
|
|
22
|
+
deliverEmail((await resolveMailer(d.sql, d.keys, d.cfg)).status, address, d.keys),
|
|
23
|
+
pushToTrackers(d.sql, push),
|
|
24
|
+
];
|
|
25
|
+
return {
|
|
26
|
+
outbox,
|
|
27
|
+
async all() {
|
|
28
|
+
const bucket = await getBucket(d.sql, d.keys).catch(() => null);
|
|
29
|
+
// The reaper first, as `l1Jobs` orders it: cheapest and most visible
|
|
30
|
+
// first, so a budget that runs out costs the least.
|
|
31
|
+
return [...l1Jobs(bucket), ...(await outbox())];
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/jobs/set.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAiB,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmCrC,MAAM,UAAU,MAAM,CAAC,CAAa;IAClC,0EAA0E;IAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAa;QACrB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,OAAO;QAChB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAoB,EAAE,CAAC;QACzC,gFAAgF;QAChF,YAAY,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC;QACjF,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC;KAC5B,CAAC;IAEF,OAAO;QACL,MAAM;QACN,KAAK,CAAC,GAAG;YACP,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAChE,qEAAqE;YACrE,oDAAoD;YACpD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC"}
|