Aller au contenu

API et sécurité

Surfaces HTTP

  • système : GET /health, /ready, /version ;
  • public : GET /public/loading-screen ;
  • admin : OAuth, session, whitelist, loading screen, permissions, personnages, modération et logs sous /admin ;
  • interne : joueurs, personnages, Discord, modération et autorisations sous /internal/v1.

Les routes internes exigent X-Internal-Api-Key. Les mutations Discord passent par le bot avec un secret distinct BOT_INTERNAL_API_KEY, qui n'est pas transmis à FiveM.

Authentification admin

Le navigateur démarre OAuth2 auprès de Discord. L'API orchestre le callback via le service privé du bot, construit une session serveur et pose un cookie. En HTTPS, ADMIN_COOKIE_SECURE=true est obligatoire. L'URL DISCORD_OAUTH_REDIRECT_URI doit correspondre exactement à celle enregistrée dans le portail Discord.

Autorisation

Le moteur central calcule rang, grants directs et héritage. Founder reçoit systématiquement ALL_PERMISSIONS. Les actions sensibles vérifient la permission, le rang de l'acteur et, pour un grant, que l'acteur possède lui-même la permission concernée.

Les consommateurs non web utilisent :

POST /internal/v1/admin/authorize
POST /internal/v1/admin/authorize-role-action

Toute action admin est associée à l'identité Discord de l'acteur dans l'audit. Les secrets ressemblant à des tokens ou mots de passe sont masqués dans les réponses de journaux.