From 7774616f005d2e020106645f7b612c7218397895 Mon Sep 17 00:00:00 2001 From: Martin Porwoll Date: Fri, 16 Jan 2026 21:53:15 +0000 Subject: [PATCH] feat(cron): Phase 2.6 - Vercel Cron Configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Konfiguriert automatische Hintergrund-Jobs für Vercel: - Token-Refresh Cron: 2x täglich (6:00 + 18:00 UTC) - Erneuert OAuth-Tokens 7 Tage vor Ablauf - Benachrichtigt Manager bei Problemen - Dokumentation in CLAUDE.md: - Neue Sektion "Scheduled Cron Jobs (Vercel)" - Übersicht aller Cron-Endpoints - Beispiele für manuellen Trigger - Monitoring-Hinweise Bestehende Crons: - community-sync: alle 15 Minuten (YouTube/Facebook/Instagram) - token-refresh: 2x täglich (OAuth Token Renewal) Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 34 ++++++++++++++++++++++++++++++++++ vercel.json | 4 ++++ 2 files changed, 38 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index ffa67d0..21cd5d4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1114,6 +1114,40 @@ pnpm test:coverage - Functions: 50% - Branches: 65% +## Scheduled Cron Jobs (Vercel) + +Automatische Hintergrund-Jobs via Vercel Cron (`vercel.json`): + +| Endpoint | Schedule | Beschreibung | +|----------|----------|--------------| +| `/api/cron/community-sync` | `*/15 * * * *` (alle 15 Min) | Synchronisiert Kommentare von YouTube, Facebook, Instagram | +| `/api/cron/token-refresh` | `0 6,18 * * *` (6:00 + 18:00 UTC) | Erneuert ablaufende OAuth-Tokens automatisch | + +**Authentifizierung:** +Alle Cron-Endpoints erfordern `Authorization: Bearer $CRON_SECRET` Header. + +**Manueller Trigger:** +```bash +# Community Sync manuell auslösen +curl -X POST "https://your-domain/api/cron/community-sync" \ + -H "Authorization: Bearer $CRON_SECRET" \ + -H "Content-Type: application/json" \ + -d '{"platforms": ["youtube", "facebook"]}' + +# Token Refresh manuell auslösen (Dry-Run) +curl "https://your-domain/api/cron/token-refresh?dryRun=true" \ + -H "Authorization: Bearer $CRON_SECRET" + +# Token Refresh Status prüfen +curl -I "https://your-domain/api/cron/token-refresh" \ + -H "Authorization: Bearer $CRON_SECRET" +``` + +**Monitoring:** +- HEAD-Requests geben Status-Header zurück (`X-Sync-Running`, `X-Last-Run`, etc.) +- Bei laufendem Job: HTTP 423 (Locked) +- Fehlerhafte Tokens werden als Benachrichtigungen in `yt-notifications` gespeichert + ## CI/CD Pipeline GitHub Actions Workflows in `.github/workflows/`: diff --git a/vercel.json b/vercel.json index d410113..058eeb5 100644 --- a/vercel.json +++ b/vercel.json @@ -4,6 +4,10 @@ { "path": "/api/cron/community-sync", "schedule": "*/15 * * * *" + }, + { + "path": "/api/cron/token-refresh", + "schedule": "0 6,18 * * *" } ] }