Files
youtube-studio-flow/backend
devil baf827df29 fix(auth): set supplementalVideoIds on first-login channel creation
upsertGoogleUser's nested channels.create (the auto-provisioning path
for a brand new team's first Google login) never set
supplementalVideoIds, a required String[] column with no DB default
(dropped intentionally in 20260608000002 to match the Prisma schema).
channel-import.service.ts already sets it explicitly on its create path
- this path was just missed, and nothing had exercised a real first
login against Postgres until now.
2026-08-11 16:33:22 +02:00
..

StudioFlow — Backend (API & Worker)

Übersicht

Dieses Projekt enthält die gesamte Geschäftslogik, die API-Endpunkte und den Hintergrund-Worker für StudioFlow. Es basiert auf NestJS und nutzt Prisma als ORM.

Technologie-Stack

  • Framework: NestJS 10 (TypeScript)
  • ORM: Prisma 6
  • Datenbank: PostgreSQL 16
  • Queue: BullMQ (via Redis 7)
  • Auth: Passport.js + Google OAuth 2.0
  • Validierung: class-validator + zod
  • Dokumentation: Swagger (@nestjs/swagger)

Kernmodule

  1. Render-Engine: Wandelt Video-Konfigurationen in finale Beschreibungen um.
  2. Quota-Management: Überwacht und plant YouTube API-Units (Hash-basierter Diff).
  3. Bulk-Jobs: Verarbeitet Massenänderungen asynchron via BullMQ.
  4. Linting: Validiert Metadaten gegen vordefinierte Regeln.
  5. Sync-Service: Kommuniziert mit der YouTube Data API v3.

Setup & Start

  1. npm install
  2. Prisma-Client generieren: npx prisma generate
  3. Server starten: npm run start:dev (Main Entry: src/main.ts)
  4. Worker starten: npm run start:worker (Worker Entry: src/worker.ts)

Verzeichnisstruktur

  • src/main.ts: Entrypoint für die REST API
  • src/worker.ts: Entrypoint für den BullMQ Worker
  • src/shared/render-engine/: Die zentrale Rendering-Logik
  • src/modules/: Alle fachlichen Module (Videos, Blocks, Templates, etc.)
  • prisma/: Datenbank-Schema und Migrationen