@de-otio/trellis 0.10.11 → 0.12.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.
Files changed (199) hide show
  1. package/dist/env.d.ts +232 -0
  2. package/dist/env.d.ts.map +1 -1
  3. package/dist/env.js +221 -0
  4. package/dist/env.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/lambda/media-completion-worker.d.ts +175 -0
  10. package/dist/lambda/media-completion-worker.d.ts.map +1 -0
  11. package/dist/lambda/media-completion-worker.js +373 -0
  12. package/dist/lambda/media-completion-worker.js.map +1 -0
  13. package/dist/lambda/media-processing-worker.d.ts +172 -1
  14. package/dist/lambda/media-processing-worker.d.ts.map +1 -1
  15. package/dist/lambda/media-processing-worker.js +343 -49
  16. package/dist/lambda/media-processing-worker.js.map +1 -1
  17. package/dist/lib/app.d.ts.map +1 -1
  18. package/dist/lib/app.js +5 -0
  19. package/dist/lib/app.js.map +1 -1
  20. package/dist/lib/encrypted-settings/config.d.ts +13 -0
  21. package/dist/lib/encrypted-settings/config.d.ts.map +1 -0
  22. package/dist/lib/encrypted-settings/config.js +19 -0
  23. package/dist/lib/encrypted-settings/config.js.map +1 -0
  24. package/dist/lib/encrypted-settings/encrypted-settings-handler.d.ts +57 -0
  25. package/dist/lib/encrypted-settings/encrypted-settings-handler.d.ts.map +1 -0
  26. package/dist/lib/encrypted-settings/encrypted-settings-handler.js +178 -0
  27. package/dist/lib/encrypted-settings/encrypted-settings-handler.js.map +1 -0
  28. package/dist/lib/encrypted-settings/encrypted-settings-store.d.ts +110 -0
  29. package/dist/lib/encrypted-settings/encrypted-settings-store.d.ts.map +1 -0
  30. package/dist/lib/encrypted-settings/encrypted-settings-store.js +103 -0
  31. package/dist/lib/encrypted-settings/encrypted-settings-store.js.map +1 -0
  32. package/dist/lib/encrypted-settings/types.d.ts +26 -0
  33. package/dist/lib/encrypted-settings/types.d.ts.map +1 -0
  34. package/dist/lib/encrypted-settings/types.js +27 -0
  35. package/dist/lib/encrypted-settings/types.js.map +1 -0
  36. package/dist/lib/exif-stripper.d.ts +37 -22
  37. package/dist/lib/exif-stripper.d.ts.map +1 -1
  38. package/dist/lib/exif-stripper.js +101 -41
  39. package/dist/lib/exif-stripper.js.map +1 -1
  40. package/dist/lib/media/cas-keys.d.ts +63 -0
  41. package/dist/lib/media/cas-keys.d.ts.map +1 -0
  42. package/dist/lib/media/cas-keys.js +102 -0
  43. package/dist/lib/media/cas-keys.js.map +1 -0
  44. package/dist/lib/media/classify-worker-error.d.ts +48 -0
  45. package/dist/lib/media/classify-worker-error.d.ts.map +1 -0
  46. package/dist/lib/media/classify-worker-error.js +319 -0
  47. package/dist/lib/media/classify-worker-error.js.map +1 -0
  48. package/dist/lib/media/dedupe-key.d.ts +29 -0
  49. package/dist/lib/media/dedupe-key.d.ts.map +1 -0
  50. package/dist/lib/media/dedupe-key.js +49 -0
  51. package/dist/lib/media/dedupe-key.js.map +1 -0
  52. package/dist/lib/media/duration-cap.d.ts +30 -0
  53. package/dist/lib/media/duration-cap.d.ts.map +1 -0
  54. package/dist/lib/media/duration-cap.js +37 -0
  55. package/dist/lib/media/duration-cap.js.map +1 -0
  56. package/dist/lib/media/ffmpeg-args.d.ts +83 -0
  57. package/dist/lib/media/ffmpeg-args.d.ts.map +1 -0
  58. package/dist/lib/media/ffmpeg-args.js +119 -0
  59. package/dist/lib/media/ffmpeg-args.js.map +1 -0
  60. package/dist/lib/media/media-ports.d.ts +126 -0
  61. package/dist/lib/media/media-ports.d.ts.map +1 -0
  62. package/dist/lib/media/media-ports.js +129 -0
  63. package/dist/lib/media/media-ports.js.map +1 -0
  64. package/dist/lib/media/media-upsert.d.ts +55 -0
  65. package/dist/lib/media/media-upsert.d.ts.map +1 -0
  66. package/dist/lib/media/media-upsert.js +38 -0
  67. package/dist/lib/media/media-upsert.js.map +1 -0
  68. package/dist/lib/media/moderation-provider.d.ts +111 -0
  69. package/dist/lib/media/moderation-provider.d.ts.map +1 -0
  70. package/dist/lib/media/moderation-provider.js +130 -0
  71. package/dist/lib/media/moderation-provider.js.map +1 -0
  72. package/dist/lib/media/moderation-resolved-payload.d.ts +48 -0
  73. package/dist/lib/media/moderation-resolved-payload.d.ts.map +1 -0
  74. package/dist/lib/media/moderation-resolved-payload.js +37 -0
  75. package/dist/lib/media/moderation-resolved-payload.js.map +1 -0
  76. package/dist/lib/media/moderation-status.d.ts +98 -0
  77. package/dist/lib/media/moderation-status.d.ts.map +1 -0
  78. package/dist/lib/media/moderation-status.js +122 -0
  79. package/dist/lib/media/moderation-status.js.map +1 -0
  80. package/dist/lib/media/processing-types.d.ts +45 -0
  81. package/dist/lib/media/processing-types.d.ts.map +1 -0
  82. package/dist/lib/media/processing-types.js +9 -0
  83. package/dist/lib/media/processing-types.js.map +1 -0
  84. package/dist/lib/media/promote-decision.d.ts +64 -0
  85. package/dist/lib/media/promote-decision.d.ts.map +1 -0
  86. package/dist/lib/media/promote-decision.js +76 -0
  87. package/dist/lib/media/promote-decision.js.map +1 -0
  88. package/dist/lib/media/quota-check.d.ts +22 -0
  89. package/dist/lib/media/quota-check.d.ts.map +1 -0
  90. package/dist/lib/media/quota-check.js +42 -0
  91. package/dist/lib/media/quota-check.js.map +1 -0
  92. package/dist/lib/media/quota-types.d.ts +15 -0
  93. package/dist/lib/media/quota-types.d.ts.map +1 -0
  94. package/dist/lib/media/quota-types.js +9 -0
  95. package/dist/lib/media/quota-types.js.map +1 -0
  96. package/dist/lib/media/route-upload.d.ts +58 -0
  97. package/dist/lib/media/route-upload.d.ts.map +1 -0
  98. package/dist/lib/media/route-upload.js +80 -0
  99. package/dist/lib/media/route-upload.js.map +1 -0
  100. package/dist/lib/media/serve-gate.d.ts +51 -0
  101. package/dist/lib/media/serve-gate.d.ts.map +1 -0
  102. package/dist/lib/media/serve-gate.js +68 -0
  103. package/dist/lib/media/serve-gate.js.map +1 -0
  104. package/dist/lib/media/tenant-resolution.d.ts +42 -0
  105. package/dist/lib/media/tenant-resolution.d.ts.map +1 -0
  106. package/dist/lib/media/tenant-resolution.js +45 -0
  107. package/dist/lib/media/tenant-resolution.js.map +1 -0
  108. package/dist/lib/media/text-moderation.d.ts +28 -0
  109. package/dist/lib/media/text-moderation.d.ts.map +1 -0
  110. package/dist/lib/media/text-moderation.js +62 -0
  111. package/dist/lib/media/text-moderation.js.map +1 -0
  112. package/dist/lib/media/track-verdict.d.ts +45 -0
  113. package/dist/lib/media/track-verdict.d.ts.map +1 -0
  114. package/dist/lib/media/track-verdict.js +52 -0
  115. package/dist/lib/media/track-verdict.js.map +1 -0
  116. package/dist/lib/media/transcript-moderation.d.ts +47 -0
  117. package/dist/lib/media/transcript-moderation.d.ts.map +1 -0
  118. package/dist/lib/media/transcript-moderation.js +70 -0
  119. package/dist/lib/media/transcript-moderation.js.map +1 -0
  120. package/dist/lib/media-handler.d.ts.map +1 -1
  121. package/dist/lib/media-handler.js +15 -9
  122. package/dist/lib/media-handler.js.map +1 -1
  123. package/dist/lib/notification-handler.d.ts +11 -4
  124. package/dist/lib/notification-handler.d.ts.map +1 -1
  125. package/dist/lib/notification-handler.js +161 -29
  126. package/dist/lib/notification-handler.js.map +1 -1
  127. package/dist/lib/post-handler.d.ts.map +1 -1
  128. package/dist/lib/post-handler.js +4 -1
  129. package/dist/lib/post-handler.js.map +1 -1
  130. package/dist/lib/realtime/block-store.d.ts +61 -0
  131. package/dist/lib/realtime/block-store.d.ts.map +1 -0
  132. package/dist/lib/realtime/block-store.js +0 -0
  133. package/dist/lib/realtime/block-store.js.map +1 -0
  134. package/dist/lib/realtime/channel.d.ts +34 -0
  135. package/dist/lib/realtime/channel.d.ts.map +1 -0
  136. package/dist/lib/realtime/channel.js +100 -0
  137. package/dist/lib/realtime/channel.js.map +1 -0
  138. package/dist/lib/realtime/delivery-policy.d.ts +51 -0
  139. package/dist/lib/realtime/delivery-policy.d.ts.map +1 -0
  140. package/dist/lib/realtime/delivery-policy.js +98 -0
  141. package/dist/lib/realtime/delivery-policy.js.map +1 -0
  142. package/dist/lib/realtime/index.d.ts +21 -0
  143. package/dist/lib/realtime/index.d.ts.map +1 -0
  144. package/dist/lib/realtime/index.js +39 -0
  145. package/dist/lib/realtime/index.js.map +1 -0
  146. package/dist/lib/realtime/no-op-transport.d.ts +10 -0
  147. package/dist/lib/realtime/no-op-transport.d.ts.map +1 -0
  148. package/dist/lib/realtime/no-op-transport.js +44 -0
  149. package/dist/lib/realtime/no-op-transport.js.map +1 -0
  150. package/dist/lib/realtime/poll-transport.d.ts +11 -0
  151. package/dist/lib/realtime/poll-transport.d.ts.map +1 -0
  152. package/dist/lib/realtime/poll-transport.js +68 -0
  153. package/dist/lib/realtime/poll-transport.js.map +1 -0
  154. package/dist/lib/realtime/push-notifier.d.ts +39 -0
  155. package/dist/lib/realtime/push-notifier.d.ts.map +1 -0
  156. package/dist/lib/realtime/push-notifier.js +76 -0
  157. package/dist/lib/realtime/push-notifier.js.map +1 -0
  158. package/dist/lib/realtime/realtime-transport.d.ts +2 -0
  159. package/dist/lib/realtime/realtime-transport.d.ts.map +1 -0
  160. package/dist/lib/realtime/realtime-transport.js +23 -0
  161. package/dist/lib/realtime/realtime-transport.js.map +1 -0
  162. package/dist/lib/realtime/setting-store.d.ts +30 -0
  163. package/dist/lib/realtime/setting-store.d.ts.map +1 -0
  164. package/dist/lib/realtime/setting-store.js +0 -0
  165. package/dist/lib/realtime/setting-store.js.map +1 -0
  166. package/dist/lib/realtime/types.d.ts +200 -0
  167. package/dist/lib/realtime/types.d.ts.map +1 -0
  168. package/dist/lib/realtime/types.js +61 -0
  169. package/dist/lib/realtime/types.js.map +1 -0
  170. package/dist/lib/routes/index.d.ts.map +1 -1
  171. package/dist/lib/routes/index.js +3 -0
  172. package/dist/lib/routes/index.js.map +1 -1
  173. package/dist/lib/routes/media.d.ts +21 -0
  174. package/dist/lib/routes/media.d.ts.map +1 -1
  175. package/dist/lib/routes/media.js +584 -483
  176. package/dist/lib/routes/media.js.map +1 -1
  177. package/dist/lib/routes/settings.d.ts +17 -0
  178. package/dist/lib/routes/settings.d.ts.map +1 -0
  179. package/dist/lib/routes/settings.js +187 -0
  180. package/dist/lib/routes/settings.js.map +1 -0
  181. package/dist/lib/services/image-normalizer.d.ts +64 -6
  182. package/dist/lib/services/image-normalizer.d.ts.map +1 -1
  183. package/dist/lib/services/image-normalizer.js +88 -6
  184. package/dist/lib/services/image-normalizer.js.map +1 -1
  185. package/dist/lib/services/media-upload-service.d.ts +2 -2
  186. package/dist/lib/services/media-upload-service.d.ts.map +1 -1
  187. package/dist/lib/services/media-upload-service.js +22 -21
  188. package/dist/lib/services/media-upload-service.js.map +1 -1
  189. package/dist/lib/tenant-scope.d.ts.map +1 -1
  190. package/dist/lib/tenant-scope.js +18 -1
  191. package/dist/lib/tenant-scope.js.map +1 -1
  192. package/package.json +23 -22
  193. package/prisma/migrations/20260620051144_add_encrypted_user_settings/migration.sql +24 -0
  194. package/prisma/migrations/20260620120000_add_blocked_users/migration.sql +29 -0
  195. package/prisma/migrations/20260625000000_media_tenant_scope_and_moderation_status/migration.sql +49 -0
  196. package/prisma/migrations/20260625000001_p0b_moderation_jobs/migration.sql +73 -0
  197. package/prisma/schema.prisma +133 -15
  198. package/src/lambda/media-completion-worker.ts +567 -0
  199. package/src/lambda/media-processing-worker.ts +508 -59
