Skip to content

apps/api/src/features/media/media.service.ts ​

Auto-generated by scripts/generate-file-docs.ts. Do not edit — overwritten on every run.

Purpose ​

MediaService — Sermons & Music Hub catalog, streaming, and live events. Design doc: docs/internal/design/sermons-music-hub.md (AB#3137, ADR 0010). Visibility rules: - visitor → no access. All read paths return 403. - member+ → PUBLISHED items only; no upload/publish rights. - media_steward → upload, publish/unpublish/archive, create/manage live events. - ministry_leader / admin / infra_admin → same as media_steward plus series mgmt. Access tier enforcement: - MEMBERS → any active member role passes. - BAPTIZED_ONLY → additionally requires User.isBaptized === true. Storage keys (storageKey, artworkKey, cloudflareInputId, cloudflarePlaybackId) are NEVER included in any value returned to the caller. Callers receive signed URLs only. /

Exports ​

  • export const STREAM_URL_TTL_SECONDS
  • export class MediaService
  • export const mediaService

Imports ​

  • ../../adapters/db
  • ../../adapters/live
  • ../../adapters/storage
  • ../../lib/errors
  • ../../lib/logger
  • ../../lib/pagination
  • ../../middleware/requireAuth

Imported by ​

Heritage Community Hub — Internal. Access restricted via Cloudflare Access + Entra ID.