@de-otio/trellis 0.11.0 → 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.
- package/dist/env.d.ts +168 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +155 -0
- package/dist/env.js.map +1 -1
- package/dist/lambda/media-completion-worker.d.ts +175 -0
- package/dist/lambda/media-completion-worker.d.ts.map +1 -0
- package/dist/lambda/media-completion-worker.js +373 -0
- package/dist/lambda/media-completion-worker.js.map +1 -0
- package/dist/lambda/media-processing-worker.d.ts +172 -1
- package/dist/lambda/media-processing-worker.d.ts.map +1 -1
- package/dist/lambda/media-processing-worker.js +343 -49
- package/dist/lambda/media-processing-worker.js.map +1 -1
- package/dist/lib/exif-stripper.d.ts +37 -22
- package/dist/lib/exif-stripper.d.ts.map +1 -1
- package/dist/lib/exif-stripper.js +101 -41
- package/dist/lib/exif-stripper.js.map +1 -1
- package/dist/lib/media/cas-keys.d.ts +63 -0
- package/dist/lib/media/cas-keys.d.ts.map +1 -0
- package/dist/lib/media/cas-keys.js +102 -0
- package/dist/lib/media/cas-keys.js.map +1 -0
- package/dist/lib/media/classify-worker-error.d.ts +48 -0
- package/dist/lib/media/classify-worker-error.d.ts.map +1 -0
- package/dist/lib/media/classify-worker-error.js +319 -0
- package/dist/lib/media/classify-worker-error.js.map +1 -0
- package/dist/lib/media/dedupe-key.d.ts +29 -0
- package/dist/lib/media/dedupe-key.d.ts.map +1 -0
- package/dist/lib/media/dedupe-key.js +49 -0
- package/dist/lib/media/dedupe-key.js.map +1 -0
- package/dist/lib/media/duration-cap.d.ts +30 -0
- package/dist/lib/media/duration-cap.d.ts.map +1 -0
- package/dist/lib/media/duration-cap.js +37 -0
- package/dist/lib/media/duration-cap.js.map +1 -0
- package/dist/lib/media/ffmpeg-args.d.ts +83 -0
- package/dist/lib/media/ffmpeg-args.d.ts.map +1 -0
- package/dist/lib/media/ffmpeg-args.js +119 -0
- package/dist/lib/media/ffmpeg-args.js.map +1 -0
- package/dist/lib/media/media-ports.d.ts +126 -0
- package/dist/lib/media/media-ports.d.ts.map +1 -0
- package/dist/lib/media/media-ports.js +129 -0
- package/dist/lib/media/media-ports.js.map +1 -0
- package/dist/lib/media/media-upsert.d.ts +55 -0
- package/dist/lib/media/media-upsert.d.ts.map +1 -0
- package/dist/lib/media/media-upsert.js +38 -0
- package/dist/lib/media/media-upsert.js.map +1 -0
- package/dist/lib/media/moderation-provider.d.ts +111 -0
- package/dist/lib/media/moderation-provider.d.ts.map +1 -0
- package/dist/lib/media/moderation-provider.js +130 -0
- package/dist/lib/media/moderation-provider.js.map +1 -0
- package/dist/lib/media/moderation-resolved-payload.d.ts +48 -0
- package/dist/lib/media/moderation-resolved-payload.d.ts.map +1 -0
- package/dist/lib/media/moderation-resolved-payload.js +37 -0
- package/dist/lib/media/moderation-resolved-payload.js.map +1 -0
- package/dist/lib/media/moderation-status.d.ts +98 -0
- package/dist/lib/media/moderation-status.d.ts.map +1 -0
- package/dist/lib/media/moderation-status.js +122 -0
- package/dist/lib/media/moderation-status.js.map +1 -0
- package/dist/lib/media/processing-types.d.ts +45 -0
- package/dist/lib/media/processing-types.d.ts.map +1 -0
- package/dist/lib/media/processing-types.js +9 -0
- package/dist/lib/media/processing-types.js.map +1 -0
- package/dist/lib/media/promote-decision.d.ts +64 -0
- package/dist/lib/media/promote-decision.d.ts.map +1 -0
- package/dist/lib/media/promote-decision.js +76 -0
- package/dist/lib/media/promote-decision.js.map +1 -0
- package/dist/lib/media/quota-check.d.ts +22 -0
- package/dist/lib/media/quota-check.d.ts.map +1 -0
- package/dist/lib/media/quota-check.js +42 -0
- package/dist/lib/media/quota-check.js.map +1 -0
- package/dist/lib/media/quota-types.d.ts +15 -0
- package/dist/lib/media/quota-types.d.ts.map +1 -0
- package/dist/lib/media/quota-types.js +9 -0
- package/dist/lib/media/quota-types.js.map +1 -0
- package/dist/lib/media/route-upload.d.ts +58 -0
- package/dist/lib/media/route-upload.d.ts.map +1 -0
- package/dist/lib/media/route-upload.js +80 -0
- package/dist/lib/media/route-upload.js.map +1 -0
- package/dist/lib/media/serve-gate.d.ts +51 -0
- package/dist/lib/media/serve-gate.d.ts.map +1 -0
- package/dist/lib/media/serve-gate.js +68 -0
- package/dist/lib/media/serve-gate.js.map +1 -0
- package/dist/lib/media/tenant-resolution.d.ts +42 -0
- package/dist/lib/media/tenant-resolution.d.ts.map +1 -0
- package/dist/lib/media/tenant-resolution.js +45 -0
- package/dist/lib/media/tenant-resolution.js.map +1 -0
- package/dist/lib/media/text-moderation.d.ts +28 -0
- package/dist/lib/media/text-moderation.d.ts.map +1 -0
- package/dist/lib/media/text-moderation.js +62 -0
- package/dist/lib/media/text-moderation.js.map +1 -0
- package/dist/lib/media/track-verdict.d.ts +45 -0
- package/dist/lib/media/track-verdict.d.ts.map +1 -0
- package/dist/lib/media/track-verdict.js +52 -0
- package/dist/lib/media/track-verdict.js.map +1 -0
- package/dist/lib/media/transcript-moderation.d.ts +47 -0
- package/dist/lib/media/transcript-moderation.d.ts.map +1 -0
- package/dist/lib/media/transcript-moderation.js +70 -0
- package/dist/lib/media/transcript-moderation.js.map +1 -0
- package/dist/lib/media-handler.d.ts.map +1 -1
- package/dist/lib/media-handler.js +15 -9
- package/dist/lib/media-handler.js.map +1 -1
- package/dist/lib/post-handler.d.ts.map +1 -1
- package/dist/lib/post-handler.js +4 -1
- package/dist/lib/post-handler.js.map +1 -1
- package/dist/lib/routes/media.d.ts +21 -0
- package/dist/lib/routes/media.d.ts.map +1 -1
- package/dist/lib/routes/media.js +584 -483
- package/dist/lib/routes/media.js.map +1 -1
- package/dist/lib/services/image-normalizer.d.ts +64 -6
- package/dist/lib/services/image-normalizer.d.ts.map +1 -1
- package/dist/lib/services/image-normalizer.js +88 -6
- package/dist/lib/services/image-normalizer.js.map +1 -1
- package/dist/lib/services/media-upload-service.d.ts +2 -2
- package/dist/lib/services/media-upload-service.d.ts.map +1 -1
- package/dist/lib/services/media-upload-service.js +22 -21
- package/dist/lib/services/media-upload-service.js.map +1 -1
- package/dist/lib/tenant-scope.d.ts.map +1 -1
- package/dist/lib/tenant-scope.js +16 -1
- package/dist/lib/tenant-scope.js.map +1 -1
- package/package.json +2 -1
- package/prisma/migrations/20260625000000_media_tenant_scope_and_moderation_status/migration.sql +49 -0
- package/prisma/migrations/20260625000001_p0b_moderation_jobs/migration.sql +73 -0
- package/prisma/schema.prisma +95 -17
- package/src/lambda/media-completion-worker.ts +567 -0
- package/src/lambda/media-processing-worker.ts +508 -59
package/dist/env.d.ts
CHANGED
|
@@ -221,6 +221,113 @@ export interface Env {
|
|
|
221
221
|
* Handlers read env.realtimeTransport — never construct one.
|
|
222
222
|
*/
|
|
223
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
|
+
};
|
|
224
331
|
}
|
|
225
332
|
/**
|
|
226
333
|
* Track A — the RESERVED key-ring namespace. The client stores its wrapped-DEK
|
|
@@ -250,6 +357,67 @@ export declare function resolveRealtimeEnv(): {
|
|
|
250
357
|
REALTIME_CONN_LOG_RETENTION_DAYS: number;
|
|
251
358
|
realtimeTransport: RealtimeTransport;
|
|
252
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
|
+
}>;
|
|
253
421
|
/** S1.4 — Validate critical environment variables at startup */
|
|
254
422
|
export declare function validateEnv(env: Env): string[];
|
|
255
423
|
/**
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,QAAQ,EAER,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAiBjE,gEAAgE;AAChE,MAAM,WAAW,GAAG;IAElB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAGlC,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;OAMG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAGrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAGnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;OAOG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,oBAAoB,GAAG,aAAa,CAAC;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAGnC;;;;;;;;OAQG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAIrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,MAAM,CAAC,EAAE,GAAG,CAAC;IAGb,aAAa,EAAE,WAAW,CAAC;IAC3B,sBAAsB,EAAE,WAAW,CAAC;IACpC,UAAU,EAAE,WAAW,CAAC;IACxB,mBAAmB,EAAE,WAAW,CAAC;IACjC,aAAa,EAAE,WAAW,CAAC;IAC3B,mBAAmB,EAAE,WAAW,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,WAAW,CAAC;IACnC,iBAAiB,EAAE,WAAW,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC;IAC1B,cAAc,EAAE,WAAW,CAAC;IAC5B,cAAc,EAAE,WAAW,CAAC;IAC5B,cAAc,EAAE,WAAW,CAAC;IAC5B,oBAAoB,EAAE,WAAW,CAAC;IAClC,cAAc,EAAE,WAAW,CAAC;IAG5B,YAAY,EAAE,eAAe,CAAC;IAC9B,oBAAoB,EAAE,eAAe,CAAC;IACtC,sBAAsB,EAAE,eAAe,CAAC;IACxC,gBAAgB,EAAE,eAAe,CAAC;IAClC,sBAAsB,EAAE,eAAe,CAAC;IACxC,0BAA0B,EAAE,eAAe,CAAC;IAG5C,eAAe,EAAE,QAAQ,CAAC;IAC1B,eAAe,EAAE,QAAQ,CAAC;IAU1B;4CACwC;IACxC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,yEAAyE;IACzE,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,8EAA8E;IAC9E,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,wDAAwD;IACxD,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,mEAAmE;IACnE,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAOhD;;;;;;;OAOG;IACH,QAAQ,EAAE;QACR,iBAAiB,EAAE,MAAM,GAAG,gBAAgB,CAAC;QAC7C,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF;;;;OAIG;IACH,2BAA2B,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC3D,yFAAyF;IACzF,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,gFAAgF;IAChF,0BAA0B,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,gCAAgC,EAAE,MAAM,CAAC;IACzC;;;;;OAKG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
|
package/dist/env.js
CHANGED
|
@@ -76,6 +76,158 @@ export function resolveRealtimeEnv() {
|
|
|
76
76
|
realtimeTransport,
|
|
77
77
|
};
|
|
78
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
|
+
}
|
|
79
231
|
/**
|
|
80
232
|
* Assemble a Postgres URL from Secrets Manager at runtime.
|
|
81
233
|
*
|
|
@@ -235,6 +387,9 @@ export async function buildEnv(context) {
|
|
|
235
387
|
// and selects the default (poll/noop) transport; Skybber overrides via
|
|
236
388
|
// setRealtimeProvider() before serving.
|
|
237
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(),
|
|
238
393
|
DATABASE_URL: databaseUrl,
|
|
239
394
|
DATABASE_URL_CN: process.env.DATABASE_URL_CN,
|
|
240
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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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import type { SQSHandler } from "aws-lambda";
|
|
2
|
+
import type { Track } from "../lib/media/track-verdict.js";
|
|
3
|
+
import type { TextModerationProvider } from "../lib/media/text-moderation.js";
|
|
4
|
+
import type { StoragePort, TranscribePort } from "../lib/media/media-ports.js";
|
|
5
|
+
import type { MediaModerationProvider, ModerationVerdict } from "../lib/media/moderation-provider.js";
|
|
6
|
+
import type { ModerationDecision, ModerationStatus } from "../lib/media/moderation-status.js";
|
|
7
|
+
/** The persisted moderation-job row, looked up by its provider jobId. */
|
|
8
|
+
export interface ModerationJobRow {
|
|
9
|
+
readonly mediaId: string;
|
|
10
|
+
readonly track: Track;
|
|
11
|
+
/** Threshold snapshot captured at submission time (opaque JSON). */
|
|
12
|
+
readonly thresholdSnapshot: unknown;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The persistence seam. Every method is idempotent-friendly and total; the
|
|
16
|
+
* shell never reaches around it to a concrete client.
|
|
17
|
+
*/
|
|
18
|
+
export interface CompletionStore {
|
|
19
|
+
/**
|
|
20
|
+
* Attempt to claim a message for processing. Returns `true` if THIS call
|
|
21
|
+
* inserted the row (first delivery), `false` if the row already existed
|
|
22
|
+
* (duplicate — caller must ack-drop). Implemented with an INSERT ...
|
|
23
|
+
* ON CONFLICT DO NOTHING so it is atomic across concurrent deliveries.
|
|
24
|
+
*/
|
|
25
|
+
claimMessage(dedupeKey: string): Promise<boolean>;
|
|
26
|
+
/** Look up the job row by its provider jobId. `null` if unknown. */
|
|
27
|
+
findJobByJobId(jobId: string): Promise<ModerationJobRow | null>;
|
|
28
|
+
/** Persist this track's resolved decision onto its job row. */
|
|
29
|
+
persistTrackDecision(jobId: string, decision: ModerationDecision): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Read the sibling track's resolved decision for a media object. Returns the
|
|
32
|
+
* decision if the other track's job exists AND has resolved; otherwise the
|
|
33
|
+
* `state` distinguishes a job that exists-but-unresolved from no-such-job.
|
|
34
|
+
*/
|
|
35
|
+
readOtherTrack(mediaId: string, thisTrack: Track): Promise<OtherTrackState>;
|
|
36
|
+
/** Read the media object's current persisted moderation status + CAS coords. */
|
|
37
|
+
findMedia(mediaId: string): Promise<MediaCoords | null>;
|
|
38
|
+
/** Persist a new moderation status for the media object. */
|
|
39
|
+
persistMediaStatus(mediaId: string, status: ModerationStatus): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The sibling track's state, used to build its {@link TrackOutcome}.
|
|
43
|
+
* - `decided` — the other track has a resolved decision.
|
|
44
|
+
* - `pending` — the other track's job exists but has not resolved yet.
|
|
45
|
+
* - `absent` — there is no job for the other track on this media object.
|
|
46
|
+
*/
|
|
47
|
+
export type OtherTrackState = {
|
|
48
|
+
readonly state: "decided";
|
|
49
|
+
readonly decision: ModerationDecision;
|
|
50
|
+
} | {
|
|
51
|
+
readonly state: "pending";
|
|
52
|
+
} | {
|
|
53
|
+
readonly state: "absent";
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* The media coordinates the shell needs to gate promotion and build keys. The
|
|
57
|
+
* store returns the RAW identity columns ({@link tenantId}, {@link uploadId},
|
|
58
|
+
* {@link contentHash}); the shell derives every storage key from them via the
|
|
59
|
+
* canonical cas-keys builders (so key construction is centralized here and the
|
|
60
|
+
* store never hand-rolls a key string). {@link contentHash} is the post-
|
|
61
|
+
* transcode SHA-256 the processing worker persisted (NOT the upload-time
|
|
62
|
+
* uploadId placeholder).
|
|
63
|
+
*/
|
|
64
|
+
export interface MediaCoords {
|
|
65
|
+
readonly moderationStatus: ModerationStatus;
|
|
66
|
+
/** Tenant that owns this object (cas-keys input). */
|
|
67
|
+
readonly tenantId: string;
|
|
68
|
+
/** Upload session id — addresses the raw pending + cleaned staging keys. */
|
|
69
|
+
readonly uploadId: string;
|
|
70
|
+
/** 64-char lowercase SHA-256 of the CLEANED bytes (addresses the cas/ key). */
|
|
71
|
+
readonly contentHash: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Pure re-interpreter for a VISUAL verdict against the job's threshold snapshot.
|
|
75
|
+
*
|
|
76
|
+
* Injected (not implemented here) so this PUBLIC module carries NO operational
|
|
77
|
+
* thresholds. It receives the SNAPSHOT taken at submission time — never live
|
|
78
|
+
* Env — so a config edit between deliveries cannot flip a replayed verdict. Must
|
|
79
|
+
* be total and fail-closed: any uncertainty maps to `"review"`, never `"approved"`.
|
|
80
|
+
*/
|
|
81
|
+
export type VisualVerdictReinterpreter = (verdict: ModerationVerdict, thresholdSnapshot: unknown) => ModerationDecision;
|
|
82
|
+
/** Everything the per-record processor binds to. */
|
|
83
|
+
export interface CompletionDeps {
|
|
84
|
+
readonly store: CompletionStore;
|
|
85
|
+
readonly moderation: MediaModerationProvider;
|
|
86
|
+
readonly transcribe: TranscribePort;
|
|
87
|
+
readonly textModeration: TextModerationProvider;
|
|
88
|
+
readonly storage: StoragePort;
|
|
89
|
+
/** Re-interpret a visual verdict using the job's threshold snapshot. */
|
|
90
|
+
readonly reinterpretVisual: VisualVerdictReinterpreter;
|
|
91
|
+
/** Emit the anti-oracle resolved event. Best-effort; must not throw to ack. */
|
|
92
|
+
readonly emitResolved: (payload: {
|
|
93
|
+
readonly mediaId: string;
|
|
94
|
+
readonly status: "ready" | "not-ready";
|
|
95
|
+
}) => Promise<void>;
|
|
96
|
+
/** Structured logger seam (defaults to a no-op in tests). */
|
|
97
|
+
readonly log?: {
|
|
98
|
+
info?: (msg: string, data?: unknown) => void;
|
|
99
|
+
warn?: (msg: string, data?: unknown) => void;
|
|
100
|
+
error?: (msg: string, data?: unknown) => void;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The outcome of processing one SQS record. `retry` is the ONLY value that
|
|
105
|
+
* causes the message to be returned to the queue (and eventually DLQ'd);
|
|
106
|
+
* everything else is an ack-drop (idempotent no-op or fail-closed terminal).
|
|
107
|
+
*/
|
|
108
|
+
export type RecordOutcome = {
|
|
109
|
+
readonly kind: "duplicate";
|
|
110
|
+
} | {
|
|
111
|
+
readonly kind: "unroutable";
|
|
112
|
+
} | {
|
|
113
|
+
readonly kind: "illegal-transition";
|
|
114
|
+
} | {
|
|
115
|
+
readonly kind: "applied";
|
|
116
|
+
readonly status: ModerationStatus;
|
|
117
|
+
} | {
|
|
118
|
+
readonly kind: "retry";
|
|
119
|
+
readonly reason: string;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Extract the provider job id from an untrusted completion message body.
|
|
123
|
+
*
|
|
124
|
+
* Two shapes are accepted; everything else (and any embedded verdict/status) is
|
|
125
|
+
* ignored:
|
|
126
|
+
* - Rekognition via SNS: { "Message": "{...\"JobId\":\"...\"}" } OR a body
|
|
127
|
+
* that itself directly carries { "JobId": "..." }.
|
|
128
|
+
* - Transcribe via EventBridge: { "detail": { "TranscriptionJobName": "..." } }
|
|
129
|
+
* OR a body that directly carries { "TranscriptionJobName": "..." }.
|
|
130
|
+
*
|
|
131
|
+
* Returns the job id and which track it belongs to, or `null` when no job id can
|
|
132
|
+
* be recovered (fail-closed: the caller ack-drops an unroutable message rather
|
|
133
|
+
* than DLQ-looping a permanently-malformed pointer).
|
|
134
|
+
*
|
|
135
|
+
* Pure & total: never throws.
|
|
136
|
+
*/
|
|
137
|
+
export declare function extractJobPointer(body: string): {
|
|
138
|
+
readonly jobId: string;
|
|
139
|
+
readonly track: Track;
|
|
140
|
+
} | null;
|
|
141
|
+
/**
|
|
142
|
+
* Re-fetch THIS track's authoritative decision from the provider, ignoring the
|
|
143
|
+
* message body entirely. Fail-closed: a non-terminal / failed / unknown result
|
|
144
|
+
* yields `"errored"`-equivalent `null` so the caller records it as an errored
|
|
145
|
+
* track outcome (never `"approved"`).
|
|
146
|
+
*
|
|
147
|
+
* VISUAL: `getVideoModeration(jobId)` returns a settled verdict; the verdict is
|
|
148
|
+
* re-interpreted against the JOB's threshold snapshot (not live Env).
|
|
149
|
+
*
|
|
150
|
+
* AUDIO: `getTranscription(jobId)` is polled; only a COMPLETED transcription is
|
|
151
|
+
* fed to `transcriptToModerationDecision` (which is itself fail-closed). Any
|
|
152
|
+
* other status (IN_PROGRESS / FAILED) yields `null` (errored — fail closed).
|
|
153
|
+
*/
|
|
154
|
+
export declare function refetchTrackDecision(pointer: {
|
|
155
|
+
readonly jobId: string;
|
|
156
|
+
readonly track: Track;
|
|
157
|
+
}, job: ModerationJobRow, deps: CompletionDeps): Promise<ModerationDecision | null>;
|
|
158
|
+
/**
|
|
159
|
+
* Process one completion message. Returns a {@link RecordOutcome}; only
|
|
160
|
+
* `kind: "retry"` should be surfaced to SQS as a batch-item failure. Throws are
|
|
161
|
+
* caught by the handler and converted to a retry.
|
|
162
|
+
*/
|
|
163
|
+
export declare function processCompletion(body: string, deps: CompletionDeps): Promise<RecordOutcome>;
|
|
164
|
+
/**
|
|
165
|
+
* Build the SQS handler from injected deps. The consuming app provides the
|
|
166
|
+
* concrete adapters; tests provide mocks and call {@link processCompletion}
|
|
167
|
+
* directly.
|
|
168
|
+
*
|
|
169
|
+
* A record that yields `kind: "retry"` (or throws) is reported as a batch-item
|
|
170
|
+
* failure so SQS retries / DLQs it. Every other outcome is an ack (the message
|
|
171
|
+
* is consumed): duplicates, unroutable pointers, and illegal transitions are all
|
|
172
|
+
* fail-closed ack-drops — they must never DLQ-loop.
|
|
173
|
+
*/
|
|
174
|
+
export declare function makeHandler(deps: CompletionDeps): SQSHandler;
|
|
175
|
+
//# sourceMappingURL=media-completion-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-completion-worker.d.ts","sourceRoot":"","sources":["../../src/lambda/media-completion-worker.ts"],"names":[],"mappings":"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"}
|