package/dist/env.d.ts CHANGED
@@ -6,6 +6,8 @@
6
6
  */
7
7
  import { type ResolveContext } from "@de-otio/saas-foundation/secrets";
8
8
  import type { KVNamespace, CloudflareQueue, R2Bucket, AnalyticsEngineDataset } from "./types/cloudflare-compat.js";
9
+ import type { NotificationType } from "@prisma/client";
10
+ import type { RealtimeTransport } from "./lib/realtime/index.js";
9
11
  /** Application environment — available to all route handlers */
10
12
  export interface Env {
11
13
  DATABASE_URL: string;
@@ -185,7 +187,237 @@ export interface Env {
185
187
  INTERACTION_EVENT_PRUNE_BATCH_SIZE?: string;
186
188
  /** Prune circuit-breaker: max iterations per run. Default 1000. */
187
189
  INTERACTION_EVENT_PRUNE_MAX_ITERATIONS?: string;
190
+ /**
191
+ * Feature gates for the realtime seam.
192
+ * realtimeTransport: which transport core selects as the FALLBACK when no
193
+ * provider is injected — "poll" (default) | "appsync-events".
194
+ * realtimePush: whether the createNotification() push hand-off is enabled
195
+ * (default false). The floor decision is computed either way; this only
196
+ * gates whether deliver() is invoked.
197
+ */
198
+ features: {
199
+ realtimeTransport: "poll" | "appsync-events";
200
+ realtimePush: boolean;
201
+ };
202
+ /**
203
+ * Manipulative re-engagement NotificationTypes denied to non-adult recipients
204
+ * by the delivery FLOOR (minor-protection). RUNTIME CONFIG per the
205
+ * threshold-secrecy invariant. Default EMPTY (v1 ships no such type).
206
+ */
207
+ REALTIME_REENGAGEMENT_TYPES: ReadonlySet<NotificationType>;
208
+ /** Setting-sync blob namespaces the deployment permits (allowlist). Empty = sync off. */
209
+ REALTIME_SETTING_NAMESPACES: string[];
210
+ /** Max bytes for a single encrypted setting blob (size cap; runtime config). */
211
+ REALTIME_SETTING_MAX_BYTES: number;
212
+ /**
213
+ * Retention window (days) for realtime connection/access logs. Treated like
214
+ * SecurityEvent (retention-bound), never durable ops data. Default short (7).
215
+ */
216
+ REALTIME_CONN_LOG_RETENTION_DAYS: number;
217
+ /**
218
+ * The resolved transport instance. Populated by the env builder with the
219
+ * default (Poll/Noop) via resolveRealtimeTransport(); a consuming app
220
+ * OVERWRITES the slot by calling setRealtimeProvider() before serving.
221
+ * Handlers read env.realtimeTransport — never construct one.
222
+ */
223
+ realtimeTransport: RealtimeTransport;
224
+ /**
225
+ * Media upload/serve configuration. All operational thresholds come from
226
+ * env vars; code ships only conservative safe-for-dev defaults.
227
+ */
228
+ media: {
229
+ /**
230
+ * Maximum file size in bytes per media type.
231
+ * Sources: MEDIA_MAX_BYTES_IMAGE / MEDIA_MAX_BYTES_VIDEO / MEDIA_MAX_BYTES_AUDIO.
232
+ */
233
+ maxBytes: {
234
+ image: number;
235
+ video: number;
236
+ audio: number;
237
+ };
238
+ /**
239
+ * Maximum total pixels (width × height) for uploaded images. Guards against
240
+ * decompression-bomb attacks (sharp limitInputPixels). Source: MEDIA_MAX_PIXELS.
241
+ */
242
+ maxPixels: number;
243
+ /**
244
+ * Upload and serve rate limits (requests per minute). Operational values
245
+ * come from env; code ships conservative dev defaults.
246
+ * Sources: MEDIA_RATE_UPLOAD_PER_MIN / MEDIA_RATE_BATCH_PER_MIN / MEDIA_RATE_SERVE_PER_MIN.
247
+ */
248
+ rateLimits: {
249
+ uploadPerMin: number;
250
+ batchPerMin: number;
251
+ servePerMin: number;
252
+ };
253
+ /**
254
+ * Accepted MIME-type allowlists per media type.
255
+ * Sources: MEDIA_ALLOWLIST_IMAGE_JSON / MEDIA_ALLOWLIST_VIDEO_JSON / MEDIA_ALLOWLIST_AUDIO_JSON
256
+ * (JSON arrays). Defaults to narrow safe sets; consumer widens as needed.
257
+ */
258
+ allowlist: {
259
+ image: string[];
260
+ video: string[];
261
+ audio: string[];
262
+ };
263
+ /**
264
+ * Enumerated derivative preset identifiers. Bounds the closed union used by
265
+ * the CAS key builder (T3). Source: MEDIA_PRESETS_JSON (JSON string array).
266
+ */
267
+ presets: string[];
268
+ /**
269
+ * Per-category moderation thresholds: review and quarantine confidence
270
+ * boundaries (0–1). Absence of a key ⇒ fail-closed (treat as review).
271
+ * Source: MEDIA_THRESHOLDS_JSON (JSON object). Real operative numbers live
272
+ * in the consumer's SSM; compiled defaults are intentionally absent so the
273
+ * public tarball contains no threshold values.
274
+ */
275
+ thresholds: Record<string, {
276
+ review: number;
277
+ quarantine: number;
278
+ }>;
279
+ /**
280
+ * Canonical output format for the image re-encode pipeline (T7).
281
+ * Must be one of the sharp-writable formats: "jpeg" | "png" | "webp".
282
+ * Source: MEDIA_CANONICAL_FORMAT. Default: "jpeg".
283
+ */
284
+ canonicalFormat: "jpeg" | "png" | "webp";
285
+ /**
286
+ * JPEG/WebP output quality for the re-encode pipeline (1–100).
287
+ * Source: MEDIA_CANONICAL_QUALITY. Default: 85 (conservative dev default).
288
+ */
289
+ canonicalQuality: number;
290
+ /**
291
+ * Maximum video duration in seconds the pipeline will accept. Clips
292
+ * exceeding this cap are rejected before transcoding begins (cost + abuse
293
+ * guard). Source: MEDIA_MAX_DURATION_SECONDS. Default: 60 (conservative
294
+ * dev default; consumer injects operative value via SSM/env).
295
+ */
296
+ maxDurationSeconds: number;
297
+ /**
298
+ * Per-tenant cap on the number of uploads that may reach REVIEW status
299
+ * within the rolling rate window. Tenants that exceed this cap have
300
+ * subsequent uploads auto-rejected until the window resets. Source:
301
+ * MEDIA_REVIEW_RATE_CAP. Default: 20 (conservative dev default; consumer
302
+ * injects operative value via SSM/env).
303
+ */
304
+ reviewRateCap: number;
305
+ /**
306
+ * Per-tenant upload quota: maximum number of stored objects and total
307
+ * bytes. Quota enforcement is advisory in P0b (logged, not hard-blocked);
308
+ * the consumer's CDK env sets hard values. Sources: MEDIA_QUOTA_MAX_OBJECTS
309
+ * / MEDIA_QUOTA_MAX_BYTES.
310
+ */
311
+ uploadQuota: {
312
+ /** Maximum number of stored MediaFile objects per tenant. Default: 1000. */
313
+ maxObjects: number;
314
+ /** Maximum total bytes of stored media per tenant. Default: 1 GiB. */
315
+ maxBytes: number;
316
+ };
317
+ /**
318
+ * Transcription configuration for audio moderation (AUDIO track).
319
+ * outputBucket: S3 bucket for transcription output (no default — absent
320
+ * means the AUDIO track cannot submit jobs; callers must check).
321
+ * languageCode: BCP-47 language code for the transcription model.
322
+ * Source: MEDIA_TRANSCRIBE_LANGUAGE_CODE. Default: "en-US".
323
+ */
324
+ transcribe: {
325
+ /** S3 bucket for transcription job output. Source: MEDIA_TRANSCRIBE_OUTPUT_BUCKET. No default. */
326
+ outputBucket?: string;
327
+ /** BCP-47 language code. Source: MEDIA_TRANSCRIBE_LANGUAGE_CODE. Default: "en-US". */
328
+ languageCode: string;
329
+ };
330
+ };
188
331
  }
332
+ /**
333
+ * Track A — the RESERVED key-ring namespace. The client stores its wrapped-DEK
334
+ * bundle under this namespace; the server is blind to it (opaque ciphertext, no
335
+ * parsing). Always allowed, regardless of REALTIME_SETTING_NAMESPACES, so the
336
+ * key-ring works even when no other setting sync is opted in.
337
+ */
338
+ export declare const KEYRING_NAMESPACE = "__keyring";
339
+ /**
340
+ * Resolve the realtime config block + the default transport instance from
341
+ * process.env. Single-writer: this is the ONLY place that reads the REALTIME_*
342
+ * env vars. The default is `poll` with an in-memory store + the calm-delivery
343
+ * resolver — fully functional with zero infra. A consuming app overrides the
344
+ * transport via setRealtimeProvider() (resolved here).
345
+ *
346
+ * REALTIME_SETTING_NAMESPACES always includes the reserved `__keyring` namespace
347
+ * (Track A), independent of the deployment's opt-in allowlist.
348
+ */
349
+ export declare function resolveRealtimeEnv(): {
350
+ features: {
351
+ realtimeTransport: "poll" | "appsync-events";
352
+ realtimePush: boolean;
353
+ };
354
+ REALTIME_REENGAGEMENT_TYPES: ReadonlySet<NotificationType>;
355
+ REALTIME_SETTING_NAMESPACES: string[];
356
+ REALTIME_SETTING_MAX_BYTES: number;
357
+ REALTIME_CONN_LOG_RETENTION_DAYS: number;
358
+ realtimeTransport: RealtimeTransport;
359
+ };
360
+ /**
361
+ * Resolve the media config block from process.env.
362
+ *
363
+ * Single-writer: this is the ONLY place that reads the MEDIA_* env vars.
364
+ * Threshold-secrecy invariant (CLAUDE.md rule 8): no cap / rate-limit /
365
+ * threshold *value* is compiled in. Defaults are conservative dev-safe
366
+ * values only; the consumer injects operative values via SSM/env vars.
367
+ *
368
+ * Absence of a threshold entry ⇒ fail-closed (treated as "review" by the gate).
369
+ */
370
+ export declare function resolveMediaEnv(): {
371
+ media: {
372
+ maxBytes: {
373
+ image: number;
374
+ video: number;
375
+ audio: number;
376
+ };
377
+ maxPixels: number;
378
+ rateLimits: {
379
+ uploadPerMin: number;
380
+ batchPerMin: number;
381
+ servePerMin: number;
382
+ };
383
+ allowlist: {
384
+ image: string[];
385
+ video: string[];
386
+ audio: string[];
387
+ };
388
+ presets: string[];
389
+ thresholds: Record<string, {
390
+ review: number;
391
+ quarantine: number;
392
+ }>;
393
+ canonicalFormat: "jpeg" | "png" | "webp";
394
+ canonicalQuality: number;
395
+ maxDurationSeconds: number;
396
+ reviewRateCap: number;
397
+ uploadQuota: {
398
+ maxObjects: number;
399
+ maxBytes: number;
400
+ };
401
+ transcribe: {
402
+ outputBucket?: string;
403
+ languageCode: string;
404
+ };
405
+ };
406
+ };
407
+ /**
408
+ * Parse MEDIA_THRESHOLDS_JSON into a validated threshold map.
409
+ *
410
+ * Only entries whose `review` and `quarantine` values are numbers in [0, 1] are
411
+ * accepted. Out-of-range entries are silently dropped — an invalid threshold is
412
+ * treated as absent, which ⇒ fail-closed (review). This guards against a
413
+ * misconfigured value accidentally opening the gate.
414
+ *
415
+ * Exported for unit testing.
416
+ */
417
+ export declare function parseMediaThresholds(raw: string | undefined): Record<string, {
418
+ review: number;
419
+ quarantine: number;
420
+ }>;
189
421
  /** S1.4 — Validate critical environment variables at startup */
190
422
  export declare function validateEnv(env: Env): string[];
191
423
  /**
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/dist/env.js CHANGED
@@ -8,12 +8,226 @@ import { DynamoKv, createDefaultDynamoClient } from "@de-otio/saas-foundation/kv
8
8
  import { S3Storage, createDefaultS3Client } from "@de-otio/saas-foundation/storage";
9
9
  import { SqsQueue, createDefaultSqsClient } from "@de-otio/saas-foundation/queue";
10
10
  import { resolveSecret, secretRef, } from "@de-otio/saas-foundation/secrets";
11
+ import { PollTransport, NoopRealtimeTransport, InMemorySettingStore, CalmDeliveryResolver, resolveRealtimeTransport, } from "./lib/realtime/index.js";
11
12
  const stage = process.env.STAGE || "dev";
12
13
  function sqsUrl(queueName) {
13
14
  const base = process.env.SQS_ENDPOINT || `https://sqs.${process.env.AWS_REGION || "us-east-1"}.amazonaws.com`;
14
15
  const accountId = process.env.AWS_ACCOUNT_ID || "000000000000";
15
16
  return `${base}/${accountId}/${stage}-${queueName}`;
16
17
  }
18
+ /**
19
+ * Track A — the RESERVED key-ring namespace. The client stores its wrapped-DEK
20
+ * bundle under this namespace; the server is blind to it (opaque ciphertext, no
21
+ * parsing). Always allowed, regardless of REALTIME_SETTING_NAMESPACES, so the
22
+ * key-ring works even when no other setting sync is opted in.
23
+ */
24
+ export const KEYRING_NAMESPACE = "__keyring";
25
+ /**
26
+ * Resolve the realtime config block + the default transport instance from
27
+ * process.env. Single-writer: this is the ONLY place that reads the REALTIME_*
28
+ * env vars. The default is `poll` with an in-memory store + the calm-delivery
29
+ * resolver — fully functional with zero infra. A consuming app overrides the
30
+ * transport via setRealtimeProvider() (resolved here).
31
+ *
32
+ * REALTIME_SETTING_NAMESPACES always includes the reserved `__keyring` namespace
33
+ * (Track A), independent of the deployment's opt-in allowlist.
34
+ */
35
+ export function resolveRealtimeEnv() {
36
+ const transportKind = process.env.REALTIME_TRANSPORT === "appsync-events"
37
+ ? "appsync-events"
38
+ : "poll";
39
+ const realtimePush = process.env.REALTIME_PUSH_ENABLED === "true";
40
+ // Minor-protection re-engagement denylist (runtime config; default empty).
41
+ const reengagementTypes = new Set((process.env.REALTIME_REENGAGEMENT_TYPES ?? "")
42
+ .split(",")
43
+ .map((s) => s.trim())
44
+ .filter((s) => s.length > 0));
45
+ const configured = (process.env.REALTIME_SETTING_NAMESPACES ?? "")
46
+ .split(",")
47
+ .map((s) => s.trim())
48
+ .filter((s) => s.length > 0);
49
+ // Track A — RESERVED system namespace. `__keyring` holds the wrapped-DEK
50
+ // key-ring bundle and is ALWAYS allowed (the store treats it as opaque
51
+ // ciphertext — no parsing), independent of the deployment's opt-in allowlist.
52
+ const namespaces = configured.includes(KEYRING_NAMESPACE)
53
+ ? configured
54
+ : [...configured, KEYRING_NAMESPACE];
55
+ const maxBytesRaw = Number.parseInt(process.env.REALTIME_SETTING_MAX_BYTES ?? "", 10);
56
+ const maxBytes = Number.isFinite(maxBytesRaw) && maxBytesRaw > 0
57
+ ? maxBytesRaw
58
+ : 65536; // 64 KiB default cap
59
+ const retentionRaw = Number.parseInt(process.env.REALTIME_CONN_LOG_RETENTION_DAYS ?? "", 10);
60
+ const connLogRetentionDays = Number.isFinite(retentionRaw) && retentionRaw > 0 ? retentionRaw : 7;
61
+ // Default transport: in-memory store + calm-delivery resolver. Skybber injects
62
+ // a push transport. Core never constructs an AppSync transport —
63
+ // "appsync-events" without an injected provider falls back to noop.
64
+ const settingStore = new InMemorySettingStore();
65
+ const policyResolver = new CalmDeliveryResolver({ reengagementTypes });
66
+ const fallback = transportKind === "appsync-events"
67
+ ? new NoopRealtimeTransport(policyResolver)
68
+ : new PollTransport(settingStore, policyResolver);
69
+ const realtimeTransport = resolveRealtimeTransport(fallback);
70
+ return {
71
+ features: { realtimeTransport: transportKind, realtimePush },
72
+ REALTIME_REENGAGEMENT_TYPES: reengagementTypes,
73
+ REALTIME_SETTING_NAMESPACES: namespaces,
74
+ REALTIME_SETTING_MAX_BYTES: maxBytes,
75
+ REALTIME_CONN_LOG_RETENTION_DAYS: connLogRetentionDays,
76
+ realtimeTransport,
77
+ };
78
+ }
79
+ /**
80
+ * Resolve the media config block from process.env.
81
+ *
82
+ * Single-writer: this is the ONLY place that reads the MEDIA_* env vars.
83
+ * Threshold-secrecy invariant (CLAUDE.md rule 8): no cap / rate-limit /
84
+ * threshold *value* is compiled in. Defaults are conservative dev-safe
85
+ * values only; the consumer injects operative values via SSM/env vars.
86
+ *
87
+ * Absence of a threshold entry ⇒ fail-closed (treated as "review" by the gate).
88
+ */
89
+ export function resolveMediaEnv() {
90
+ // --- maxBytes: conservative dev defaults (10 MiB image, 100 MiB video/audio) ---
91
+ const parseBytes = (raw, fallback) => {
92
+ const n = Number.parseInt(raw ?? "", 10);
93
+ return Number.isFinite(n) && n > 0 ? n : fallback;
94
+ };
95
+ const maxBytesImage = parseBytes(process.env.MEDIA_MAX_BYTES_IMAGE, 10 * 1024 * 1024);
96
+ const maxBytesVideo = parseBytes(process.env.MEDIA_MAX_BYTES_VIDEO, 100 * 1024 * 1024);
97
+ const maxBytesAudio = parseBytes(process.env.MEDIA_MAX_BYTES_AUDIO, 100 * 1024 * 1024);
98
+ // --- maxPixels: decompression-bomb guard for sharp(limitInputPixels) ---
99
+ const maxPixelsRaw = Number.parseInt(process.env.MEDIA_MAX_PIXELS ?? "", 10);
100
+ // 25 MP dev default — conservative; real limit injected via env
101
+ const maxPixels = Number.isFinite(maxPixelsRaw) && maxPixelsRaw > 0
102
+ ? maxPixelsRaw
103
+ : 25_000_000;
104
+ // --- rate limits (requests per minute; conservative dev defaults) ---
105
+ const parseRateLimit = (raw, fallback) => {
106
+ const n = Number.parseInt(raw ?? "", 10);
107
+ return Number.isFinite(n) && n > 0 ? n : fallback;
108
+ };
109
+ const uploadPerMin = parseRateLimit(process.env.MEDIA_RATE_UPLOAD_PER_MIN, 10);
110
+ const batchPerMin = parseRateLimit(process.env.MEDIA_RATE_BATCH_PER_MIN, 5);
111
+ const servePerMin = parseRateLimit(process.env.MEDIA_RATE_SERVE_PER_MIN, 60);
112
+ // --- MIME allowlists: narrow safe dev defaults; consumer widens as needed ---
113
+ const parseJsonArray = (raw, fallback) => {
114
+ if (!raw)
115
+ return fallback;
116
+ try {
117
+ const parsed = JSON.parse(raw);
118
+ if (Array.isArray(parsed) && parsed.every((x) => typeof x === "string")) {
119
+ return parsed;
120
+ }
121
+ }
122
+ catch {
123
+ // Malformed JSON → fail-closed: use fallback
124
+ }
125
+ return fallback;
126
+ };
127
+ const allowlistImage = parseJsonArray(process.env.MEDIA_ALLOWLIST_IMAGE_JSON, ["image/jpeg", "image/png", "image/webp", "image/gif"]);
128
+ const allowlistVideo = parseJsonArray(process.env.MEDIA_ALLOWLIST_VIDEO_JSON, ["video/mp4"]);
129
+ const allowlistAudio = parseJsonArray(process.env.MEDIA_ALLOWLIST_AUDIO_JSON, ["audio/mpeg", "audio/mp4"]);
130
+ // --- presets: derivative variant identifiers (empty = no derivatives in P0a) ---
131
+ const presets = parseJsonArray(process.env.MEDIA_PRESETS_JSON, []);
132
+ // --- thresholds: fail-closed; NO default numeric values ---
133
+ // Absence of a key ⇒ the moderation gate treats the category as "review".
134
+ // Real operative numbers live in the consumer's SSM; the public tarball
135
+ // must never contain a compiled threshold literal (threshold-secrecy invariant).
136
+ const thresholds = parseMediaThresholds(process.env.MEDIA_THRESHOLDS_JSON);
137
+ // --- canonicalFormat: the sharp output format for the re-encode pipeline ---
138
+ const rawFormat = process.env.MEDIA_CANONICAL_FORMAT ?? "jpeg";
139
+ const canonicalFormat = rawFormat === "png" || rawFormat === "webp" ? rawFormat : "jpeg";
140
+ // --- canonicalQuality: JPEG/WebP output quality (1-100) ---
141
+ const rawQuality = Number.parseInt(process.env.MEDIA_CANONICAL_QUALITY ?? "", 10);
142
+ const canonicalQuality = Number.isFinite(rawQuality) && rawQuality >= 1 && rawQuality <= 100
143
+ ? rawQuality
144
+ : 85; // Conservative dev default
145
+ // --- maxDurationSeconds: video clip cap ---
146
+ const maxDurationSecondsRaw = Number.parseInt(process.env.MEDIA_MAX_DURATION_SECONDS ?? "", 10);
147
+ // 60 s conservative dev default; consumer injects operative value via env.
148
+ const maxDurationSeconds = Number.isFinite(maxDurationSecondsRaw) && maxDurationSecondsRaw > 0
149
+ ? maxDurationSecondsRaw
150
+ : 60;
151
+ // --- reviewRateCap: per-tenant REVIEW-generating upload cap ---
152
+ const reviewRateCapRaw = Number.parseInt(process.env.MEDIA_REVIEW_RATE_CAP ?? "", 10);
153
+ // 20 conservative dev default; consumer injects operative value via env.
154
+ const reviewRateCap = Number.isFinite(reviewRateCapRaw) && reviewRateCapRaw > 0
155
+ ? reviewRateCapRaw
156
+ : 20;
157
+ // --- uploadQuota: per-tenant object count + byte ceiling ---
158
+ const quotaMaxObjectsRaw = Number.parseInt(process.env.MEDIA_QUOTA_MAX_OBJECTS ?? "", 10);
159
+ const quotaMaxObjects = Number.isFinite(quotaMaxObjectsRaw) && quotaMaxObjectsRaw > 0
160
+ ? quotaMaxObjectsRaw
161
+ : 1000; // 1 000 objects dev default
162
+ const quotaMaxBytesRaw = Number.parseInt(process.env.MEDIA_QUOTA_MAX_BYTES ?? "", 10);
163
+ const quotaMaxBytes = Number.isFinite(quotaMaxBytesRaw) && quotaMaxBytesRaw > 0
164
+ ? quotaMaxBytesRaw
165
+ : 1024 * 1024 * 1024; // 1 GiB dev default
166
+ // --- transcribe config ---
167
+ // outputBucket has no default (absent ⇒ AUDIO track cannot submit jobs).
168
+ const transcribeOutputBucket = process.env.MEDIA_TRANSCRIBE_OUTPUT_BUCKET || undefined;
169
+ const rawLanguageCode = (process.env.MEDIA_TRANSCRIBE_LANGUAGE_CODE ?? "").trim();
170
+ const transcribeLanguageCode = rawLanguageCode.length > 0 ? rawLanguageCode : "en-US";
171
+ return {
172
+ media: {
173
+ maxBytes: { image: maxBytesImage, video: maxBytesVideo, audio: maxBytesAudio },
174
+ maxPixels,
175
+ rateLimits: { uploadPerMin, batchPerMin, servePerMin },
176
+ allowlist: { image: allowlistImage, video: allowlistVideo, audio: allowlistAudio },
177
+ presets,
178
+ thresholds,
179
+ canonicalFormat,
180
+ canonicalQuality,
181
+ maxDurationSeconds,
182
+ reviewRateCap,
183
+ uploadQuota: { maxObjects: quotaMaxObjects, maxBytes: quotaMaxBytes },
184
+ transcribe: { outputBucket: transcribeOutputBucket, languageCode: transcribeLanguageCode },
185
+ },
186
+ };
187
+ }
188
+ /**
189
+ * Parse MEDIA_THRESHOLDS_JSON into a validated threshold map.
190
+ *
191
+ * Only entries whose `review` and `quarantine` values are numbers in [0, 1] are
192
+ * accepted. Out-of-range entries are silently dropped — an invalid threshold is
193
+ * treated as absent, which ⇒ fail-closed (review). This guards against a
194
+ * misconfigured value accidentally opening the gate.
195
+ *
196
+ * Exported for unit testing.
197
+ */
198
+ export function parseMediaThresholds(raw) {
199
+ if (!raw)
200
+ return {};
201
+ let parsed;
202
+ try {
203
+ parsed = JSON.parse(raw);
204
+ }
205
+ catch {
206
+ return {};
207
+ }
208
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
209
+ return {};
210
+ }
211
+ const result = {};
212
+ for (const [category, value] of Object.entries(parsed)) {
213
+ if (typeof value === "object" &&
214
+ value !== null &&
215
+ !Array.isArray(value) &&
216
+ typeof value.review === "number" &&
217
+ typeof value.quarantine === "number" &&
218
+ value.review >= 0 &&
219
+ value.review <= 1 &&
220
+ value.quarantine >= 0 &&
221
+ value.quarantine <= 1) {
222
+ result[category] = {
223
+ review: value.review,
224
+ quarantine: value.quarantine,
225
+ };
226
+ }
227
+ // Out-of-range or malformed entries are dropped (fail-closed)
228
+ }
229
+ return result;
230
+ }
17
231
  /**
18
232
  * Assemble a Postgres URL from Secrets Manager at runtime.
19
233
  *
@@ -169,6 +383,13 @@ export async function buildEnv(context) {
169
383
  // NOT write it to process.env so it can't leak through env-var exposure.
170
384
  const databaseUrl = await resolveDatabaseUrl();
171
385
  return {
386
+ // Realtime transport seam: resolveRealtimeEnv() reads the REALTIME_* vars
387
+ // and selects the default (poll/noop) transport; Skybber overrides via
388
+ // setRealtimeProvider() before serving.
389
+ ...resolveRealtimeEnv(),
390
+ // Media config seam: resolveMediaEnv() reads all MEDIA_* vars; no compiled
391
+ // threshold values ship in the tarball (threshold-secrecy invariant).
392
+ ...resolveMediaEnv(),
172
393
  DATABASE_URL: databaseUrl,
173
394
  DATABASE_URL_CN: process.env.DATABASE_URL_CN,
174
395
  DIRECT_URL: process.env.DIRECT_URL,
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,4 +5,5 @@
5
5
  */
6
6
  export { startServer } from "./server.js";
7
7
  export { registerExtension, getExtension, getExtensions } from "./extensions.js";
8
+ export { setRealtimeProvider } from "./lib/realtime/index.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -5,4 +5,7 @@
5
5
  */
6
6
  export { startServer } from "./server.js";
7
7
  export { registerExtension, getExtension, getExtensions } from "./extensions.js";
8
+ // Realtime transport seam: a consuming app (e.g. Skybber) injects a concrete
9
+ // transport (AppSync Events) before serving; core ships the poll/noop default.
10
+ export { setRealtimeProvider } from "./lib/realtime/index.js";
8
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjF,6EAA6E;AAC7E,+EAA+E;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}