> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/fr/reference/secret-references.md).

# Syntaxe des références de secret

Syntaxe des références devo, formes nommée et canonique, sections, attributs, encodage, URI de fournisseur SecretSpec, et façon dont les références sont trouvées dans un texte.

Une référence de secret est l’adresse d’un champ d’une entrée. Elle commence par `devo://` et dit où se trouve le secret, jamais ce qu’il est. Chaque commande `devo secret`, les manifestes de lancement, les fichiers `.env` et les modèles utilisent la même syntaxe.

Pour obtenir la référence d’un champ sans la taper, exécutez `devo entry references <entry>`. Consultez [Trouver la référence d’un secret](/cli/fr/guides/secrets/find-a-reference.md).

## Références nommées

Une référence nommée utilise les noms de l’espace de travail, du coffre et de l’entrée, donc elle est facile à lire :

```
devo://<workspace>/<vault>/<entry>/<field>
devo://<workspace>/<vault>/<entry>/<section>/<field>
```

<table><thead><tr><th width="190">SEGMENT</th><th>CE QUE C’EST</th></tr></thead><tbody><tr><td><code>&#x3C;workspace></code></td><td>L’espace de travail qui contient le coffre.</td></tr><tr><td><code>&#x3C;vault></code></td><td>Le coffre qui contient l’entrée.</td></tr><tr><td><code>&#x3C;entry></code></td><td>L’entrée qui contient le champ.</td></tr><tr><td><code>&#x3C;section></code></td><td>Facultatif, profil local seulement. La section de l’entrée qui contient le champ, quand le champ est dans une section. Devolutions Cloud et Devolutions Server refusent une section avec <code>unsupportedSecretField</code>.</td></tr><tr><td><code>&#x3C;field></code></td><td>Le champ à lire, par exemple <code>password</code>, <code>username</code>, <code>domain</code>, <code>host</code>, <code>otp</code> ou <code>privatekey</code>.</td></tr></tbody></table>

Une référence nommée est résolue dans l’espace de travail sélectionné pour la commande : le contexte actuel, ou celui que vous choisissez avec `--context` ou `--source`. Consultez [Options globales](/cli/fr/reference/global-options.md).

## Références canoniques

Une référence canonique utilise des ID au lieu de noms :

```
devo://ws/<workspace-id>/vault/<vault-id>/entry/<entry-id>/field/<field>
```

* Elle continue de fonctionner quand l’entrée, le coffre ou l’espace de travail est renommé.
* Il nomme l’espace de travail qui le possède, donc il est résolu dans cet espace de travail, quel que soit le contexte actuel. Un `devo secret run` peut mélanger des références d’un profil local, de Devolutions Cloud et de Devolutions Server.
* Elle n’a pas de segment de section.
* Sur Devolutions Server, `devo entry references` n’énumère que des références canoniques. Une référence nommée que vous écrivez vous-même fonctionne encore.

## Attributs

Par défaut, une référence retourne la valeur du champ. Ajoutez `?attribute=` (ou la forme courte `?attr=`) pour lire des renseignements sur le champ au lieu de sa valeur. Les valeurs ne tiennent pas compte de la casse.

<table><thead><tr><th width="190">ATTRIBUT</th><th>CE QU’IL RETOURNE</th><th width="150">SECRET</th></tr></thead><tbody><tr><td><code>value</code></td><td>La valeur du champ. C’est la valeur par défaut, et le seul attribut qui retourne un secret.</td><td>Oui</td></tr><tr><td><code>type</code></td><td>Le type de champ.</td><td>No</td></tr><tr><td><code>id</code></td><td>L’ID de l’entrée.</td><td>No</td></tr><tr><td><code>title</code></td><td>Le nom de l’entrée. Vide pour une référence canonique sur Devolutions Cloud et Devolutions Server.</td><td>No</td></tr><tr><td><code>purpose</code></td><td>Pourquoi la valeur a été demandée : <code>read</code>, <code>inject</code>, <code>run</code> ou <code>mcp</code>. Vide sur un profil local.</td><td>No</td></tr></tbody></table>

`type`, `id`, `title` et `purpose` ne renvoient que des informations, jamais le secret, sur tous les types d’espace de travail.

Par exemple, `devo://<workspace>/<vault>/<entry>/password?attribute=type` retourne le genre du champ `password`, pas le mot de passe. `devo secret read` et `devo secret get` acceptent aussi `--attribute` à la place de la requête.

## Caractères spéciaux

Chaque segment entre deux `/` est décodé comme une URL. Si un nom contient `/`, `?`, `#`, `%` ou une espace, encodez-le : par exemple, écrivez `Web%2FProd` pour une entrée nommée `Web/Prod`, et `My%20vault` pour `My vault`. Un `:` peut rester tel quel.

Les références que Devolutions CLI affiche, par exemple avec `devo entry references`, sont déjà encodées.

## Règles et erreurs

Quand une référence ne peut pas être lue, la commande échoue avec le code d’erreur `invalidSecretReference` et l’un de ces messages.

