# Secrets (/fr/docs/workspaces/secrets)

Un secret est une variable dont la valeur reste dans le trousseau de votre Mac. Le fichier de l’espace de travail n’en
contient que le nom : vous pouvez donc valider l’espace de travail et le partager sans partager vos identifiants.
Utilisez des secrets pour les mots de passe, les jetons, les clés d’API et tout ce que vous ne colleriez pas dans une
conversation.

## Rendre une variable secrète [#make-a-variable-secret]

1. Ouvrez le tableau de la variable : la page [Environnements](/docs/workspaces/environments),
   **Réglages du dossier… › Variables**, ou l’onglet **Variables** de la requête.
2. Ajoutez la variable, ou trouvez-la, et cochez **Secret**.
3. Saisissez la valeur dans le champ (il affiche **Non défini sur ce Mac**) et appuyez sur <kbd>↩</kbd> ou cliquez sur
   **Enregistrer**.

Le champ n’affiche plus jamais la valeur. Il indique **Stocké dans le trousseau**, avec une clé, dès qu’une valeur s’y
trouve. Pour changer la valeur, saisissez-en une nouvelle et enregistrez-la.

Utilisez un secret comme n’importe quelle variable : `{{token}}`.

<Shot id="workspaces-secret-variable" alt="Les variables de l’espace de travail sur la page Environnements : token marqué Secret, son champ de valeur indiquant Stocké dans le trousseau" />

Dans le fichier, un secret est un nom et un indicateur, sans valeur :

```toml
[[variables]]
name = "token"
secret = true
```

Chaque niveau garde sa propre valeur. Un secret `password` dans l’environnement Staging et un autre dans Production sont
deux éléments du trousseau : chaque environnement peut donc avoir son propre mot de passe.

## Où se trouvent les valeurs [#where-the-values-live]

Les valeurs sont conservées dans votre trousseau de session, un élément par secret, nommé `Echolot secret <name>`. Elles
appartiennent à l’espace de travail (par son ID, qui se trouve dans `workspace.toml`) et au niveau où la variable est
définie. L’outil en ligne de commande, sur le même Mac, lit les mêmes éléments.

Un secret sans valeur sur ce Mac ne se rabat pas sur un autre niveau. La requête indique
`the secret {{password}} has no value on this Mac` tant que vous n’en avez pas défini une.

<Edition only="appstore">
  L’édition App Store utilise le même trousseau. Les éléments créés par le téléchargement direct ou par l’outil en ligne
  de commande peuvent demander une fois l’accès ; choisissez **Toujours autoriser**.
</Edition>

## Ce qui n’entre jamais dans les fichiers [#what-never-goes-into-files]

Echolot garde ces éléments hors des fichiers de l’espace de travail :

- Les valeurs des variables secrètes.
- Les secrets que stockent les [captures de réponse](/docs/requests/captures) : une capture marquée secrète n’écrit que
  dans le trousseau. Dans Alpenglow, **Auth › Sign in** capture `access_token` dans le secret `{{token}}`.
- Les jetons OAuth 2.0 et les connexions MCP.
- Les valeurs que vous déplacez avec **Placer dans le trousseau** (ci-dessous).

Ce que vous saisissez en clair reste en clair. Quand le champ d’un mot de passe d’auth ou de proxy contient une valeur
littérale au lieu d’une variable, Echolot vous avertit en dessous :
**Enregistré en clair dans le fichier de l’espace de travail.** Cliquez sur **Placer dans le trousseau** : la valeur
devient une variable secrète de l’espace de travail, et le champ reçoit `{{name}}` à sa place.

Les secrets sont aussi masqués partout où Echolot affiche ou transmet une requête résolue : aperçus, Coup d’œil, panneau
Variables, recherche dans l’historique et tout ce que reçoivent les agents.
[Générer du code…](/docs/workspaces/exporting#copy-a-request-as-code) et **Copier en tant que cURL** font exception : ils
écrivent la requête telle qu’elle serait envoyée, secrets compris.

## Les importations placent les identifiants dans des secrets [#imports-move-credentials-into-secrets]

Quand vous [importez](/docs/get-started/importing) une collection Postman, un export Insomnia ou un autre fichier, les
mots de passe, jetons et clés d’API trouvés dans les réglages d’auth et les en-têtes d’identification deviennent des
variables secrètes. Leurs valeurs vont dans le trousseau, et la requête reçoit `{{name}}` à la place : le nom de la
requête et du champ, par exemple `{{me_password}}`. Le rapport d’importation liste les noms des secrets enregistrés,
jamais les valeurs.

Les identifiants écrits dans des adresses (`https://user:pass@…`), des chaînes de requête et des corps ne sont pas
encore déplacés. Vérifiez-les après une importation.

## Les exports omettent les valeurs [#exports-leave-values-out]

Un [export](/docs/workspaces/exporting) écrit les variables secrètes par leur nom seulement, sans valeur, dans tous les
formats. La personne qui ouvre l’export définit les valeurs de son côté.

## Les secrets en ligne de commande et en CI [#secrets-on-the-command-line-and-in-ci]

L’outil en ligne de commande cherche la valeur d’un secret dans cet ordre :

1. Un fichier `--secrets` donné à `echolot run` : des lignes `NAME=value`.
2. Une variable d’environnement `ECHOLOT_SECRET_<NAME>` : le nom en majuscules, chaque caractère autre qu’une lettre ou
   un chiffre devenant `_`. `{{token}}` lit `ECHOLOT_SECRET_TOKEN` ; `{{api-key}}` lit `ECHOLOT_SECRET_API_KEY`.
3. Sur un Mac, les éléments du trousseau que gère l’app.

```sh
ECHOLOT_SECRET_TOKEN=… echolot run Alpenglow.echolot --folder orders
echolot run Alpenglow.echolot --env staging --secrets staging.secrets
```

Le trousseau est ignoré quand `CI` est défini, et quand `ECHOLOT_KEYCHAIN=0`. En CI, définissez les variables
`ECHOLOT_SECRET_…` à partir du magasin de secrets de votre CI. Voir [CI](/docs/cli/ci).

Un secret trouvé dans l’environnement vaut pour tous les niveaux : `ECHOLOT_SECRET_PASSWORD` répond à `{{password}}`
dans n’importe quel environnement.

Les importations en ligne de commande placent les identifiants dans des secrets comme le fait l’app. Sans trousseau,
l’outil indique quelles variables `ECHOLOT_SECRET_…` définir.

## La première ouverture d’un collègue [#a-teammates-first-open]

Un collègue qui clone l’espace de travail obtient le nom de chaque secret et aucune des valeurs. Ses tableaux indiquent
**Non défini sur ce Mac**. Il définit ses propres valeurs une fois, puis tout le monde travaille à partir des mêmes
fichiers avec ses propres identifiants. Voir [Git et équipes](/docs/workspaces/git-and-teams).
