Skip to main content

API HTTP Convex

Cette page cartographie les deux handlers HTTP Next.js et les routes enregistrées par convex/http.ts et les modules convex/http/*. Elle décrit les chemins réellement présents, sans remplacer les validateurs et règles d’autorisation des fonctions appelées.

Handlers Next.js

Sources :
  • web/src/app/api/feedback/route.ts
  • web/src/app/adsterra-frame/[snippetId]/route.ts

Architecture du routeur

convex/http.ts :
  • crée le httpRouter Convex ;
  • monte les routes de @convex-dev/auth via auth.addHttpRoutes(http) ;
  • monte les modules auth, clubs, litiges, ligues, matchs, mercato, système, opérations, uploads et utilisateurs ;
  • monte le webhook Stripe ;
  • expose l’échange OAuth Convex.
Les routes dynamiques utilisent pathPrefix puis analysent les segments du chemin dans le handler.

Authentification, CORS et sécurité

  • Les routes qui appellent resolveCurrentSessionUser ou resolveActorUserIdFromRequest résolvent l’utilisateur depuis les cookies Convex Auth et refusent les comptes bloqués. Les endpoints publics (ex. GET /api/leagues) ne résolvent aucune session : un compte bloqué peut les interroger comme un visiteur anonyme.
  • Les cookies d’accès et de refresh utilisent les variantes sécurisées __Host-* sur HTTPS.
  • Les origines autorisées sont dérivées de AUTH_ALLOWED_ORIGINS, CORS_ORIGIN, NEXT_PUBLIC_APP_URL, CONVEX_SITE_ORIGIN et FRONTEND_URL.
  • Un actorUserId transmis dans un body ne remplace pas l’identité de session ; les routes sensibles vérifient la cohérence de l’acteur.
  • Les routes /api/ops/* d’écriture utilisent l’en-tête x-admin-key, comparé en temps constant à CONVEX_OPS_ADMIN_KEY.
  • Les mutations Convex restent la dernière frontière d’autorisation : exposer un chemin HTTP ne contourne pas leurs contrôles métier.

Santé, webhooks et intégrations

Les routes fournies directement par @convex-dev/auth sont montées par la bibliothèque et ne sont pas redéfinies dans les modules CEL.

Auth et compte

Clubs et mercato

Ligues

Lecture

Administration

Matchs

Lecture

Résultats, planning et statistiques

Administration des matchs

Litiges

Uploads et opérations

Les dossiers applicatifs acceptés par /api/uploads sont profiles, clubs, leagues et disputes. Les formats détectés sont JPEG, PNG, GIF et WEBP.

Convention de maintenance

Toute modification de convex/http.ts ou convex/http/*.ts doit actualiser cette page. Les détails de payload ne doivent être documentés que lorsqu’ils sont confirmés par les validateurs et appels Convex du handler.
Last modified on July 16, 2026