pipework 0.57.0 → 0.57.2
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 +9 -0
- package/REFERENCE.md +10 -0
- package/dist/audit/chain/retire.d.ts.map +1 -1
- package/dist/audit/chain/retire.js +4 -0
- package/dist/audit/chain/retire.js.map +1 -1
- package/dist/audit/chain/verify.d.ts.map +1 -1
- package/dist/audit/chain/verify.js +7 -0
- package/dist/audit/chain/verify.js.map +1 -1
- package/dist/auth/tenant/rls.d.ts +11 -0
- package/dist/auth/tenant/rls.d.ts.map +1 -1
- package/dist/auth/tenant/rls.js +1 -1
- package/dist/auth/tenant/rls.js.map +1 -1
- package/dist/data/db/maintenance.d.ts +10 -0
- package/dist/data/db/maintenance.d.ts.map +1 -0
- package/dist/data/db/maintenance.js +24 -0
- package/dist/data/db/maintenance.js.map +1 -0
- package/dist/data/migrate/framework-rls.d.ts +10 -0
- package/dist/data/migrate/framework-rls.d.ts.map +1 -0
- package/dist/data/migrate/framework-rls.js +40 -0
- package/dist/data/migrate/framework-rls.js.map +1 -0
- package/dist/data/migrate/provision-framework.d.ts +5 -1
- package/dist/data/migrate/provision-framework.d.ts.map +1 -1
- package/dist/data/migrate/provision-framework.js +6 -1
- package/dist/data/migrate/provision-framework.js.map +1 -1
- package/dist/data/migrate/run.js +1 -1
- package/dist/data/migrate/run.js.map +1 -1
- package/dist/test/setup.d.ts.map +1 -1
- package/dist/test/setup.js +1 -1
- package/dist/test/setup.js.map +1 -1
- package/dist/trace/entry/close-trace.d.ts.map +1 -1
- package/dist/trace/entry/close-trace.js +8 -4
- package/dist/trace/entry/close-trace.js.map +1 -1
- package/dist/trace/entry/open-trace.d.ts.map +1 -1
- package/dist/trace/entry/open-trace.js +1 -0
- package/dist/trace/entry/open-trace.js.map +1 -1
- package/dist/trace/partition/sync.d.ts.map +1 -1
- package/dist/trace/partition/sync.js +31 -2
- package/dist/trace/partition/sync.js.map +1 -1
- package/dist/trace/partition/tables.d.ts +6 -0
- package/dist/trace/partition/tables.d.ts.map +1 -1
- package/dist/trace/partition/tables.js +9 -0
- package/dist/trace/partition/tables.js.map +1 -1
- package/dist/trace/retain/copy-on-error.d.ts.map +1 -1
- package/dist/trace/retain/copy-on-error.js +4 -2
- package/dist/trace/retain/copy-on-error.js.map +1 -1
- package/dist/trace/runtime/expire-stale-traces.d.ts.map +1 -1
- package/dist/trace/runtime/expire-stale-traces.js +4 -2
- package/dist/trace/runtime/expire-stale-traces.js.map +1 -1
- package/dist/trace/runtime/step-buffer.d.ts +4 -0
- package/dist/trace/runtime/step-buffer.d.ts.map +1 -1
- package/dist/trace/runtime/step-buffer.js +4 -0
- package/dist/trace/runtime/step-buffer.js.map +1 -1
- package/dist/trace/runtime/truncate-trace.d.ts.map +1 -1
- package/dist/trace/runtime/truncate-trace.js +8 -4
- package/dist/trace/runtime/truncate-trace.js.map +1 -1
- package/dist/trace/schema/trace-step-fields.d.ts +5 -0
- package/dist/trace/schema/trace-step-fields.d.ts.map +1 -1
- package/dist/trace/schema/trace-step-fields.js +2 -0
- package/dist/trace/schema/trace-step-fields.js.map +1 -1
- package/dist/trace/schema/trace-step-retained.d.ts +5 -0
- package/dist/trace/schema/trace-step-retained.d.ts.map +1 -1
- package/dist/trace/schema/trace-step.d.ts +5 -0
- package/dist/trace/schema/trace-step.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -28,6 +28,7 @@ import { eq, and, getTableColumns } from '../../data/query/index.js';
|
|
|
28
28
|
import { trace } from '../schema/trace.js';
|
|
29
29
|
import { flushSteps } from '../runtime/flush-steps.js';
|
|
30
30
|
import { copyTraceOnError } from '../retain/copy-on-error.js';
|
|
31
|
+
import { withMaintenance } from '../../data/db/maintenance.js';
|
|
31
32
|
/** Closes `ctx`'s trace row with `outcome` and flushes its step buffer. No-op when the entry ran untraced. */
|
|
32
33
|
export function closeTrace(instance, ctx, outcome) {
|
|
33
34
|
if (ctx === null)
|
|
@@ -45,10 +46,13 @@ export function closeTrace(instance, ctx, outcome) {
|
|
|
45
46
|
// The composite primary key is `[id, openedDay]` — both are matched so the
|
|
46
47
|
// UPDATE targets exactly one partition's one row.
|
|
47
48
|
const cols = getTableColumns(table);
|
|
48
|
-
//
|
|
49
|
-
await db
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
// The pooled connection carries no tenant setting, so the UPDATE runs as a maintenance pass.
|
|
50
|
+
await withMaintenance(db, async (tx) => {
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle's update needs the concrete runtime table type
|
|
52
|
+
await tx.update(table)
|
|
53
|
+
.set({ status, closedAt })
|
|
54
|
+
.where(and(eq(cols.id, ctx.id), eq(cols.openedDay, ctx.openedDay)));
|
|
55
|
+
});
|
|
52
56
|
// Copy errored / truncated traces to the cold set before their hot
|
|
53
57
|
// partition retires (Q4). For a truncated trace, `truncationDone` is the
|
|
54
58
|
// settle handle from `truncateTrace`; awaiting it ensures the cold row
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-trace.js","sourceRoot":"","sources":["../../../src/trace/entry/close-trace.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,mEAAmE;AACnE,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,oDAAoD;AACpD,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,WAAW;AAGX,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"close-trace.js","sourceRoot":"","sources":["../../../src/trace/entry/close-trace.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,mEAAmE;AACnE,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,oDAAoD;AACpD,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,WAAW;AAGX,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAO9D,8GAA8G;AAC9G,MAAM,UAAU,UAAU,CACxB,QAAkB,EAClB,GAAwB,EACxB,OAAqB;IAErB,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;IAC3B,OAAO,GAAG,CAAC,SAAS;SACjB,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAqC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;QAC7F,sEAAsE;QACtE,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAA;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAuC,CAAA;QACzE,6FAA6F;QAC7F,MAAM,eAAe,CAAC,EAAmB,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;YACpD,wHAAwH;YACxH,MAAO,EAAU,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC5B,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;iBACzB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACvE,CAAC,CAAC,CAAA;QACF,mEAAmE;QACnE,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,CAAA;YAC/B,MAAM,gBAAgB,CAAC,EAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACrD,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EACxB,6DAA6D,CAC9D,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-trace.d.ts","sourceRoot":"","sources":["../../../src/trace/entry/open-trace.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKtD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAItE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"open-trace.d.ts","sourceRoot":"","sources":["../../../src/trace/entry/open-trace.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKtD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAItE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CA+C/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-trace.js","sourceRoot":"","sources":["../../../src/trace/entry/open-trace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"open-trace.js","sourceRoot":"","sources":["../../../src/trace/entry/open-trace.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAE/E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAGtD,MAAM,UAAU,GAAG,UAAU,CAAA;AA2B7B,wFAAwF;AACxF,MAAM,UAAU,SAAS,CAAC,MAAuB;IAC/C,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAA;IAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CACxB,QAAQ,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAChF,CAAA;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;QAChD,EAAE;QACF,SAAS;QACT,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI;QACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,QAAQ;QACR,QAAQ,EAAE,IAAI;QACd,SAAS;QACT,cAAc,EAAE,IAAI;KACrB,CAAC,CAAA;IAEF,8EAA8E;IAC9E,mEAAmE;IACnE,oEAAoE;IACpE,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAA;IAChD,MAAM,GAAG,GAAG,WAAW,CAAC,aAAa,KAAK,SAAS;QACjD,CAAC,CAAC,WAAW,CAAC,aAAa,GAAG,WAAW,CAAC,YAAY;QACtD,CAAC,CAAC,QAAQ,CAAA;IACZ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;QAC5B,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,GAAG;QACH,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;KAC/C,CAAC,CAAA;IAEF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AACrD,CAAC;AAoBD,SAAS,cAAc,CAAC,QAAkB,EAAE,GAAa;IACvD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAA;IACxE,wHAAwH;IACxH,OAAQ,EAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACjD,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EACxB,yDAAyD,CAC1D,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED,4FAA4F;AAC5F,SAAS,aAAa,CAAC,IAAa;IAClC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QAClE,MAAM,MAAM,GAAI,IAA4B,CAAC,MAAM,CAAA;QACnD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAA;IAC/C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/trace/partition/sync.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAIhD,OAAO,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/trace/partition/sync.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAIhD,OAAO,EAAqC,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAMxF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,oBAAoB,EAC5B,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,oBAAoB,CAAC,CA6E/B"}
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
import { sql } from '../../data/db/sql.js';
|
|
7
7
|
import { quoteIdentifier } from '../../data/db/identifiers.js';
|
|
8
8
|
import { getBaseLogger } from '../../core/logging/index.js';
|
|
9
|
-
import { PARTITIONED_TRACE_TABLES } from './tables.js';
|
|
9
|
+
import { PARTITIONED_TRACE_TABLES, STEP_TABLE_PARENTS } from './tables.js';
|
|
10
10
|
import { planPartitions } from './plan.js';
|
|
11
11
|
import { addDays } from './day.js';
|
|
12
12
|
import { auditRecord } from '../../audit/schema/audit-record.js';
|
|
13
|
+
import { withMaintenance } from '../../data/db/maintenance.js';
|
|
13
14
|
import { retireAuditPartition, auditChainInstalled } from '../../audit/chain/retire.js';
|
|
14
15
|
/**
|
|
15
16
|
* Reconcile the trace tables' day partitions with the retention policy.
|
|
@@ -35,17 +36,45 @@ export async function syncTracePartitions(db, config, now = new Date()) {
|
|
|
35
36
|
`FOR VALUES FROM ('${partition.day}') TO ('${upper}')`));
|
|
36
37
|
}
|
|
37
38
|
const chained = plan.drop.some(p => p.parent === auditRecord.$name) && await auditChainInstalled(db);
|
|
39
|
+
const traceParents = new Set(STEP_TABLE_PARENTS.values());
|
|
40
|
+
const stepDrops = new Map();
|
|
41
|
+
for (const partition of plan.drop) {
|
|
42
|
+
if (STEP_TABLE_PARENTS.has(partition.parent))
|
|
43
|
+
stepDrops.set(`${partition.parent}:${partition.day}`, partition);
|
|
44
|
+
}
|
|
38
45
|
for (const partition of plan.drop) {
|
|
39
46
|
const child = quoteIdentifier(partition.name, 'trace partition');
|
|
40
47
|
if (chained && partition.parent === auditRecord.$name) {
|
|
41
48
|
// Keep the dropped rows' hashes so what remains still links back to them.
|
|
49
|
+
// It reads every tenant's rows, so it runs as a maintenance pass.
|
|
50
|
+
await withMaintenance(db, tx => retireAuditPartition(tx, child));
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (STEP_TABLE_PARENTS.has(partition.parent))
|
|
54
|
+
continue; // dropped with its trace partition's day
|
|
55
|
+
if (traceParents.has(partition.parent)) {
|
|
56
|
+
// The step table's foreign key points at this partition: drop the day's
|
|
57
|
+
// step partition first, then detach the trace partition (Postgres will
|
|
58
|
+
// not drop a referenced partition while attached), all or nothing.
|
|
59
|
+
const stepParent = [...STEP_TABLE_PARENTS].find(([, traceParent]) => traceParent === partition.parent)[0];
|
|
60
|
+
const step = stepDrops.get(`${stepParent}:${partition.day}`);
|
|
61
|
+
const parent = quoteIdentifier(partition.parent, 'trace table');
|
|
42
62
|
await db.transaction(async (tx) => {
|
|
43
|
-
|
|
63
|
+
if (step !== undefined) {
|
|
64
|
+
await tx.execute(sql.raw(`DROP TABLE IF EXISTS ${quoteIdentifier(step.name, 'trace partition')}`));
|
|
65
|
+
stepDrops.delete(`${stepParent}:${partition.day}`);
|
|
66
|
+
}
|
|
67
|
+
await tx.execute(sql.raw(`ALTER TABLE ${parent} DETACH PARTITION ${child}`));
|
|
68
|
+
await tx.execute(sql.raw(`DROP TABLE IF EXISTS ${child}`));
|
|
44
69
|
});
|
|
45
70
|
continue;
|
|
46
71
|
}
|
|
47
72
|
await db.execute(sql.raw(`DROP TABLE IF EXISTS ${child}`));
|
|
48
73
|
}
|
|
74
|
+
// A step partition left over has no trace partition planned for its day.
|
|
75
|
+
for (const step of stepDrops.values()) {
|
|
76
|
+
await db.execute(sql.raw(`DROP TABLE IF EXISTS ${quoteIdentifier(step.name, 'trace partition')}`));
|
|
77
|
+
}
|
|
49
78
|
const summary = {
|
|
50
79
|
created: toCreate.map(p => p.name),
|
|
51
80
|
dropped: plan.drop.map(p => p.name),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/trace/partition/sync.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,iDAAiD;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/trace/partition/sync.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,iDAAiD;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAgD,MAAM,WAAW,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAOvF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAM,EACN,MAA4B,EAC5B,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEtD,oEAAoE;IACpE,4EAA4E;IAC5E,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAEvF,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QAChE,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC/D,6EAA6E;QAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACvC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CACtB,8BAA8B,KAAK,iBAAiB,MAAM,GAAG;YAC7D,qBAAqB,SAAS,CAAC,GAAG,WAAW,KAAK,IAAI,CACvD,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAEpG,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAA;IACjD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAA;IAChH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QAChE,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;YACtD,0EAA0E;YAC1E,kEAAkE;YAClE,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;YAChE,SAAQ;QACV,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,SAAQ,CAAC,yCAAyC;QAChG,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,wEAAwE;YACxE,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,UAAU,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,KAAK,SAAS,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAA;YAC1G,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;YAC5D,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YAC/D,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;gBAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;oBAClG,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;gBACpD,CAAC;gBACD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,MAAM,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC5E,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAA;YAC5D,CAAC,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,yEAAyE;IACzE,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;IAED,MAAM,OAAO,GAAyB;QACpC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACpC,CAAA;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,aAAa,EAAE,CAAC,IAAI,CAClB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EACtD,qCAAqC,CACtC,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAAC,EAAM;IACvC,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;0CAEO,UAAU;GACjD,CAAC,CAAA;IACF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAW,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,EAAM;IAC1C,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;;;;0BAKT,UAAU;GACjC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAW,CAAA;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAW,CAAA;QACpC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -12,4 +12,10 @@ export declare const PARTITIONED_TRACE_TABLES: readonly PartitionedTraceTable[];
|
|
|
12
12
|
* provisions them — parent plus day partitions — itself. Issue #313.
|
|
13
13
|
*/
|
|
14
14
|
export declare const PARTITIONED_TRACE_TABLE_NAMES: ReadonlySet<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Each step table with the trace table its foreign key points at. A day's step
|
|
17
|
+
* partition must go before the trace partition it references, so retention
|
|
18
|
+
* drops the two together.
|
|
19
|
+
*/
|
|
20
|
+
export declare const STEP_TABLE_PARENTS: ReadonlyMap<string, string>;
|
|
15
21
|
//# sourceMappingURL=tables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/trace/partition/tables.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAMpE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAE7D,CAAA"}
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/trace/partition/tables.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAMpE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAE7D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAGzD,CAAA"}
|
|
@@ -28,4 +28,13 @@ export const PARTITIONED_TRACE_TABLES = [
|
|
|
28
28
|
* provisions them — parent plus day partitions — itself. Issue #313.
|
|
29
29
|
*/
|
|
30
30
|
export const PARTITIONED_TRACE_TABLE_NAMES = new Set(PARTITIONED_TRACE_TABLES.map(t => t.parent));
|
|
31
|
+
/**
|
|
32
|
+
* Each step table with the trace table its foreign key points at. A day's step
|
|
33
|
+
* partition must go before the trace partition it references, so retention
|
|
34
|
+
* drops the two together.
|
|
35
|
+
*/
|
|
36
|
+
export const STEP_TABLE_PARENTS = new Map([
|
|
37
|
+
[traceStep.$name, trace.$name],
|
|
38
|
+
[traceStepRetained.$name, traceRetained.$name],
|
|
39
|
+
]);
|
|
31
40
|
//# sourceMappingURL=tables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/trace/partition/tables.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,iFAAiF;AACjF,iDAAiD;AACjD,gFAAgF;AAChF,6DAA6D;AAC7D,EAAE;AACF,+EAA+E;AAC/E,2DAA2D;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAUhE,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;IACzC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;IAC7C,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;IAClD,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;IACtD,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;CAClD,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CACvE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5C,CAAA"}
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/trace/partition/tables.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,iFAAiF;AACjF,iDAAiD;AACjD,gFAAgF;AAChF,6DAA6D;AAC7D,EAAE;AACF,+EAA+E;AAC/E,2DAA2D;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAUhE,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;IACzC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;IAC7C,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;IAClD,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;IACtD,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;CAClD,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CACvE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5C,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgC,IAAI,GAAG,CAAC;IACrE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAC9B,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;CAC/C,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-on-error.d.ts","sourceRoot":"","sources":["../../../src/trace/retain/copy-on-error.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"copy-on-error.d.ts","sourceRoot":"","sources":["../../../src/trace/retain/copy-on-error.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAOhD,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAUD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4B1F"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
// ancestor was already retained by an earlier error, is a no-op.
|
|
15
15
|
import { sql } from '../../data/db/sql.js';
|
|
16
16
|
import { quoteIdentifier } from '../../data/db/identifiers.js';
|
|
17
|
+
import { withMaintenance } from '../../data/db/maintenance.js';
|
|
17
18
|
import { camelToSnake } from '../../data/domain/naming.js';
|
|
18
19
|
import { traceFields } from '../schema/trace-fields.js';
|
|
19
20
|
import { traceStepFields } from '../schema/trace-step-fields.js';
|
|
@@ -33,7 +34,8 @@ const TRACE_STEP_COLUMNS_FROM_STEP = columnList(Object.keys(traceStepFields), 't
|
|
|
33
34
|
* retained, or when `traceId` does not exist.
|
|
34
35
|
*/
|
|
35
36
|
export async function copyTraceOnError(db, traceId) {
|
|
36
|
-
|
|
37
|
+
// Reads the whole parent spine, which may cross tenants, so the copy is a maintenance pass.
|
|
38
|
+
const rows = await withMaintenance(db, tx => tx.execute(sql `
|
|
37
39
|
WITH RECURSIVE spine AS (
|
|
38
40
|
SELECT * FROM "trace" WHERE "id" = ${traceId}
|
|
39
41
|
UNION
|
|
@@ -55,7 +57,7 @@ export async function copyTraceOnError(db, traceId) {
|
|
|
55
57
|
SELECT
|
|
56
58
|
(SELECT count(*) FROM copied_traces)::int AS traces,
|
|
57
59
|
(SELECT count(*) FROM copied_steps)::int AS steps
|
|
58
|
-
`);
|
|
60
|
+
`));
|
|
59
61
|
const row = rows[0];
|
|
60
62
|
return { traces: row['traces'], steps: row['steps'] };
|
|
61
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-on-error.js","sourceRoot":"","sources":["../../../src/trace/retain/copy-on-error.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,UAAU;AACV,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,6DAA6D;AAC7D,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,iEAAiE;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAShE,SAAS,UAAU,CAAC,IAAc,EAAE,KAAa,EAAE,MAAM,GAAG,EAAE;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxF,CAAC;AAED,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,CAAA;AAC1E,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC,CAAA;AACxF,MAAM,4BAA4B,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;AAExG;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAM,EAAE,OAAe;IAC5D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;
|
|
1
|
+
{"version":3,"file":"copy-on-error.js","sourceRoot":"","sources":["../../../src/trace/retain/copy-on-error.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,UAAU;AACV,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,6DAA6D;AAC7D,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,iEAAiE;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAShE,SAAS,UAAU,CAAC,IAAc,EAAE,KAAa,EAAE,MAAM,GAAG,EAAE;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxF,CAAC;AAED,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,CAAA;AAC1E,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC,CAAA;AACxF,MAAM,4BAA4B,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;AAExG;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAM,EAAE,OAAe;IAC5D,4FAA4F;IAC5F,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;2CAElB,OAAO;;;;;sCAKZ,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;eAC7C,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;;;;;2CAKM,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;eACvD,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC;;;;;;;;GAQjD,CAAC,CAAC,CAAA;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAW,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAW,EAAE,CAAA;AAC3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expire-stale-traces.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/expire-stale-traces.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"expire-stale-traces.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/expire-stale-traces.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAKhD,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,2FAA2F;AAC3F,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAwBlC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
// clock — production calls pass nothing and use `NOW()`.
|
|
12
12
|
import { sql } from '../../data/db/sql.js';
|
|
13
13
|
import { getBaseLogger } from '../../core/logging/index.js';
|
|
14
|
+
import { withMaintenance } from '../../data/db/maintenance.js';
|
|
14
15
|
import { copyTraceOnError } from '../retain/copy-on-error.js';
|
|
15
16
|
/** Force-closes every trace whose `expires_at` has passed; copies each to the cold set. */
|
|
16
17
|
export async function expireStaleTraces(db, now = new Date()) {
|
|
@@ -19,12 +20,13 @@ export async function expireStaleTraces(db, now = new Date()) {
|
|
|
19
20
|
// ISO string keeps the production signature on `Date` without losing
|
|
20
21
|
// precision (compared as a literal, Postgres parses it back to `timestamptz`).
|
|
21
22
|
const nowIso = now.toISOString();
|
|
22
|
-
|
|
23
|
+
// Every tenant's traces, so the sweep is a maintenance pass.
|
|
24
|
+
const rows = await withMaintenance(db, tx => tx.execute(sql `
|
|
23
25
|
UPDATE "trace"
|
|
24
26
|
SET "status" = 'expired', "closed_at" = ${nowIso}
|
|
25
27
|
WHERE "status" = 'open' AND "expires_at" <= ${nowIso}
|
|
26
28
|
RETURNING "id"
|
|
27
|
-
`);
|
|
29
|
+
`));
|
|
28
30
|
const ids = rows.map(r => r['id']);
|
|
29
31
|
if (ids.length === 0)
|
|
30
32
|
return { expired: 0, retained: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expire-stale-traces.js","sourceRoot":"","sources":["../../../src/trace/runtime/expire-stale-traces.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,qEAAqE;AACrE,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,WAAW;AACX,EAAE;AACF,yEAAyE;AACzE,yDAAyD;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAS7D,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAM,EACN,MAAY,IAAI,IAAI,EAAE;IAEtB,0EAA0E;IAC1E,0EAA0E;IAC1E,qEAAqE;IACrE,+EAA+E;IAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;
|
|
1
|
+
{"version":3,"file":"expire-stale-traces.js","sourceRoot":"","sources":["../../../src/trace/runtime/expire-stale-traces.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,qEAAqE;AACrE,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,WAAW;AACX,EAAE;AACF,yEAAyE;AACzE,yDAAyD;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAS7D,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAM,EACN,MAAY,IAAI,IAAI,EAAE;IAEtB,0EAA0E;IAC1E,0EAA0E;IAC1E,qEAAqE;IACrE,+EAA+E;IAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAChC,6DAA6D;IAC7D,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;8CAEf,MAAM;kDACF,MAAM;;GAErD,CAAC,CAAC,CAAA;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAW,CAAC,CAAA;IAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;IAExD,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,EACpC,sFAAsF,CACvF,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC1C,CAAC"}
|
|
@@ -5,6 +5,7 @@ export interface PendingStep {
|
|
|
5
5
|
readonly id: string;
|
|
6
6
|
readonly traceDay: string;
|
|
7
7
|
readonly traceId: string;
|
|
8
|
+
readonly tenantId: string | null;
|
|
8
9
|
readonly seq: number;
|
|
9
10
|
readonly parentStepId: string | null;
|
|
10
11
|
readonly flowStepRef: string;
|
|
@@ -66,6 +67,8 @@ export interface StepBufferParams {
|
|
|
66
67
|
readonly traceId: string;
|
|
67
68
|
/** The parent trace's `openedDay` — the partition every step row lands in. */
|
|
68
69
|
readonly traceDay: string;
|
|
70
|
+
/** The trace's tenant, stamped on every staged step row. Default `null`. */
|
|
71
|
+
readonly tenantId?: string | null;
|
|
69
72
|
/**
|
|
70
73
|
* The Q7 step cap. The `seq` that first exceeds it trips truncation;
|
|
71
74
|
* `Infinity` disables the cap (no `structuralMax` resolved yet).
|
|
@@ -99,6 +102,7 @@ export interface ExternalStepInput {
|
|
|
99
102
|
export declare class StepBuffer {
|
|
100
103
|
private readonly traceId;
|
|
101
104
|
private readonly traceDay;
|
|
105
|
+
private readonly tenantId;
|
|
102
106
|
private readonly cap;
|
|
103
107
|
readonly captureInputs: boolean;
|
|
104
108
|
private seq;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-buffer.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"step-buffer.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { projectStepError } from './step-error.js';
|
|
|
14
14
|
export class StepBuffer {
|
|
15
15
|
traceId;
|
|
16
16
|
traceDay;
|
|
17
|
+
tenantId;
|
|
17
18
|
cap;
|
|
18
19
|
captureInputs;
|
|
19
20
|
seq = 0;
|
|
@@ -38,6 +39,7 @@ export class StepBuffer {
|
|
|
38
39
|
constructor(params) {
|
|
39
40
|
this.traceId = params.traceId;
|
|
40
41
|
this.traceDay = params.traceDay;
|
|
42
|
+
this.tenantId = params.tenantId ?? null;
|
|
41
43
|
this.cap = params.cap;
|
|
42
44
|
this.captureInputs = params.captureInputs;
|
|
43
45
|
this.maxExternalSteps = params.maxExternalSteps ?? 1000;
|
|
@@ -128,6 +130,7 @@ export class StepBuffer {
|
|
|
128
130
|
id: begun.stepId,
|
|
129
131
|
traceDay: this.traceDay,
|
|
130
132
|
traceId: this.traceId,
|
|
133
|
+
tenantId: this.tenantId,
|
|
131
134
|
seq: begun.seq,
|
|
132
135
|
parentStepId: begun.parentStepId,
|
|
133
136
|
flowStepRef: begun.flowStepRef,
|
|
@@ -153,6 +156,7 @@ export class StepBuffer {
|
|
|
153
156
|
...step,
|
|
154
157
|
traceDay: this.traceDay,
|
|
155
158
|
traceId: this.traceId,
|
|
159
|
+
tenantId: this.tenantId,
|
|
156
160
|
seq: ++this.seq,
|
|
157
161
|
capturedInputs: this.captureInputs ? step.capturedInputs : null,
|
|
158
162
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-buffer.js","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,yEAAyE;AACzE,mBAAmB;AACnB,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAkB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"step-buffer.js","sourceRoot":"","sources":["../../../src/trace/runtime/step-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate-trace.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/truncate-trace.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"truncate-trace.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime/truncate-trace.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAQtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlF"}
|
|
@@ -19,6 +19,7 @@ import { getBaseLogger } from '../../core/logging/index.js';
|
|
|
19
19
|
import { eq, and, getTableColumns } from '../../data/query/index.js';
|
|
20
20
|
import { trace } from '../schema/trace.js';
|
|
21
21
|
import { flushSteps } from './flush-steps.js';
|
|
22
|
+
import { withMaintenance } from '../../data/db/maintenance.js';
|
|
22
23
|
/** Fires Q7 truncation: flushes the buffer and stamps `truncated` on the trace row. */
|
|
23
24
|
export function truncateTrace(instance, ctx) {
|
|
24
25
|
const truncatedAtSeq = ctx.buffer.truncatedAtSeq;
|
|
@@ -29,10 +30,13 @@ export function truncateTrace(instance, ctx) {
|
|
|
29
30
|
const db = instance.pool.getOrCreate(instance.config.database()).drizzle;
|
|
30
31
|
const table = trace.table();
|
|
31
32
|
const cols = getTableColumns(table);
|
|
32
|
-
//
|
|
33
|
-
const traceUpdate = db
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
// The pooled connection carries no tenant setting, so the UPDATE runs as a maintenance pass.
|
|
34
|
+
const traceUpdate = withMaintenance(db, async (tx) => {
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle's update needs the concrete runtime table type
|
|
36
|
+
await tx.update(table)
|
|
37
|
+
.set({ status: 'truncated', truncatedAtSeq })
|
|
38
|
+
.where(and(eq(cols.id, ctx.id), eq(cols.openedDay, ctx.openedDay)));
|
|
39
|
+
});
|
|
36
40
|
await Promise.all([stepFlush, traceUpdate]);
|
|
37
41
|
})
|
|
38
42
|
.catch((err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate-trace.js","sourceRoot":"","sources":["../../../src/trace/runtime/truncate-trace.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iEAAiE;AACjE,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAC1E,6BAA6B;AAC7B,EAAE;AACF,mEAAmE;AACnE,4EAA4E;AAC5E,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,+EAA+E;AAC/E,UAAU;AAGV,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"truncate-trace.js","sourceRoot":"","sources":["../../../src/trace/runtime/truncate-trace.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iEAAiE;AACjE,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAC1E,6BAA6B;AAC7B,EAAE;AACF,mEAAmE;AACnE,4EAA4E;AAC5E,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,+EAA+E;AAC/E,UAAU;AAGV,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAI9D,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,GAAiB;IACjE,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAA;IAChD,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,EACnC,qGAAqG,CACtG,CAAA;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS;SACvB,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAA;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAuC,CAAA;QACzE,6FAA6F;QAC7F,MAAM,WAAW,GAAG,eAAe,CAAC,EAAmB,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;YAClE,wHAAwH;YACxH,MAAO,EAAU,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC5B,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;iBAC5C,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACvE,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EACxB,qFAAqF,CACtF,CAAA;IACH,CAAC,CAAC,CAAA;IACJ,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -8,6 +8,11 @@ export declare const traceStepFields: {
|
|
|
8
8
|
}>;
|
|
9
9
|
traceDay: import("../../data/domain/types.js").FieldDescriptor<string, {}> & import("../../data/domain/field.js").FieldModifiers<string, {}>;
|
|
10
10
|
traceId: import("../../data/domain/types.js").FieldDescriptor<import("../../data/domain/brand.js").Branded<string, "TraceId">, {}> & import("../../data/domain/field.js").FieldModifiers<import("../../data/domain/brand.js").Branded<string, "TraceId">, {}>;
|
|
11
|
+
tenantId: import("../../data/domain/types.js").FieldDescriptor<string | null, {
|
|
12
|
+
nullable: true;
|
|
13
|
+
}> & import("../../data/domain/field.js").FieldModifiers<string | null, {
|
|
14
|
+
nullable: true;
|
|
15
|
+
}>;
|
|
11
16
|
seq: import("../../data/domain/types.js").FieldDescriptor<number, {}> & import("../../data/domain/field.js").FieldModifiers<number, {}>;
|
|
12
17
|
parentStepId: import("../../data/domain/types.js").FieldDescriptor<import("../../data/domain/brand.js").Branded<string, "TraceStepId"> | null, {
|
|
13
18
|
nullable: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-step-fields.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"trace-step-fields.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB3B,CAAA"}
|
|
@@ -22,6 +22,8 @@ export const traceStepFields = {
|
|
|
22
22
|
// tables' partitions retire together.
|
|
23
23
|
traceDay: field.date(),
|
|
24
24
|
traceId: field.uuid().brand('TraceId').references(lazyTrace, 'id', { enforced: false }),
|
|
25
|
+
// The parent trace's tenant, stamped on every step so the row-level security policy can guard steps like traces.
|
|
26
|
+
tenantId: field.uuid().tenant().nullable(),
|
|
25
27
|
// Spawn order within the trace. Branch vs step is an edge property, not a
|
|
26
28
|
// node property — `seq` only records sequencing.
|
|
27
29
|
seq: field.integer(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-step-fields.js","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,4EAA4E;AAC5E,eAAe;AACf,EAAE;AACF,wEAAwE;AACxE,oBAAoB;AACpB,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,uEAAuE;AACvE,4CAA4C;AAE5C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAGvD,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAiB,CAAA;AAChF,MAAM,aAAa,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAiB,CAAA;AAEzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE;IACrD,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvF,0EAA0E;IAC1E,iDAAiD;IACjD,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE;IACpB,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/G,yEAAyE;IACzE,+BAA+B;IAC/B,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE;IACzB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAA"}
|
|
1
|
+
{"version":3,"file":"trace-step-fields.js","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,4EAA4E;AAC5E,eAAe;AACf,EAAE;AACF,wEAAwE;AACxE,oBAAoB;AACpB,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,uEAAuE;AACvE,4CAA4C;AAE5C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAGvD,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAiB,CAAA;AAChF,MAAM,aAAa,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAiB,CAAA;AAEzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE;IACrD,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvF,iHAAiH;IACjH,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,0EAA0E;IAC1E,iDAAiD;IACjD,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE;IACpB,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/G,yEAAyE;IACzE,+BAA+B;IAC/B,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE;IACzB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAA"}
|
|
@@ -8,6 +8,11 @@ export declare const traceStepRetained: import("../../data/domain/types.js").Def
|
|
|
8
8
|
}>;
|
|
9
9
|
traceDay: import("../../data/domain/types.js").FieldDescriptor<string, {}> & import("../../data/domain/field.js").FieldModifiers<string, {}>;
|
|
10
10
|
traceId: import("../../data/domain/types.js").FieldDescriptor<import("../../data/domain/brand.js").Branded<string, "TraceId">, {}> & import("../../data/domain/field.js").FieldModifiers<import("../../data/domain/brand.js").Branded<string, "TraceId">, {}>;
|
|
11
|
+
tenantId: import("../../data/domain/types.js").FieldDescriptor<string | null, {
|
|
12
|
+
nullable: true;
|
|
13
|
+
}> & import("../../data/domain/field.js").FieldModifiers<string | null, {
|
|
14
|
+
nullable: true;
|
|
15
|
+
}>;
|
|
11
16
|
seq: import("../../data/domain/types.js").FieldDescriptor<number, {}> & import("../../data/domain/field.js").FieldModifiers<number, {}>;
|
|
12
17
|
parentStepId: import("../../data/domain/types.js").FieldDescriptor<import("../../data/domain/brand.js").Branded<string, "TraceStepId"> | null, {
|
|
13
18
|
nullable: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-step-retained.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-retained.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"trace-step-retained.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-retained.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAc5B,CAAA"}
|
|
@@ -8,6 +8,11 @@ export declare const traceStep: import("../../data/domain/types.js").DefinedTabl
|
|
|
8
8
|
}>;
|
|
9
9
|
traceDay: import("../../data/domain/types.js").FieldDescriptor<string, {}> & import("../../data/domain/field.js").FieldModifiers<string, {}>;
|
|
10
10
|
traceId: import("../../data/domain/types.js").FieldDescriptor<import("../../data/domain/brand.js").Branded<string, "TraceId">, {}> & import("../../data/domain/field.js").FieldModifiers<import("../../data/domain/brand.js").Branded<string, "TraceId">, {}>;
|
|
11
|
+
tenantId: import("../../data/domain/types.js").FieldDescriptor<string | null, {
|
|
12
|
+
nullable: true;
|
|
13
|
+
}> & import("../../data/domain/field.js").FieldModifiers<string | null, {
|
|
14
|
+
nullable: true;
|
|
15
|
+
}>;
|
|
11
16
|
seq: import("../../data/domain/types.js").FieldDescriptor<number, {}> & import("../../data/domain/field.js").FieldModifiers<number, {}>;
|
|
12
17
|
parentStepId: import("../../data/domain/types.js").FieldDescriptor<import("../../data/domain/brand.js").Branded<string, "TraceStepId"> | null, {
|
|
13
18
|
nullable: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-step.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"trace-step.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAQpB,CAAA"}
|