@de-otio/trellis 0.10.10 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/env.d.ts +64 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +66 -0
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/app.d.ts.map +1 -1
- package/dist/lib/app.js +5 -0
- package/dist/lib/app.js.map +1 -1
- package/dist/lib/encrypted-settings/config.d.ts +13 -0
- package/dist/lib/encrypted-settings/config.d.ts.map +1 -0
- package/dist/lib/encrypted-settings/config.js +19 -0
- package/dist/lib/encrypted-settings/config.js.map +1 -0
- package/dist/lib/encrypted-settings/encrypted-settings-handler.d.ts +57 -0
- package/dist/lib/encrypted-settings/encrypted-settings-handler.d.ts.map +1 -0
- package/dist/lib/encrypted-settings/encrypted-settings-handler.js +178 -0
- package/dist/lib/encrypted-settings/encrypted-settings-handler.js.map +1 -0
- package/dist/lib/encrypted-settings/encrypted-settings-store.d.ts +110 -0
- package/dist/lib/encrypted-settings/encrypted-settings-store.d.ts.map +1 -0
- package/dist/lib/encrypted-settings/encrypted-settings-store.js +103 -0
- package/dist/lib/encrypted-settings/encrypted-settings-store.js.map +1 -0
- package/dist/lib/encrypted-settings/types.d.ts +26 -0
- package/dist/lib/encrypted-settings/types.d.ts.map +1 -0
- package/dist/lib/encrypted-settings/types.js +27 -0
- package/dist/lib/encrypted-settings/types.js.map +1 -0
- package/dist/lib/notification-handler.d.ts +11 -4
- package/dist/lib/notification-handler.d.ts.map +1 -1
- package/dist/lib/notification-handler.js +161 -29
- package/dist/lib/notification-handler.js.map +1 -1
- package/dist/lib/realtime/block-store.d.ts +61 -0
- package/dist/lib/realtime/block-store.d.ts.map +1 -0
- package/dist/lib/realtime/block-store.js +0 -0
- package/dist/lib/realtime/block-store.js.map +1 -0
- package/dist/lib/realtime/channel.d.ts +34 -0
- package/dist/lib/realtime/channel.d.ts.map +1 -0
- package/dist/lib/realtime/channel.js +100 -0
- package/dist/lib/realtime/channel.js.map +1 -0
- package/dist/lib/realtime/delivery-policy.d.ts +51 -0
- package/dist/lib/realtime/delivery-policy.d.ts.map +1 -0
- package/dist/lib/realtime/delivery-policy.js +98 -0
- package/dist/lib/realtime/delivery-policy.js.map +1 -0
- package/dist/lib/realtime/index.d.ts +21 -0
- package/dist/lib/realtime/index.d.ts.map +1 -0
- package/dist/lib/realtime/index.js +39 -0
- package/dist/lib/realtime/index.js.map +1 -0
- package/dist/lib/realtime/no-op-transport.d.ts +10 -0
- package/dist/lib/realtime/no-op-transport.d.ts.map +1 -0
- package/dist/lib/realtime/no-op-transport.js +44 -0
- package/dist/lib/realtime/no-op-transport.js.map +1 -0
- package/dist/lib/realtime/poll-transport.d.ts +11 -0
- package/dist/lib/realtime/poll-transport.d.ts.map +1 -0
- package/dist/lib/realtime/poll-transport.js +68 -0
- package/dist/lib/realtime/poll-transport.js.map +1 -0
- package/dist/lib/realtime/push-notifier.d.ts +39 -0
- package/dist/lib/realtime/push-notifier.d.ts.map +1 -0
- package/dist/lib/realtime/push-notifier.js +76 -0
- package/dist/lib/realtime/push-notifier.js.map +1 -0
- package/dist/lib/realtime/realtime-transport.d.ts +2 -0
- package/dist/lib/realtime/realtime-transport.d.ts.map +1 -0
- package/dist/lib/realtime/realtime-transport.js +23 -0
- package/dist/lib/realtime/realtime-transport.js.map +1 -0
- package/dist/lib/realtime/setting-store.d.ts +30 -0
- package/dist/lib/realtime/setting-store.d.ts.map +1 -0
- package/dist/lib/realtime/setting-store.js +0 -0
- package/dist/lib/realtime/setting-store.js.map +1 -0
- package/dist/lib/realtime/types.d.ts +200 -0
- package/dist/lib/realtime/types.d.ts.map +1 -0
- package/dist/lib/realtime/types.js +61 -0
- package/dist/lib/realtime/types.js.map +1 -0
- package/dist/lib/routes/index.d.ts.map +1 -1
- package/dist/lib/routes/index.js +3 -0
- package/dist/lib/routes/index.js.map +1 -1
- package/dist/lib/routes/settings.d.ts +17 -0
- package/dist/lib/routes/settings.d.ts.map +1 -0
- package/dist/lib/routes/settings.js +187 -0
- package/dist/lib/routes/settings.js.map +1 -0
- package/dist/lib/tenant-scope.d.ts.map +1 -1
- package/dist/lib/tenant-scope.js +2 -0
- package/dist/lib/tenant-scope.js.map +1 -1
- package/package.json +22 -22
- package/prisma/migrations/20260620051144_add_encrypted_user_settings/migration.sql +24 -0
- package/prisma/migrations/20260620120000_add_blocked_users/migration.sql +29 -0
- package/prisma/schema.prisma +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/realtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// CONTRACT: stable — coordinate changes.
|
|
2
|
+
//
|
|
3
|
+
// This file is the FROZEN WS1 contract for the Trellis RealtimeTransport seam.
|
|
4
|
+
// Every other workstream (WS2 AppSync infra, WS3 authorizer, WS4 push, WS5
|
|
5
|
+
// settings-sync, WS7 conformance) and the Skybber Flutter client bind to the
|
|
6
|
+
// exact signatures below. Any change after WS1 merges is a BREAKING change
|
|
7
|
+
// requiring a coordinated version bump and re-fan-out. See
|
|
8
|
+
// plans/appsync-skybber/00b-integration-and-frozen-contract.md §2.
|
|
9
|
+
//
|
|
10
|
+
// HARD RULE: nothing in apps/api/src/lib/realtime/** may import an AWS SDK
|
|
11
|
+
// (`@aws-sdk/*`, `aws-appsync`, `aws-amplify`) or a socket library. Enforced by
|
|
12
|
+
// test/unit/realtime/no-aws-import.test.ts.
|
|
13
|
+
/** Encode a wakeup envelope to its canonical content-free byte form. */
|
|
14
|
+
export function encodeWakeup(e) {
|
|
15
|
+
if (e.v !== 1) {
|
|
16
|
+
throw new Error(`encodeWakeup: unsupported version ${String(e.v)}`);
|
|
17
|
+
}
|
|
18
|
+
// Canonical, field-ordered JSON — no free-form passthrough.
|
|
19
|
+
const canonical = { v: 1, kind: e.kind };
|
|
20
|
+
if (e.changeToken !== undefined)
|
|
21
|
+
canonical.changeToken = e.changeToken;
|
|
22
|
+
return new TextEncoder().encode(JSON.stringify(canonical));
|
|
23
|
+
}
|
|
24
|
+
/** Decode a wakeup envelope. Throws on unknown fields or malformed input. */
|
|
25
|
+
export function decodeWakeup(b) {
|
|
26
|
+
let parsed;
|
|
27
|
+
try {
|
|
28
|
+
parsed = JSON.parse(new TextDecoder().decode(b));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
throw new Error("decodeWakeup: not valid JSON");
|
|
32
|
+
}
|
|
33
|
+
if (typeof parsed !== "object" || parsed === null) {
|
|
34
|
+
throw new Error("decodeWakeup: not an object");
|
|
35
|
+
}
|
|
36
|
+
const obj = parsed;
|
|
37
|
+
const allowed = new Set(["v", "kind", "changeToken"]);
|
|
38
|
+
for (const key of Object.keys(obj)) {
|
|
39
|
+
if (!allowed.has(key)) {
|
|
40
|
+
throw new Error(`decodeWakeup: unknown field "${key}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (obj.v !== 1) {
|
|
44
|
+
throw new Error("decodeWakeup: unsupported version");
|
|
45
|
+
}
|
|
46
|
+
if (typeof obj.kind !== "string") {
|
|
47
|
+
throw new Error("decodeWakeup: missing/invalid kind");
|
|
48
|
+
}
|
|
49
|
+
if (obj.changeToken !== undefined && typeof obj.changeToken !== "string") {
|
|
50
|
+
throw new Error("decodeWakeup: invalid changeToken");
|
|
51
|
+
}
|
|
52
|
+
const env = { v: 1, kind: obj.kind };
|
|
53
|
+
if (obj.changeToken !== undefined)
|
|
54
|
+
env.changeToken = obj.changeToken;
|
|
55
|
+
return env;
|
|
56
|
+
}
|
|
57
|
+
/** Narrowing helper: does this store also provide the change-cursor capability? */
|
|
58
|
+
export function supportsChangeCursor(store) {
|
|
59
|
+
return (typeof store.listChangedSince === "function");
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/realtime/types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,2DAA2D;AAC3D,mEAAmE;AACnE,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,4CAA4C;AAuI5C,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAAC,CAAiB;IAC5C,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,4DAA4D;IAC5D,MAAM,SAAS,GAA4B,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACvE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,GAAG,GAAmB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAmB,EAAE,CAAC;IACpE,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAkFD,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAClC,KAAmB;IAEnB,OAAO,CACL,OAAQ,KAAoC,CAAC,gBAAgB,KAAK,UAAU,CAC7E,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/routes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/routes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyDH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAwPxC,eAAO,MAAM,MAAM,EAAE,KAAK,EAkBzB,CAAC;AAGF,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/lib/routes/index.js
CHANGED
|
@@ -62,6 +62,7 @@ import { productTaxonomyRoutes } from "./products.js";
|
|
|
62
62
|
import { notificationsRoutes } from "./notifications.js";
|
|
63
63
|
import { parentalControlRoutes } from "./parental-controls.js";
|
|
64
64
|
import { sentimentsRoutes } from "./sentiments.js";
|
|
65
|
+
import { settingsRoutes } from "./settings.js";
|
|
65
66
|
import { taxonomyRoutes } from "./taxonomy.js";
|
|
66
67
|
import { taxonomyAnalyticsRoutes } from "./taxonomy-analytics.js";
|
|
67
68
|
import { tenantRoutes } from "./tenants.js";
|
|
@@ -169,6 +170,8 @@ const coreRoutes = [
|
|
|
169
170
|
...commentsRoutes,
|
|
170
171
|
// Sentiments/Reactions
|
|
171
172
|
...sentimentsRoutes,
|
|
173
|
+
// Realtime / server-blind settings sync
|
|
174
|
+
...settingsRoutes,
|
|
172
175
|
// Media uploads
|
|
173
176
|
...mediaRoutes,
|
|
174
177
|
// Media metadata privacy controls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/routes/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/routes/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encrypted Settings Routes (WS5 — state-sync).
|
|
3
|
+
*
|
|
4
|
+
* GET/PUT /api/settings/:namespace — server-blind, session-scoped sync of a
|
|
5
|
+
* user's per-namespace encrypted setting blob.
|
|
6
|
+
*
|
|
7
|
+
* Security posture:
|
|
8
|
+
* - Session-scoped to `session.userId`; a user can only read/write THEIR OWN
|
|
9
|
+
* blob. The blob has no tenantId — `auth.activeTenantId` is used only to
|
|
10
|
+
* scope the publish-on-change realtime channel.
|
|
11
|
+
* - Server-blind: the ciphertext is never parsed or logged.
|
|
12
|
+
* - Optimistic concurrency: stale version -> 409 with current; If-None-Match
|
|
13
|
+
* matching the current version -> 304.
|
|
14
|
+
*/
|
|
15
|
+
import type { Route } from "./types.js";
|
|
16
|
+
export declare const settingsRoutes: Route[];
|
|
17
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/lib/routes/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAqBH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAqCxC,eAAO,MAAM,cAAc,EAAE,KAAK,EAqMjC,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encrypted Settings Routes (WS5 — state-sync).
|
|
3
|
+
*
|
|
4
|
+
* GET/PUT /api/settings/:namespace — server-blind, session-scoped sync of a
|
|
5
|
+
* user's per-namespace encrypted setting blob.
|
|
6
|
+
*
|
|
7
|
+
* Security posture:
|
|
8
|
+
* - Session-scoped to `session.userId`; a user can only read/write THEIR OWN
|
|
9
|
+
* blob. The blob has no tenantId — `auth.activeTenantId` is used only to
|
|
10
|
+
* scope the publish-on-change realtime channel.
|
|
11
|
+
* - Server-blind: the ciphertext is never parsed or logged.
|
|
12
|
+
* - Optimistic concurrency: stale version -> 409 with current; If-None-Match
|
|
13
|
+
* matching the current version -> 304.
|
|
14
|
+
*/
|
|
15
|
+
import { authMiddleware } from "../auth/auth-middleware.js";
|
|
16
|
+
import { createPrisma } from "../../db.js";
|
|
17
|
+
import { BlobTooLargeError, UnknownNamespaceError, } from "../encrypted-settings/types.js";
|
|
18
|
+
import { EncryptedSettingsHandler } from "../encrypted-settings/encrypted-settings-handler.js";
|
|
19
|
+
import { PrismaEncryptedSettingsStore } from "../encrypted-settings/encrypted-settings-store.js";
|
|
20
|
+
import { resolveSettingsConfig } from "../encrypted-settings/config.js";
|
|
21
|
+
import { getLogger } from "../logger.js";
|
|
22
|
+
import { corsMiddleware, csrfMiddleware, rateLimitMiddleware, } from "../middleware.js";
|
|
23
|
+
import { SecurityHeaders } from "../security-headers.js";
|
|
24
|
+
import { SessionManager } from "../session-cookie.js";
|
|
25
|
+
import { Validator } from "../validation.js";
|
|
26
|
+
const NAMESPACE_PATTERN = /^\/api\/settings\/([^/]+)$/;
|
|
27
|
+
// Track C — offline backfill cursor. A LITERAL path; it MUST be registered
|
|
28
|
+
// before NAMESPACE_PATTERN so "changes" is never captured as a `:namespace`
|
|
29
|
+
// (Hono runs matching handlers in registration order, first Response wins).
|
|
30
|
+
const CHANGES_PATTERN = /^\/api\/settings\/changes$/;
|
|
31
|
+
/** Parse the opaque `?since=<cursor>` version high-watermark. Missing/invalid
|
|
32
|
+
* -> 0 (a full backfill), never throws. The cursor is an opaque integer. */
|
|
33
|
+
function sinceFrom(url) {
|
|
34
|
+
const raw = url.searchParams.get("since");
|
|
35
|
+
if (raw === null)
|
|
36
|
+
return 0;
|
|
37
|
+
const n = Number.parseInt(raw, 10);
|
|
38
|
+
return Number.isFinite(n) && n >= 0 ? n : 0;
|
|
39
|
+
}
|
|
40
|
+
/** Extract the `:namespace` path param (decoded). */
|
|
41
|
+
function namespaceFrom(pathname) {
|
|
42
|
+
const m = pathname.match(NAMESPACE_PATTERN);
|
|
43
|
+
if (!m)
|
|
44
|
+
return null;
|
|
45
|
+
try {
|
|
46
|
+
return decodeURIComponent(m[1]);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Build the handler from resolved Env. The store is Prisma-backed; the
|
|
53
|
+
* transport comes from the WS1 seam (poll/noop/injected). */
|
|
54
|
+
function buildHandler(env) {
|
|
55
|
+
const db = createPrisma(env);
|
|
56
|
+
const store = new PrismaEncryptedSettingsStore(db);
|
|
57
|
+
const config = resolveSettingsConfig(env);
|
|
58
|
+
return new EncryptedSettingsHandler(store, config, env.realtimeTransport);
|
|
59
|
+
}
|
|
60
|
+
export const settingsRoutes = [
|
|
61
|
+
// GET /api/settings/changes?since=<cursor> — Track C offline-backfill cursor.
|
|
62
|
+
// Session-scoped; returns METADATA ONLY (never ciphertext) for namespaces whose
|
|
63
|
+
// version advanced past the cursor. Registered FIRST so the literal "changes"
|
|
64
|
+
// path wins over the :namespace capture.
|
|
65
|
+
{
|
|
66
|
+
path: CHANGES_PATTERN,
|
|
67
|
+
method: "GET",
|
|
68
|
+
handler: async (request, env, { url }) => {
|
|
69
|
+
const sessionManager = new SessionManager();
|
|
70
|
+
const securityHeaders = new SecurityHeaders(env);
|
|
71
|
+
const logger = getLogger();
|
|
72
|
+
const validator = new Validator();
|
|
73
|
+
const session = await sessionManager.getSession(request, env.SESSION_SECRET, env);
|
|
74
|
+
if (!session) {
|
|
75
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "Unauthorized" }), { status: 401, headers: { "content-type": "application/json" } });
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const handler = buildHandler(env);
|
|
79
|
+
const response = await handler.handleChanges(session.userId, sinceFrom(url));
|
|
80
|
+
return securityHeaders.addSecurityHeaders(response);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
logger.error("Error listing setting changes:", error);
|
|
84
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: validator.sanitizeError(error) }), { status: 500, headers: { "content-type": "application/json" } });
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
middleware: [
|
|
88
|
+
corsMiddleware(),
|
|
89
|
+
rateLimitMiddleware({ maxRequests: 120, windowMs: 60000 }),
|
|
90
|
+
],
|
|
91
|
+
description: "List setting namespaces changed since a cursor (metadata only)",
|
|
92
|
+
},
|
|
93
|
+
// GET /api/settings/:namespace — read the current blob (or 304 if unchanged).
|
|
94
|
+
{
|
|
95
|
+
path: NAMESPACE_PATTERN,
|
|
96
|
+
method: "GET",
|
|
97
|
+
handler: async (request, env, { pathname }) => {
|
|
98
|
+
const sessionManager = new SessionManager();
|
|
99
|
+
const securityHeaders = new SecurityHeaders(env);
|
|
100
|
+
const logger = getLogger();
|
|
101
|
+
const validator = new Validator();
|
|
102
|
+
const session = await sessionManager.getSession(request, env.SESSION_SECRET, env);
|
|
103
|
+
if (!session) {
|
|
104
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "Unauthorized" }), { status: 401, headers: { "content-type": "application/json" } });
|
|
105
|
+
}
|
|
106
|
+
const namespace = namespaceFrom(pathname);
|
|
107
|
+
if (namespace === null) {
|
|
108
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "NOT_FOUND" }), { status: 404, headers: { "content-type": "application/json" } });
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const handler = buildHandler(env);
|
|
112
|
+
const response = await handler.handleGet(session.userId, namespace, request.headers.get("if-none-match"));
|
|
113
|
+
return securityHeaders.addSecurityHeaders(response);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (error instanceof UnknownNamespaceError) {
|
|
117
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "NOT_FOUND", message: "Unknown namespace" }), { status: 404, headers: { "content-type": "application/json" } });
|
|
118
|
+
}
|
|
119
|
+
logger.error("Error reading encrypted setting:", error);
|
|
120
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: validator.sanitizeError(error) }), { status: 500, headers: { "content-type": "application/json" } });
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
middleware: [
|
|
124
|
+
corsMiddleware(),
|
|
125
|
+
rateLimitMiddleware({ maxRequests: 120, windowMs: 60000 }),
|
|
126
|
+
],
|
|
127
|
+
description: "Get encrypted setting blob",
|
|
128
|
+
},
|
|
129
|
+
// PUT /api/settings/:namespace — write the blob with optimistic concurrency.
|
|
130
|
+
{
|
|
131
|
+
path: NAMESPACE_PATTERN,
|
|
132
|
+
method: "PUT",
|
|
133
|
+
handler: async (request, env, { pathname }) => {
|
|
134
|
+
const sessionManager = new SessionManager();
|
|
135
|
+
const securityHeaders = new SecurityHeaders(env);
|
|
136
|
+
const logger = getLogger();
|
|
137
|
+
const validator = new Validator();
|
|
138
|
+
const session = await sessionManager.getSession(request, env.SESSION_SECRET, env);
|
|
139
|
+
if (!session) {
|
|
140
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "Unauthorized" }), { status: 401, headers: { "content-type": "application/json" } });
|
|
141
|
+
}
|
|
142
|
+
const auth = await authMiddleware(request, env);
|
|
143
|
+
if (!auth || !auth.activeTenantId) {
|
|
144
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "Unauthorized" }), { status: 401, headers: { "content-type": "application/json" } });
|
|
145
|
+
}
|
|
146
|
+
const namespace = namespaceFrom(pathname);
|
|
147
|
+
if (namespace === null) {
|
|
148
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "NOT_FOUND" }), { status: 404, headers: { "content-type": "application/json" } });
|
|
149
|
+
}
|
|
150
|
+
let body;
|
|
151
|
+
try {
|
|
152
|
+
body = await request.json();
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return securityHeaders.createSecureResponse(JSON.stringify({
|
|
156
|
+
error: "VALIDATION_ERROR",
|
|
157
|
+
message: "Invalid JSON body",
|
|
158
|
+
}), { status: 400, headers: { "content-type": "application/json" } });
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
const handler = buildHandler(env);
|
|
162
|
+
const response = await handler.handlePut(session.userId, auth.activeTenantId, namespace, body);
|
|
163
|
+
return securityHeaders.addSecurityHeaders(response);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (error instanceof UnknownNamespaceError) {
|
|
167
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: "NOT_FOUND", message: "Unknown namespace" }), { status: 404, headers: { "content-type": "application/json" } });
|
|
168
|
+
}
|
|
169
|
+
if (error instanceof BlobTooLargeError) {
|
|
170
|
+
return securityHeaders.createSecureResponse(JSON.stringify({
|
|
171
|
+
error: "PAYLOAD_TOO_LARGE",
|
|
172
|
+
message: "Encrypted setting blob exceeds size limit",
|
|
173
|
+
}), { status: 413, headers: { "content-type": "application/json" } });
|
|
174
|
+
}
|
|
175
|
+
logger.error("Error writing encrypted setting:", error);
|
|
176
|
+
return securityHeaders.createSecureResponse(JSON.stringify({ error: validator.sanitizeError(error) }), { status: 500, headers: { "content-type": "application/json" } });
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
middleware: [
|
|
180
|
+
corsMiddleware(),
|
|
181
|
+
csrfMiddleware(),
|
|
182
|
+
rateLimitMiddleware({ maxRequests: 30, windowMs: 60000 }),
|
|
183
|
+
],
|
|
184
|
+
description: "Write encrypted setting blob",
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/lib/routes/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-scope.d.ts","sourceRoot":"","sources":["../../src/lib/tenant-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAOH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3D,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,GAAG,SAAyC,GACtD,eAAe,CAEjB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tenant-scope.d.ts","sourceRoot":"","sources":["../../src/lib/tenant-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAOH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3D,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,GAAG,SAAyC,GACtD,eAAe,CAEjB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAwBnD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CA2DtD,CAAC;AAqBH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAG7D;AAYD,+EAA+E;AAC/E,MAAM,MAAM,SAAS,GACjB;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,SAAS,CAqDZ;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe;;;;EAyCzD"}
|
package/dist/lib/tenant-scope.js
CHANGED
|
@@ -48,6 +48,7 @@ export const TENANT_SCOPED_MODELS = new Set([
|
|
|
48
48
|
"PostComment",
|
|
49
49
|
"Entity",
|
|
50
50
|
"Notification",
|
|
51
|
+
"BlockedUser",
|
|
51
52
|
"Group",
|
|
52
53
|
"GroupMember",
|
|
53
54
|
"EntityOwnership",
|
|
@@ -100,6 +101,7 @@ export const UNSCOPED_MODELS = new Map([
|
|
|
100
101
|
["UploadSession", "user"],
|
|
101
102
|
["MfaEnrollment", "user"],
|
|
102
103
|
["UserEncryptionKey", "user"],
|
|
104
|
+
["EncryptedUserSetting", "user"],
|
|
103
105
|
["Consent", "user"],
|
|
104
106
|
["NotificationPreference", "user"],
|
|
105
107
|
// Generalized report model (Surveillance-hardening Phase 0, E3; folds in the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-scope.js","sourceRoot":"","sources":["../../src/lib/tenant-scope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tenant-scope.js","sourceRoot":"","sources":["../../src/lib/tenant-scope.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@de-otio/trellis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -49,22 +49,22 @@
|
|
|
49
49
|
"@aws-lambda-powertools/logger": "^2.32.0",
|
|
50
50
|
"@aws-lambda-powertools/metrics": "^2.32.0",
|
|
51
51
|
"@aws-lambda-powertools/parameters": "^2.33.1",
|
|
52
|
-
"@aws-sdk/client-cloudwatch": "^3.
|
|
53
|
-
"@aws-sdk/client-cloudwatch-logs": "^3.
|
|
54
|
-
"@aws-sdk/client-cognito-identity-provider": "^3.
|
|
55
|
-
"@aws-sdk/client-dynamodb": "^3.
|
|
56
|
-
"@aws-sdk/client-kms": "^3.
|
|
57
|
-
"@aws-sdk/client-s3": "^3.
|
|
58
|
-
"@aws-sdk/client-secrets-manager": "^3.
|
|
59
|
-
"@aws-sdk/client-ses": "^3.
|
|
60
|
-
"@aws-sdk/client-sns": "^3.
|
|
61
|
-
"@aws-sdk/client-sqs": "^3.
|
|
62
|
-
"@aws-sdk/client-ssm": "^3.
|
|
63
|
-
"@aws-sdk/s3-request-presigner": "^3.
|
|
64
|
-
"@aws-sdk/util-dynamodb": "^3.996.
|
|
52
|
+
"@aws-sdk/client-cloudwatch": "^3.1071.0",
|
|
53
|
+
"@aws-sdk/client-cloudwatch-logs": "^3.1071.0",
|
|
54
|
+
"@aws-sdk/client-cognito-identity-provider": "^3.1071.0",
|
|
55
|
+
"@aws-sdk/client-dynamodb": "^3.1071.0",
|
|
56
|
+
"@aws-sdk/client-kms": "^3.1071.0",
|
|
57
|
+
"@aws-sdk/client-s3": "^3.1071.0",
|
|
58
|
+
"@aws-sdk/client-secrets-manager": "^3.1071.0",
|
|
59
|
+
"@aws-sdk/client-ses": "^3.1071.0",
|
|
60
|
+
"@aws-sdk/client-sns": "^3.1071.0",
|
|
61
|
+
"@aws-sdk/client-sqs": "^3.1071.0",
|
|
62
|
+
"@aws-sdk/client-ssm": "^3.1071.0",
|
|
63
|
+
"@aws-sdk/s3-request-presigner": "^3.1071.0",
|
|
64
|
+
"@aws-sdk/util-dynamodb": "^3.996.5",
|
|
65
65
|
"@de-otio/saas-foundation": "^0.3.0",
|
|
66
66
|
"@de-otio/trellis-extension-api": "^0.3.0",
|
|
67
|
-
"@de-otio/vestibulum": "^0.3.
|
|
67
|
+
"@de-otio/vestibulum": "^0.3.2",
|
|
68
68
|
"@fedify/fedify": "2.2.5",
|
|
69
69
|
"@prisma/adapter-pg": "^7.8.0",
|
|
70
70
|
"@prisma/client": "^7.8.0",
|
|
@@ -78,21 +78,21 @@
|
|
|
78
78
|
"zod": "^4.4.3"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"@aws-sdk/client-bedrock-agent-runtime": "^3.
|
|
82
|
-
"@aws-sdk/client-cost-explorer": "^3.
|
|
83
|
-
"@aws-sdk/client-ecs": "^3.
|
|
84
|
-
"@aws-sdk/client-lambda": "^3.
|
|
81
|
+
"@aws-sdk/client-bedrock-agent-runtime": "^3.1071.0",
|
|
82
|
+
"@aws-sdk/client-cost-explorer": "^3.1071.0",
|
|
83
|
+
"@aws-sdk/client-ecs": "^3.1071.0",
|
|
84
|
+
"@aws-sdk/client-lambda": "^3.1071.0",
|
|
85
85
|
"@types/aws-lambda": "^8.10.162",
|
|
86
86
|
"@types/js-yaml": "^4.0.9",
|
|
87
87
|
"@types/node": "^25.9.3",
|
|
88
88
|
"@types/pg": "^8.18.0",
|
|
89
|
-
"@types/sharp": "^0.
|
|
90
|
-
"@vitest/coverage-v8": "^4.1.
|
|
89
|
+
"@types/sharp": "^0.32.0",
|
|
90
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
91
91
|
"@vitest/ui": "^4.1.8",
|
|
92
92
|
"aws-sdk-client-mock": "^4.1.0",
|
|
93
93
|
"esbuild": "^0.28.1",
|
|
94
94
|
"form-data": "^4.0.1",
|
|
95
|
-
"mailparser": "^3.9.
|
|
95
|
+
"mailparser": "^3.9.11",
|
|
96
96
|
"prettier": "^3.8.4",
|
|
97
97
|
"prisma": "^7.8.0",
|
|
98
98
|
"tsx": "^4.22.4",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- WS5 — encrypted-settings state-sync. Server-blind per-namespace encrypted
|
|
2
|
+
-- setting blob with optimistic-concurrency version + cascade on user delete.
|
|
3
|
+
|
|
4
|
+
-- CreateTable
|
|
5
|
+
CREATE TABLE "encrypted_user_settings" (
|
|
6
|
+
"id" TEXT NOT NULL,
|
|
7
|
+
"user_id" TEXT NOT NULL,
|
|
8
|
+
"namespace" TEXT NOT NULL,
|
|
9
|
+
"ciphertext" TEXT NOT NULL,
|
|
10
|
+
"version" INTEGER NOT NULL DEFAULT 1,
|
|
11
|
+
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
12
|
+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
+
|
|
14
|
+
CONSTRAINT "encrypted_user_settings_pkey" PRIMARY KEY ("id")
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
-- CreateIndex
|
|
18
|
+
CREATE INDEX "encrypted_user_settings_user_id_idx" ON "encrypted_user_settings"("user_id");
|
|
19
|
+
|
|
20
|
+
-- CreateIndex
|
|
21
|
+
CREATE UNIQUE INDEX "encrypted_user_settings_user_id_namespace_key" ON "encrypted_user_settings"("user_id", "namespace");
|
|
22
|
+
|
|
23
|
+
-- AddForeignKey
|
|
24
|
+
ALTER TABLE "encrypted_user_settings" ADD CONSTRAINT "encrypted_user_settings_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- Track D — block-list store for the realtime delivery FLOOR. Directed,
|
|
2
|
+
-- tenant-scoped block edges (blocker has blocked blocked). Consulted by
|
|
3
|
+
-- BlockStore.isBlocked to drop a blocked sender's wakeup at the floor.
|
|
4
|
+
|
|
5
|
+
-- CreateTable
|
|
6
|
+
CREATE TABLE "blocked_users" (
|
|
7
|
+
"id" TEXT NOT NULL,
|
|
8
|
+
"tenant_id" TEXT NOT NULL,
|
|
9
|
+
"blocker_id" TEXT NOT NULL,
|
|
10
|
+
"blocked_id" TEXT NOT NULL,
|
|
11
|
+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
12
|
+
|
|
13
|
+
CONSTRAINT "blocked_users_pkey" PRIMARY KEY ("id")
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
-- CreateIndex
|
|
17
|
+
CREATE INDEX "blocked_users_tenant_id_blocker_id_idx" ON "blocked_users"("tenant_id", "blocker_id");
|
|
18
|
+
|
|
19
|
+
-- CreateIndex
|
|
20
|
+
CREATE UNIQUE INDEX "blocked_users_tenant_id_blocker_id_blocked_id_key" ON "blocked_users"("tenant_id", "blocker_id", "blocked_id");
|
|
21
|
+
|
|
22
|
+
-- AddForeignKey
|
|
23
|
+
ALTER TABLE "blocked_users" ADD CONSTRAINT "blocked_users_tenant_id_fkey" FOREIGN KEY ("tenant_id") REFERENCES "tenants"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
24
|
+
|
|
25
|
+
-- AddForeignKey
|
|
26
|
+
ALTER TABLE "blocked_users" ADD CONSTRAINT "blocked_users_blocker_id_fkey" FOREIGN KEY ("blocker_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
27
|
+
|
|
28
|
+
-- AddForeignKey
|
|
29
|
+
ALTER TABLE "blocked_users" ADD CONSTRAINT "blocked_users_blocked_id_fkey" FOREIGN KEY ("blocked_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
package/prisma/schema.prisma
CHANGED
|
@@ -360,6 +360,11 @@ model User {
|
|
|
360
360
|
notifications Notification[]
|
|
361
361
|
notificationPreference NotificationPreference?
|
|
362
362
|
|
|
363
|
+
// Realtime / server-blind settings sync
|
|
364
|
+
encryptedSettings EncryptedUserSetting[]
|
|
365
|
+
blocksInitiated BlockedUser[] @relation("BlockedUserBlocker")
|
|
366
|
+
blockedBy BlockedUser[] @relation("BlockedUserBlocked")
|
|
367
|
+
|
|
363
368
|
// Connection codes (out-of-band invite mechanism)
|
|
364
369
|
createdConnectionCodes ConnectionCode[] @relation("ConnectionCodeCreator")
|
|
365
370
|
redeemedConnectionCodes ConnectionCodeRedemption[]
|
|
@@ -1748,6 +1753,7 @@ model Tenant {
|
|
|
1748
1753
|
connectionCodes ConnectionCode[]
|
|
1749
1754
|
connectionCodeRedemptions ConnectionCodeRedemption[]
|
|
1750
1755
|
notifications Notification[]
|
|
1756
|
+
blockedUsers BlockedUser[]
|
|
1751
1757
|
|
|
1752
1758
|
// Denormalized tenant_id on by-relation children (P1 — for direct RLS).
|
|
1753
1759
|
postMedia PostMedia[]
|
|
@@ -2013,3 +2019,37 @@ enum EntityRelationshipStatus {
|
|
|
2013
2019
|
CONFIRMED
|
|
2014
2020
|
REJECTED
|
|
2015
2021
|
}
|
|
2022
|
+
|
|
2023
|
+
// Realtime / server-blind settings sync — opaque AEAD blob the server cannot read.
|
|
2024
|
+
model EncryptedUserSetting {
|
|
2025
|
+
id String @id @default(cuid())
|
|
2026
|
+
userId String @map("user_id")
|
|
2027
|
+
namespace String // allowlisted, e.g. "feed_filters"
|
|
2028
|
+
ciphertext String @db.Text // opaque AEAD blob; the server cannot read it
|
|
2029
|
+
version Int @default(1) // monotonic per (user, namespace)
|
|
2030
|
+
updatedAt DateTime @updatedAt @map("updated_at")
|
|
2031
|
+
createdAt DateTime @default(now()) @map("created_at")
|
|
2032
|
+
|
|
2033
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
2034
|
+
|
|
2035
|
+
@@unique([userId, namespace])
|
|
2036
|
+
@@index([userId])
|
|
2037
|
+
@@map("encrypted_user_settings")
|
|
2038
|
+
}
|
|
2039
|
+
|
|
2040
|
+
// Realtime delivery safety floor — blocked-sender relation (who blocks whom).
|
|
2041
|
+
model BlockedUser {
|
|
2042
|
+
id String @id @default(cuid())
|
|
2043
|
+
tenantId String @map("tenant_id")
|
|
2044
|
+
blockerId String @map("blocker_id")
|
|
2045
|
+
blockedId String @map("blocked_id")
|
|
2046
|
+
createdAt DateTime @default(now()) @map("created_at")
|
|
2047
|
+
|
|
2048
|
+
tenant Tenant @relation(fields: [tenantId], references: [id], onDelete: Cascade)
|
|
2049
|
+
blocker User @relation("BlockedUserBlocker", fields: [blockerId], references: [id], onDelete: Cascade)
|
|
2050
|
+
blocked User @relation("BlockedUserBlocked", fields: [blockedId], references: [id], onDelete: Cascade)
|
|
2051
|
+
|
|
2052
|
+
@@unique([tenantId, blockerId, blockedId])
|
|
2053
|
+
@@index([tenantId, blockerId])
|
|
2054
|
+
@@map("blocked_users")
|
|
2055
|
+
}
|