@relaycast/engine 8.0.5 → 8.0.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/dist/adapters/node/files.d.ts +3 -0
- package/dist/adapters/node/files.d.ts.map +1 -1
- package/dist/adapters/node/files.js +10 -1
- package/dist/adapters/node/files.js.map +1 -1
- package/dist/adapters/node/index.d.ts.map +1 -1
- package/dist/adapters/node/index.js +14 -1
- package/dist/adapters/node/index.js.map +1 -1
- package/dist/db/migrations/0036_workspace_expiry.sql +3 -0
- package/dist/db/migrations/0037_file_cleanup_outbox.sql +36 -0
- package/dist/db/migrations/0038_session_ref_lookup.sql +58 -0
- package/dist/db/schema.d.ts +269 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +47 -2
- package/dist/db/schema.js.map +1 -1
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +2 -0
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/dm.d.ts.map +1 -1
- package/dist/engine/dm.js +15 -6
- package/dist/engine/dm.js.map +1 -1
- package/dist/engine/file.d.ts.map +1 -1
- package/dist/engine/file.js +5 -0
- package/dist/engine/file.js.map +1 -1
- package/dist/engine/groupDm.d.ts +3 -0
- package/dist/engine/groupDm.d.ts.map +1 -1
- package/dist/engine/groupDm.js +16 -1
- package/dist/engine/groupDm.js.map +1 -1
- package/dist/engine/inboundWebhook.d.ts.map +1 -1
- package/dist/engine/inboundWebhook.js +45 -19
- package/dist/engine/inboundWebhook.js.map +1 -1
- package/dist/engine/message.d.ts.map +1 -1
- package/dist/engine/message.js +8 -0
- package/dist/engine/message.js.map +1 -1
- package/dist/engine/messageMetadata.d.ts +2 -0
- package/dist/engine/messageMetadata.d.ts.map +1 -1
- package/dist/engine/messageMetadata.js +14 -0
- package/dist/engine/messageMetadata.js.map +1 -1
- package/dist/engine/retention.d.ts +16 -0
- package/dist/engine/retention.d.ts.map +1 -1
- package/dist/engine/retention.js +70 -0
- package/dist/engine/retention.js.map +1 -1
- package/dist/engine/sessionMessages.d.ts +28 -0
- package/dist/engine/sessionMessages.d.ts.map +1 -0
- package/dist/engine/sessionMessages.js +194 -0
- package/dist/engine/sessionMessages.js.map +1 -0
- package/dist/engine/thread.d.ts.map +1 -1
- package/dist/engine/thread.js +8 -0
- package/dist/engine/thread.js.map +1 -1
- package/dist/engine/workspace.d.ts +69 -3
- package/dist/engine/workspace.d.ts.map +1 -1
- package/dist/engine/workspace.js +234 -21
- package/dist/engine/workspace.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/idempotency.d.ts +2 -0
- package/dist/middleware/idempotency.d.ts.map +1 -1
- package/dist/middleware/idempotency.js +7 -4
- package/dist/middleware/idempotency.js.map +1 -1
- package/dist/ports/files.d.ts +12 -3
- package/dist/ports/files.d.ts.map +1 -1
- package/dist/ports/index.d.ts +9 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/routes/groupDm.d.ts.map +1 -1
- package/dist/routes/groupDm.js +40 -5
- package/dist/routes/groupDm.js.map +1 -1
- package/dist/routes/message.d.ts.map +1 -1
- package/dist/routes/message.js +27 -3
- package/dist/routes/message.js.map +1 -1
- package/dist/routes/workspace.d.ts.map +1 -1
- package/dist/routes/workspace.js +38 -18
- package/dist/routes/workspace.js.map +1 -1
- package/package.json +3 -3
|
@@ -33,6 +33,9 @@ export declare class LocalFileStorage implements FileStorage {
|
|
|
33
33
|
createDownloadUrl(args: {
|
|
34
34
|
storageKey: string;
|
|
35
35
|
}): Promise<string>;
|
|
36
|
+
deleteObjects(args: {
|
|
37
|
+
storageKeys: string[];
|
|
38
|
+
}): Promise<void>;
|
|
36
39
|
/** Resolve a storage key to an absolute path under `dir`, rejecting traversal. */
|
|
37
40
|
private resolvePath;
|
|
38
41
|
verify(token: string | null): TokenPayload | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,QAAA,MAAM,kBAAkB;;;;;;;iBAItB,CAAC;AAEH,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAEhD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAGjC,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,GAAG;IAKL,eAAe,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAQxI,iBAAiB,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,QAAA,MAAM,kBAAkB;;;;;;;iBAItB,CAAC;AAEH,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAEhD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAGjC,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,GAAG;IAKL,eAAe,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAQxI,iBAAiB,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhE,aAAa,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,kFAAkF;IAClF,OAAO,CAAC,WAAW;IASnB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI;IAuB3C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAahF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,IAChD,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CA2BnD;AAED,eAAO,MAAM,iBAAiB,iBAAe,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
2
|
-
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { dirname, join, normalize, sep } from 'node:path';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
const URL_TTL_SECONDS = 3600;
|
|
@@ -44,6 +44,15 @@ export class LocalFileStorage {
|
|
|
44
44
|
const exp = Math.floor(Date.now() / 1000) + URL_TTL_SECONDS;
|
|
45
45
|
return this.url({ key: args.storageKey, op: 'get', exp });
|
|
46
46
|
}
|
|
47
|
+
async deleteObjects(args) {
|
|
48
|
+
for (const storageKey of args.storageKeys) {
|
|
49
|
+
const path = this.resolvePath(storageKey);
|
|
50
|
+
await Promise.all([
|
|
51
|
+
rm(path, { force: true }),
|
|
52
|
+
rm(`${path}.ct`, { force: true }),
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
47
56
|
/** Resolve a storage key to an absolute path under `dir`, rejecting traversal. */
|
|
48
57
|
resolvePath(key) {
|
|
49
58
|
const rel = normalize(key).replace(/^(\.\.(\/|\\|$))+/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/adapters/node/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/adapters/node/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQzF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,aAAa,GACd,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,oDAAoD;IACpD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,wBAAwB,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,yFAAyF;IACzF,YAAY,EAAE,iBAAiB,CAAC;IAChC,mFAAmF;IACnF,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,EAAE,cAAc,CAAC;IACvB,gDAAgD;IAChD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAuH1E"}
|
|
@@ -14,6 +14,7 @@ import { sweepStaleAgents } from '../../engine/agent.js';
|
|
|
14
14
|
import { sweepTimedOutInvocations } from '../../engine/action.js';
|
|
15
15
|
import { sendNodePresenceContext } from '../../engine/nodeContext.js';
|
|
16
16
|
import { createDeliveryMaintenanceRunner } from './delivery-maintenance.js';
|
|
17
|
+
import { reapExpiredWorkspaces } from '../../engine/workspace.js';
|
|
17
18
|
export { InProcessRealtime, InProcessPresence, InProcessRateLimiter, InProcessKeyValueStore, InProcessEventQueue, DurableEventQueue, LocalFileStorage, createFileRouteHandler, FILE_ROUTE_PREFIX, getSqliteDb, runMigrations, };
|
|
18
19
|
/**
|
|
19
20
|
* Construct the in-process Node + SQLite runtime. Wires the realtime bus to the
|
|
@@ -70,6 +71,17 @@ export function createNodeRuntime(options) {
|
|
|
70
71
|
webhookQueue.start();
|
|
71
72
|
const auth = options.auth ?? new SqliteApiKeyAuthProvider();
|
|
72
73
|
const entitlements = options.entitlements ?? new StaticEntitlementsProvider(kv);
|
|
74
|
+
// An explicit host-provided boundary is authoritative (the host may prune
|
|
75
|
+
// outside this process). Otherwise report the same fallback the local Node
|
|
76
|
+
// pruner uses; omitted/disabled message TTL is explicitly never-prune.
|
|
77
|
+
const retentionOptions = options.eventQueue?.retention;
|
|
78
|
+
const messageTtlDays = retentionOptions === false
|
|
79
|
+
? null
|
|
80
|
+
: retentionOptions?.defaults?.messageTtlDays ?? null;
|
|
81
|
+
const config = {
|
|
82
|
+
...options.config,
|
|
83
|
+
retention: options.config?.retention ?? { messageTtlDays },
|
|
84
|
+
};
|
|
73
85
|
const deps = {
|
|
74
86
|
db,
|
|
75
87
|
realtime,
|
|
@@ -83,7 +95,7 @@ export function createNodeRuntime(options) {
|
|
|
83
95
|
auth,
|
|
84
96
|
entitlements,
|
|
85
97
|
telemetry,
|
|
86
|
-
config
|
|
98
|
+
config,
|
|
87
99
|
};
|
|
88
100
|
realtime.setNodeCompletionDeps(deps);
|
|
89
101
|
const runDeliveryMaintenance = createDeliveryMaintenanceRunner(deps);
|
|
@@ -91,6 +103,7 @@ export function createNodeRuntime(options) {
|
|
|
91
103
|
void sweepStaleAgents(db).catch(() => { });
|
|
92
104
|
void sweepOfflineNodes(db, realtime, deps).catch(() => { });
|
|
93
105
|
void sweepTimedOutInvocations(db, realtime, { completionDeps: deps }).catch(() => { });
|
|
106
|
+
void reapExpiredWorkspaces(db, fileStorage).catch(() => { });
|
|
94
107
|
void runDeliveryMaintenance();
|
|
95
108
|
}, 15_000);
|
|
96
109
|
sweepTimer.unref?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAuB,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAiC,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
-- Record the exact expiry of each issued upload capability. Existing pending
|
|
2
|
+
-- uploads are conservatively protected for one hour when their file row is
|
|
3
|
+
-- removed, matching the documented FileStorage URL lifetime.
|
|
4
|
+
ALTER TABLE `files` ADD `upload_expires_at` integer;
|
|
5
|
+
--> statement-breakpoint
|
|
6
|
+
|
|
7
|
+
-- This outbox intentionally has no workspace FK: cleanup must remain durable
|
|
8
|
+
-- after the workspace and its file metadata have committed their deletion.
|
|
9
|
+
CREATE TABLE `file_cleanup_queue` (
|
|
10
|
+
`storage_key` text PRIMARY KEY NOT NULL,
|
|
11
|
+
`delete_after` integer NOT NULL,
|
|
12
|
+
`process_after` integer DEFAULT (unixepoch()) NOT NULL,
|
|
13
|
+
`attempts` integer DEFAULT 0 NOT NULL,
|
|
14
|
+
`last_error` text,
|
|
15
|
+
`created_at` integer DEFAULT (unixepoch()) NOT NULL
|
|
16
|
+
);
|
|
17
|
+
--> statement-breakpoint
|
|
18
|
+
CREATE INDEX `idx_file_cleanup_due`
|
|
19
|
+
ON `file_cleanup_queue` (`process_after`, `storage_key`);
|
|
20
|
+
--> statement-breakpoint
|
|
21
|
+
|
|
22
|
+
-- Queue the object in the same transaction that removes its metadata. This
|
|
23
|
+
-- trigger also runs for workspace FK cascades, closing the upload/delete race:
|
|
24
|
+
-- an upload row commits before the workspace delete and is queued, or it loses
|
|
25
|
+
-- the race and its workspace FK insert fails.
|
|
26
|
+
CREATE TRIGGER `files_enqueue_object_cleanup`
|
|
27
|
+
AFTER DELETE ON `files`
|
|
28
|
+
BEGIN
|
|
29
|
+
INSERT INTO `file_cleanup_queue` (`storage_key`, `delete_after`)
|
|
30
|
+
VALUES (
|
|
31
|
+
OLD.`storage_key`,
|
|
32
|
+
MAX(unixepoch(), COALESCE(OLD.`upload_expires_at`, unixepoch() + 3600))
|
|
33
|
+
)
|
|
34
|
+
ON CONFLICT (`storage_key`) DO UPDATE SET
|
|
35
|
+
`delete_after` = MAX(`file_cleanup_queue`.`delete_after`, excluded.`delete_after`);
|
|
36
|
+
END;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
-- Indexed replay lookup plus a payload-free ledger that survives message TTL
|
|
2
|
+
-- pruning. The ledger is what lets an empty live-message slice mean aged_out
|
|
3
|
+
-- when appropriate instead of silently pretending the session never existed.
|
|
4
|
+
ALTER TABLE messages ADD COLUMN session_ref TEXT;
|
|
5
|
+
|
|
6
|
+
CREATE INDEX idx_messages_workspace_session
|
|
7
|
+
ON messages(workspace_id, session_ref, length(id), id);
|
|
8
|
+
|
|
9
|
+
CREATE TABLE message_sessions (
|
|
10
|
+
workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
11
|
+
session_ref TEXT NOT NULL,
|
|
12
|
+
first_message_at INTEGER NOT NULL,
|
|
13
|
+
last_message_at INTEGER NOT NULL,
|
|
14
|
+
start_is_known INTEGER NOT NULL DEFAULT 1 CHECK (start_is_known IN (0, 1)),
|
|
15
|
+
PRIMARY KEY (workspace_id, session_ref)
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE INDEX idx_message_sessions_workspace_last
|
|
19
|
+
ON message_sessions(workspace_id, last_message_at);
|
|
20
|
+
|
|
21
|
+
-- Backfill public, string-valued session_ref metadata already persisted by
|
|
22
|
+
-- direct-DM and raw HTTP callers. SQLite and the API both count Unicode code
|
|
23
|
+
-- points here, avoiding a UTF-16/code-point mismatch at the length boundary.
|
|
24
|
+
UPDATE messages
|
|
25
|
+
SET session_ref = json_extract(metadata, '$.session_ref')
|
|
26
|
+
WHERE metadata IS NOT NULL
|
|
27
|
+
AND json_valid(metadata)
|
|
28
|
+
AND json_type(metadata, '$.session_ref') = 'text'
|
|
29
|
+
AND length(json_extract(metadata, '$.session_ref')) BETWEEN 1 AND 255
|
|
30
|
+
AND (
|
|
31
|
+
COALESCE(json_extract(metadata, '$.__relaycast_origin'), '') <> 'inbound_webhook'
|
|
32
|
+
OR EXISTS (
|
|
33
|
+
SELECT 1
|
|
34
|
+
FROM webhooks
|
|
35
|
+
WHERE webhooks.id = json_extract(metadata, '$.__relaycast_webhook_id')
|
|
36
|
+
AND webhooks.token_hash IS NOT NULL
|
|
37
|
+
)
|
|
38
|
+
-- Internal Relayfile deliveries use the same display metadata shape but
|
|
39
|
+
-- never have a row in the public webhooks table.
|
|
40
|
+
OR json_extract(metadata, '$.__relaycast_webhook_id') GLOB 'relayfile:*'
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
INSERT INTO message_sessions (
|
|
44
|
+
workspace_id,
|
|
45
|
+
session_ref,
|
|
46
|
+
first_message_at,
|
|
47
|
+
last_message_at,
|
|
48
|
+
start_is_known
|
|
49
|
+
)
|
|
50
|
+
SELECT
|
|
51
|
+
workspace_id,
|
|
52
|
+
session_ref,
|
|
53
|
+
MIN(created_at),
|
|
54
|
+
MAX(created_at),
|
|
55
|
+
0
|
|
56
|
+
FROM messages
|
|
57
|
+
WHERE session_ref IS NOT NULL
|
|
58
|
+
GROUP BY workspace_id, session_ref;
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -172,6 +172,23 @@ export declare const workspaces: import("drizzle-orm/sqlite-core").SQLiteTableWi
|
|
|
172
172
|
}, {}, {
|
|
173
173
|
$type: WorkspaceRetentionSettings;
|
|
174
174
|
}>;
|
|
175
|
+
expiresAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
176
|
+
name: "expires_at";
|
|
177
|
+
tableName: "workspaces";
|
|
178
|
+
dataType: "date";
|
|
179
|
+
columnType: "SQLiteTimestamp";
|
|
180
|
+
data: Date;
|
|
181
|
+
driverParam: number;
|
|
182
|
+
notNull: false;
|
|
183
|
+
hasDefault: false;
|
|
184
|
+
isPrimaryKey: false;
|
|
185
|
+
isAutoincrement: false;
|
|
186
|
+
hasRuntimeDefault: false;
|
|
187
|
+
enumValues: undefined;
|
|
188
|
+
baseColumn: never;
|
|
189
|
+
identity: undefined;
|
|
190
|
+
generated: undefined;
|
|
191
|
+
}, {}, {}>;
|
|
175
192
|
};
|
|
176
193
|
dialect: "sqlite";
|
|
177
194
|
}>;
|
|
@@ -3680,6 +3697,25 @@ export declare const messages: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
3680
3697
|
}, {}, {
|
|
3681
3698
|
$type: Record<string, unknown>;
|
|
3682
3699
|
}>;
|
|
3700
|
+
sessionRef: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3701
|
+
name: "session_ref";
|
|
3702
|
+
tableName: "messages";
|
|
3703
|
+
dataType: "string";
|
|
3704
|
+
columnType: "SQLiteText";
|
|
3705
|
+
data: string;
|
|
3706
|
+
driverParam: string;
|
|
3707
|
+
notNull: false;
|
|
3708
|
+
hasDefault: false;
|
|
3709
|
+
isPrimaryKey: false;
|
|
3710
|
+
isAutoincrement: false;
|
|
3711
|
+
hasRuntimeDefault: false;
|
|
3712
|
+
enumValues: [string, ...string[]];
|
|
3713
|
+
baseColumn: never;
|
|
3714
|
+
identity: undefined;
|
|
3715
|
+
generated: undefined;
|
|
3716
|
+
}, {}, {
|
|
3717
|
+
length: number | undefined;
|
|
3718
|
+
}>;
|
|
3683
3719
|
hasAttachments: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3684
3720
|
name: "has_attachments";
|
|
3685
3721
|
tableName: "messages";
|
|
@@ -3734,6 +3770,102 @@ export declare const messages: import("drizzle-orm/sqlite-core").SQLiteTableWith
|
|
|
3734
3770
|
};
|
|
3735
3771
|
dialect: "sqlite";
|
|
3736
3772
|
}>;
|
|
3773
|
+
export declare const messageSessions: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
3774
|
+
name: "message_sessions";
|
|
3775
|
+
schema: undefined;
|
|
3776
|
+
columns: {
|
|
3777
|
+
workspaceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3778
|
+
name: "workspace_id";
|
|
3779
|
+
tableName: "message_sessions";
|
|
3780
|
+
dataType: "string";
|
|
3781
|
+
columnType: "SQLiteText";
|
|
3782
|
+
data: string;
|
|
3783
|
+
driverParam: string;
|
|
3784
|
+
notNull: true;
|
|
3785
|
+
hasDefault: false;
|
|
3786
|
+
isPrimaryKey: false;
|
|
3787
|
+
isAutoincrement: false;
|
|
3788
|
+
hasRuntimeDefault: false;
|
|
3789
|
+
enumValues: [string, ...string[]];
|
|
3790
|
+
baseColumn: never;
|
|
3791
|
+
identity: undefined;
|
|
3792
|
+
generated: undefined;
|
|
3793
|
+
}, {}, {
|
|
3794
|
+
length: number | undefined;
|
|
3795
|
+
}>;
|
|
3796
|
+
sessionRef: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3797
|
+
name: "session_ref";
|
|
3798
|
+
tableName: "message_sessions";
|
|
3799
|
+
dataType: "string";
|
|
3800
|
+
columnType: "SQLiteText";
|
|
3801
|
+
data: string;
|
|
3802
|
+
driverParam: string;
|
|
3803
|
+
notNull: true;
|
|
3804
|
+
hasDefault: false;
|
|
3805
|
+
isPrimaryKey: false;
|
|
3806
|
+
isAutoincrement: false;
|
|
3807
|
+
hasRuntimeDefault: false;
|
|
3808
|
+
enumValues: [string, ...string[]];
|
|
3809
|
+
baseColumn: never;
|
|
3810
|
+
identity: undefined;
|
|
3811
|
+
generated: undefined;
|
|
3812
|
+
}, {}, {
|
|
3813
|
+
length: number | undefined;
|
|
3814
|
+
}>;
|
|
3815
|
+
firstMessageAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3816
|
+
name: "first_message_at";
|
|
3817
|
+
tableName: "message_sessions";
|
|
3818
|
+
dataType: "date";
|
|
3819
|
+
columnType: "SQLiteTimestamp";
|
|
3820
|
+
data: Date;
|
|
3821
|
+
driverParam: number;
|
|
3822
|
+
notNull: true;
|
|
3823
|
+
hasDefault: false;
|
|
3824
|
+
isPrimaryKey: false;
|
|
3825
|
+
isAutoincrement: false;
|
|
3826
|
+
hasRuntimeDefault: false;
|
|
3827
|
+
enumValues: undefined;
|
|
3828
|
+
baseColumn: never;
|
|
3829
|
+
identity: undefined;
|
|
3830
|
+
generated: undefined;
|
|
3831
|
+
}, {}, {}>;
|
|
3832
|
+
lastMessageAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3833
|
+
name: "last_message_at";
|
|
3834
|
+
tableName: "message_sessions";
|
|
3835
|
+
dataType: "date";
|
|
3836
|
+
columnType: "SQLiteTimestamp";
|
|
3837
|
+
data: Date;
|
|
3838
|
+
driverParam: number;
|
|
3839
|
+
notNull: true;
|
|
3840
|
+
hasDefault: false;
|
|
3841
|
+
isPrimaryKey: false;
|
|
3842
|
+
isAutoincrement: false;
|
|
3843
|
+
hasRuntimeDefault: false;
|
|
3844
|
+
enumValues: undefined;
|
|
3845
|
+
baseColumn: never;
|
|
3846
|
+
identity: undefined;
|
|
3847
|
+
generated: undefined;
|
|
3848
|
+
}, {}, {}>;
|
|
3849
|
+
startIsKnown: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
3850
|
+
name: "start_is_known";
|
|
3851
|
+
tableName: "message_sessions";
|
|
3852
|
+
dataType: "boolean";
|
|
3853
|
+
columnType: "SQLiteBoolean";
|
|
3854
|
+
data: boolean;
|
|
3855
|
+
driverParam: number;
|
|
3856
|
+
notNull: true;
|
|
3857
|
+
hasDefault: true;
|
|
3858
|
+
isPrimaryKey: false;
|
|
3859
|
+
isAutoincrement: false;
|
|
3860
|
+
hasRuntimeDefault: false;
|
|
3861
|
+
enumValues: undefined;
|
|
3862
|
+
baseColumn: never;
|
|
3863
|
+
identity: undefined;
|
|
3864
|
+
generated: undefined;
|
|
3865
|
+
}, {}, {}>;
|
|
3866
|
+
};
|
|
3867
|
+
dialect: "sqlite";
|
|
3868
|
+
}>;
|
|
3737
3869
|
export declare const messageLogs: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
3738
3870
|
name: "message_logs";
|
|
3739
3871
|
schema: undefined;
|
|
@@ -4532,6 +4664,23 @@ export declare const files: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
4532
4664
|
}, {}, {
|
|
4533
4665
|
length: number | undefined;
|
|
4534
4666
|
}>;
|
|
4667
|
+
uploadExpiresAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4668
|
+
name: "upload_expires_at";
|
|
4669
|
+
tableName: "files";
|
|
4670
|
+
dataType: "date";
|
|
4671
|
+
columnType: "SQLiteTimestamp";
|
|
4672
|
+
data: Date;
|
|
4673
|
+
driverParam: number;
|
|
4674
|
+
notNull: false;
|
|
4675
|
+
hasDefault: false;
|
|
4676
|
+
isPrimaryKey: false;
|
|
4677
|
+
isAutoincrement: false;
|
|
4678
|
+
hasRuntimeDefault: false;
|
|
4679
|
+
enumValues: undefined;
|
|
4680
|
+
baseColumn: never;
|
|
4681
|
+
identity: undefined;
|
|
4682
|
+
generated: undefined;
|
|
4683
|
+
}, {}, {}>;
|
|
4535
4684
|
status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4536
4685
|
name: "status";
|
|
4537
4686
|
tableName: "files";
|
|
@@ -4571,6 +4720,125 @@ export declare const files: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
4571
4720
|
};
|
|
4572
4721
|
dialect: "sqlite";
|
|
4573
4722
|
}>;
|
|
4723
|
+
/**
|
|
4724
|
+
* Durable object-deletion tombstones created by a trigger whenever a file row
|
|
4725
|
+
* is physically removed. There is deliberately no workspace foreign key: the
|
|
4726
|
+
* row must survive the workspace cascade until external storage confirms the
|
|
4727
|
+
* object is gone after every issued upload capability has expired.
|
|
4728
|
+
*/
|
|
4729
|
+
export declare const fileCleanupQueue: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
4730
|
+
name: "file_cleanup_queue";
|
|
4731
|
+
schema: undefined;
|
|
4732
|
+
columns: {
|
|
4733
|
+
storageKey: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4734
|
+
name: "storage_key";
|
|
4735
|
+
tableName: "file_cleanup_queue";
|
|
4736
|
+
dataType: "string";
|
|
4737
|
+
columnType: "SQLiteText";
|
|
4738
|
+
data: string;
|
|
4739
|
+
driverParam: string;
|
|
4740
|
+
notNull: true;
|
|
4741
|
+
hasDefault: false;
|
|
4742
|
+
isPrimaryKey: true;
|
|
4743
|
+
isAutoincrement: false;
|
|
4744
|
+
hasRuntimeDefault: false;
|
|
4745
|
+
enumValues: [string, ...string[]];
|
|
4746
|
+
baseColumn: never;
|
|
4747
|
+
identity: undefined;
|
|
4748
|
+
generated: undefined;
|
|
4749
|
+
}, {}, {
|
|
4750
|
+
length: number | undefined;
|
|
4751
|
+
}>;
|
|
4752
|
+
deleteAfter: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4753
|
+
name: "delete_after";
|
|
4754
|
+
tableName: "file_cleanup_queue";
|
|
4755
|
+
dataType: "date";
|
|
4756
|
+
columnType: "SQLiteTimestamp";
|
|
4757
|
+
data: Date;
|
|
4758
|
+
driverParam: number;
|
|
4759
|
+
notNull: true;
|
|
4760
|
+
hasDefault: false;
|
|
4761
|
+
isPrimaryKey: false;
|
|
4762
|
+
isAutoincrement: false;
|
|
4763
|
+
hasRuntimeDefault: false;
|
|
4764
|
+
enumValues: undefined;
|
|
4765
|
+
baseColumn: never;
|
|
4766
|
+
identity: undefined;
|
|
4767
|
+
generated: undefined;
|
|
4768
|
+
}, {}, {}>;
|
|
4769
|
+
processAfter: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4770
|
+
name: "process_after";
|
|
4771
|
+
tableName: "file_cleanup_queue";
|
|
4772
|
+
dataType: "date";
|
|
4773
|
+
columnType: "SQLiteTimestamp";
|
|
4774
|
+
data: Date;
|
|
4775
|
+
driverParam: number;
|
|
4776
|
+
notNull: true;
|
|
4777
|
+
hasDefault: true;
|
|
4778
|
+
isPrimaryKey: false;
|
|
4779
|
+
isAutoincrement: false;
|
|
4780
|
+
hasRuntimeDefault: false;
|
|
4781
|
+
enumValues: undefined;
|
|
4782
|
+
baseColumn: never;
|
|
4783
|
+
identity: undefined;
|
|
4784
|
+
generated: undefined;
|
|
4785
|
+
}, {}, {}>;
|
|
4786
|
+
attempts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4787
|
+
name: "attempts";
|
|
4788
|
+
tableName: "file_cleanup_queue";
|
|
4789
|
+
dataType: "number";
|
|
4790
|
+
columnType: "SQLiteInteger";
|
|
4791
|
+
data: number;
|
|
4792
|
+
driverParam: number;
|
|
4793
|
+
notNull: true;
|
|
4794
|
+
hasDefault: true;
|
|
4795
|
+
isPrimaryKey: false;
|
|
4796
|
+
isAutoincrement: false;
|
|
4797
|
+
hasRuntimeDefault: false;
|
|
4798
|
+
enumValues: undefined;
|
|
4799
|
+
baseColumn: never;
|
|
4800
|
+
identity: undefined;
|
|
4801
|
+
generated: undefined;
|
|
4802
|
+
}, {}, {}>;
|
|
4803
|
+
lastError: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4804
|
+
name: "last_error";
|
|
4805
|
+
tableName: "file_cleanup_queue";
|
|
4806
|
+
dataType: "string";
|
|
4807
|
+
columnType: "SQLiteText";
|
|
4808
|
+
data: string;
|
|
4809
|
+
driverParam: string;
|
|
4810
|
+
notNull: false;
|
|
4811
|
+
hasDefault: false;
|
|
4812
|
+
isPrimaryKey: false;
|
|
4813
|
+
isAutoincrement: false;
|
|
4814
|
+
hasRuntimeDefault: false;
|
|
4815
|
+
enumValues: [string, ...string[]];
|
|
4816
|
+
baseColumn: never;
|
|
4817
|
+
identity: undefined;
|
|
4818
|
+
generated: undefined;
|
|
4819
|
+
}, {}, {
|
|
4820
|
+
length: number | undefined;
|
|
4821
|
+
}>;
|
|
4822
|
+
createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4823
|
+
name: "created_at";
|
|
4824
|
+
tableName: "file_cleanup_queue";
|
|
4825
|
+
dataType: "date";
|
|
4826
|
+
columnType: "SQLiteTimestamp";
|
|
4827
|
+
data: Date;
|
|
4828
|
+
driverParam: number;
|
|
4829
|
+
notNull: true;
|
|
4830
|
+
hasDefault: true;
|
|
4831
|
+
isPrimaryKey: false;
|
|
4832
|
+
isAutoincrement: false;
|
|
4833
|
+
hasRuntimeDefault: false;
|
|
4834
|
+
enumValues: undefined;
|
|
4835
|
+
baseColumn: never;
|
|
4836
|
+
identity: undefined;
|
|
4837
|
+
generated: undefined;
|
|
4838
|
+
}, {}, {}>;
|
|
4839
|
+
};
|
|
4840
|
+
dialect: "sqlite";
|
|
4841
|
+
}>;
|
|
4574
4842
|
export declare const messageAttachments: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
4575
4843
|
name: "message_attachments";
|
|
4576
4844
|
schema: undefined;
|
|
@@ -6927,7 +7195,7 @@ export declare const pendingEvents: import("drizzle-orm/sqlite-core").SQLiteTabl
|
|
|
6927
7195
|
* the exact `transformForClient(event)` JSON published to the stream (without
|
|
6928
7196
|
* `seq` — the cursor lives in the column and is stamped onto the published
|
|
6929
7197
|
* frame). No FK to `workspaces` by design: appends are best-effort and rows
|
|
6930
|
-
* are pruned by retention
|
|
7198
|
+
* are pruned by retention or explicitly removed with their workspace.
|
|
6931
7199
|
*/
|
|
6932
7200
|
export declare const workspaceEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
6933
7201
|
name: "workspace_events";
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
|