plan.md 1.2 KB

Problème

La fonction update-feed n'accepte que l'authentification via un JWT utilisateur vérifié comme super-utilisateur. Elle ne supporte pas le x-cron-secret ni la détection d'appel interne (service_role key), contrairement à fetch-rss et purge-articles.

Sur ton instance self-hosted, tu n'as pas de session utilisateur active, donc verifySuperUser() échoue systématiquement.

Solution

Aligner update-feed sur le même modèle d'authentification que purge-articles et fetch-rss : accepter le cron secret, les appels internes (service_role), ou un super-utilisateur authentifié.

Modification

Fichier : supabase/functions/update-feed/index.ts

  1. Ajouter les imports validateCronSecret et isInternalCall depuis _shared/security.ts
  2. Ajouter x-cron-secret dans les headers CORS autorisés
  3. Remplacer le bloc d'authentification pour accepter 3 méthodes :
    • validateCronSecret(req) — pour les appels cron/curl avec header x-cron-secret
    • isInternalCall(req) — pour les appels avec le service_role key
    • verifySuperUser(req) — pour les utilisateurs connectés (existant)

La commande curl fonctionnera ensuite avec soit le x-cron-secret, soit le service_role key en Bearer token.