# Authentification

Le SDK ajoute automatiquement :

```http
Authorization: Bearer relai_<prefix>.<secret>
Accept: application/json
Content-Type: application/json
```

Le Core vérifie le hash du token, son activation, son expiration, l'application et les
scopes. `appSlug` est une vérification de cohérence pour chat/structured, pas un moyen
de changer de tenant.

| Opération | Scope |
|---|---|
| chat | `chat:create` |
| chat avec tools | `chat:create` + `tools:execute` |
| structured | `structured:create` |
| tool direct | `tools:execute` |
| conversations | `conversations:read` |
| runs | `runs:read` |

> **Do not expose a RelAI app token in public frontend code.**

Conservez le token dans `.env`/un secret manager, utilisez un token par application et
environnement, limitez ses scopes et révoquez-le dès qu'il n'est plus utilisé. Une
401/403 ne doit pas être retryée sans corriger le token, le scope ou le slug.
