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.