# Créer un jeton

> Un jeton relie une machine à ton compte. Deux portées, deux usages.

Le CLI ne connaît ni ton mot de passe ni ta session : il présente un **jeton**, que
tu crées depuis l'espace client et que tu peux révoquer quand tu veux.

## Le créer

<Steps>
  <Step title="Ouvre l'espace client">
    [app.arkya.gg](https://app.arkya.gg), menu **Clés SSH & API**.
  </Step>
  <Step title="Crée le jeton">
    Donne-lui un nom qui te parlera dans six mois — « portable », « runner CI »,
    « serveur de build ». Un jeton par machine : le jour où tu en perds une, tu ne
    révoques que celui-là.
  </Step>
  <Step title="Choisis ce qu'il autorise">
    **Complet** ou **Registre**. Le tableau ci-dessous dit lequel il te faut.
  </Step>
  <Step title="Copie-le tout de suite">
    Il n'est affiché qu'une fois. Ensuite, seul son préfixe reste visible.
  </Step>
</Steps>

## Les deux portées

| | Complet | Registre |
| --- | --- | --- |
| Lister et lire tes services | oui | non |
| Console, journaux, fichiers | oui | non |
| Démarrer, arrêter, redémarrer | oui | non |
| Sauvegardes, instantanés, taille | oui | non |
| Pousser une image, déployer une application | oui | oui |

Un jeton **complet** fait tout ce que tu fais dans l'espace client. C'est celui
qu'il te faut pour le CLI au quotidien.

Un jeton **registre** ne sert qu'à `ark build`, `ark push` et `ark deploy`. C'est
celui à poser dans une chaîne d'intégration continue qui n'a rien à faire du reste :
même si le fichier fuit, personne ne supprime tes serveurs avec.

<Warning>
  Un jeton complet vaut ton mot de passe. Ne le commite pas, ne le colle pas dans un
  ticket, ne l'écris pas dans un Dockerfile. Dans une chaîne d'intégration, passe-le
  par un secret, jamais par une variable d'environnement en clair dans le fichier de
  configuration.
</Warning>

## Le faire expirer

À la création, tu peux lui donner 30 jours, 90 jours, un an, ou aucune limite. Un
jeton de portable mérite une limite ; un jeton de serveur de build que tu surveilles,
moins.

## Le révoquer

Depuis l'espace client, la corbeille au bout de la ligne. La révocation prend effet
immédiatement : la commande suivante qui s'en sert reçoit

```
x Ton jeton a été refusé.
  Relance `ark login` avec un jeton valable.
```

## Un jeton refusé pour une autre raison

Si tu as créé un jeton **registre** et que tu essaies de piloter un service :

```
x Ce jeton ne sert qu'au registre. Crée un jeton complet pour piloter tes services.
  Crée un jeton complet dans l'espace client, onglet Clés SSH & API.
```

Rien n'est cassé : crée un second jeton, complet, et relance `ark login`.