<table><thead><tr><th width="320">MESSAGE</th><th>QUOI VÉRIFIER</th></tr></thead><tbody><tr><td>"Secret reference cannot be empty."</td><td>La référence est vide ou ne contient que des espaces.</td></tr><tr><td>"Secret reference must start with 'devo://'."</td><td>Le préfixe est absent ou mal écrit. Le préfixe ne tient pas compte de la casse.</td></tr><tr><td>"Secret references do not support URI fragments."</td><td>La référence contient <code>#</code>. Encodez-le sous la forme <code>%23</code> s’il fait partie d’un nom.</td></tr><tr><td>"Secret reference path cannot be empty."</td><td>Rien ne suit <code>devo://</code>.</td></tr><tr><td>"Use devo://&#x3C;workspace>/&#x3C;vault>/&#x3C;entry>/&#x3C;field> or devo://&#x3C;workspace>/&#x3C;vault>/&#x3C;entry>/&#x3C;section>/&#x3C;field>."</td><td>Une référence nommée a besoin de 4 ou 5 segments. Vérifiez s’il manque un segment ou s’il y a un <code>/</code> non encodé dans un nom.</td></tr><tr><td>"Secret reference path segments cannot be empty."</td><td>Deux <code>/</code> se suivent, ou la référence se termine par <code>/</code>.</td></tr><tr><td>"Canonical ID references must use devo://ws/&#x3C;id>/vault/&#x3C;id>/entry/&#x3C;id>/field/&#x3C;field>."</td><td>Une référence qui commence par <code>ws</code> et a 8 segments doit utiliser les mots <code>vault</code>, <code>entry</code> et <code>field</code> dans cet ordre.</td></tr><tr><td>"Canonical workspace, vault, and entry identifiers cannot be empty."</td><td>Un ID est absent dans une référence canonique.</td></tr><tr><td>"Canonical field segment cannot be empty."</td><td>Le champ est absent à la fin d’une référence canonique.</td></tr></tbody></table>

Un attribut inconnu échoue avec le code `unsupportedSecretAttribute` et le message « Unsupported secret reference attribute '\<value>'. ». Les autres paramètres de requête sont ignorés.

Quand la référence est valide mais ne mène pas à un champ que vous pouvez lire, consultez [Une référence de secret ne se résout pas](/cli/fr/aide/troubleshooting/reference-does-not-resolve.md).

## Références à l’intérieur d’un texte

`devo secret inject` trouve les références dans un modèle et remplace chacune par sa valeur. Il reconnaît deux formes :

<table><thead><tr><th width="250">FORME</th><th>OÙ CELA SE TERMINE</th></tr></thead><tbody><tr><td><code>{{ devo://… }}</code></td><td>Au <code>}}</code> fermant. Les accolades sont aussi remplacées, et les espaces à l’intérieur sont ignorés. Utilisez cette forme quand la référence est à côté d’un autre texte.</td></tr><tr><td><code>devo://…</code></td><td>Au premier espace, saut de ligne, <code>"</code>, <code>'</code>, <code>&#x3C;</code>, <code>></code>, <code>)</code>, <code>]</code> ou <code>}</code>.</td></tr></tbody></table>

Un texte qui commence par `devo://` mais qui n’est pas une référence valide est laissé tel quel.

Dans un modèle, une référence peut aussi contenir des variables d’environnement, que `devo secret inject` remplace avant de lire le secret :

<table><thead><tr><th width="250">EXPRESSION</th><th>CE QU’IL DEVIENT</th></tr></thead><tbody><tr><td><code>$NAME</code> or <code>${NAME}</code></td><td>La valeur de la variable d’environnement <code>NAME</code>. Si elle n’est pas définie ou est vide, la commande échoue avec <code>missingSecretReferenceVariable</code>.</td></tr><tr><td><code>${NAME:-default}</code></td><td>La valeur de <code>NAME</code>, ou <code>default</code> quand elle n’est pas définie ou qu’elle est vide.</td></tr></tbody></table>

Par exemple, `{{ devo://<workspace>/${VAULT:-Staging}/<entry>/password }}` lit depuis le coffre nommé dans `VAULT`, ou depuis `Staging`.

{% hint style="warning" %}
`devo secret inject` écrit les valeurs en texte clair dans sa sortie. Consultez [Remplir un fichier de configuration à partir d’un modèle](/cli/fr/guides/secrets/fill-a-template.md).
{% endhint %}

## URI de fournisseur SecretSpec

SecretSpec n’utilise pas de références de secret. Dans `secretspec.toml`, il utilise un URI de fournisseur qui lui indique quel espace de travail Devolutions CLI doit lire. Affichez le bon avec `devo secretspec uri`. Consultez [Utiliser Devolutions CLI avec SecretSpec](/cli/fr/guides/secrets/secretspec.md).

<table><thead><tr><th width="330">URI DU FOURNISSEUR</th><th>ESPACE DE TRAVAIL</th></tr></thead><tbody><tr><td><code>devo://cloud[/&#x3C;vault-id>][?context=&#x3C;name>]</code></td><td>Devolutions Cloud, par le contexte <code>&#x3C;name></code>, ou le contexte Devolutions Cloud actuel sans <code>?context=</code>.</td></tr><tr><td><code>devo://server[/&#x3C;vault-id>][?context=&#x3C;name>]</code></td><td>Devolutions Server, par le contexte <code>&#x3C;name></code>, ou le contexte Devolutions Server actuel sans <code>?context=</code>.</td></tr><tr><td><code>devo://sqlite[/&#x3C;vault-id>]?workspace=&#x3C;workspace-id></code></td><td>Un espace de travail local Devolutions Remote Desktop Manager. <code>?workspace=</code> est obligatoire, avec un ID d’espace de travail comme <code>sqlite:Connections.db</code>. <code>devo workspace current</code> l’affiche.</td></tr></tbody></table>

`<vault-id>` est facultatif : il définit le coffre par défaut, et chaque secret peut encore nommer son propre coffre.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/fr/reference/secret-references.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
