Skip to content

Cron / Jobs planifiés

Bécik a quelques tâches qui doivent tourner même quand l'utilisateur n'est pas sur le site.

Option A — Vercel Cron

  • Config via vercel.json.
  • Limitations possibles sur le plan gratuit.

Option B — GitHub Actions (recommandé si tu veux évoluer)

Le workflow GitHub appelle un endpoint HTTP protégé par CRON_SECRET.

Fichier : .github/workflows/daily-cron.yml

Secrets à configurer dans GitHub

Dans Settings → Secrets and variables → Actions:

  • BECIK_CRON_URL
  • Exemple : https://<ton-domaine>/api/cron/maintenance-notifications
  • CRON_SECRET
  • Doit matcher la variable CRON_SECRET configurée côté Vercel.

Nettoyage Storage (TODO)

Un job planifié doit nettoyer les fichiers du bucket Supabase Storage medias qui ne sont plus référencés.

  • Endpoint prévu: /api/cron/cleanup-orphan-media
  • Sécurité: header Authorization: Bearer <CRON_SECRET>
  • Scope initial: medias/support-tickets/** (pièces jointes des tickets support)
  • Sécurité opérationnelle: rapport seulement par défaut; suppression uniquement via mode explicite (ex: ?mode=delete&confirm=YES) + garde-fous (fichiers anciens, limite, orphelin sur plusieurs runs)

Ajuster l'heure

Le schedule GitHub est en UTC (comme Vercel). Modifie la ligne :

  • cron: "0 14 * * *"

14:00 UTC ≈ 09:00 au Québec (hiver) / 10:00 (été).

Strava

La mise à jour Strava (activité/odomètre) est basée sur les webhooks et n'a pas besoin de cron fréquent.