> 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/it/guide/secrets/secretspec.md).

# Usare Devolutions CLI con SecretSpec

Registrare Devolutions CLI come provider SecretSpec così i progetti che usano secretspec.toml leggono i propri segreti dalla cassaforte Devolutions.

[SecretSpec](https://secretspec.dev) consente a un progetto di dichiarare i segreti di cui ha bisogno in un file `secretspec.toml` e di recuperarli da un provider. Devolutions CLI può essere quel provider: una volta registrato, SecretSpec avvia `devo` per leggere segreti da Devolutions Cloud, Devolutions Server o un profilo locale di Devolutions Remote Desktop Manager, usando i contesti esistenti.

{% hint style="warning" %}
Devolutions CLI restituisce i valori segreti a SecretSpec, che li consegna all’applicazione. Il mascheramento non si applica. Consulti [Cosa resta nascosto e cosa no](/cli/it/guide/understand/security-model.md).
{% endhint %}

{% stepper %}
{% step %}

### Registrare Devolutions CLI come provider

```bash
devo secretspec register
```

Questo scrive un piccolo file di claim, `devo.secretspec.json`, che dice a SecretSpec quale eseguibile `devo` avviare per gli URI del provider `devo://`. Aggiunga `--dry-run` per vedere il claim senza scriverlo.

<table><thead><tr><th width="200">OPZIONE</th><th>CHE COSA FA</th></tr></thead><tbody><tr><td><code>--system</code></td><td>Scrive il claim per ogni utente del computer invece che solo per lei. Di solito servono diritti di amministratore.</td></tr><tr><td><code>--executable &#x3C;path></code></td><td>Registra un altro eseguibile <code>devo</code>. Il percorso deve essere assoluto. Per impostazione predefinita viene registrato il <code>devo</code> in esecuzione.</td></tr><tr><td><code>--environment &#x3C;name></code>, <code>--env</code></td><td>Consente a SecretSpec di passare una variabile d’ambiente aggiuntiva a <code>devo</code>, per nome esatto o per prefisso come <code>DEVO_*</code>. Ripeta per più di una. <code>RDM_CONFIG_PATH</code> e <code>DEVO_CLI_CONFIG_HOME</code> sono sempre inclusi.</td></tr><tr><td><code>--force</code></td><td>Sostituisce un claim che punta a un altro eseguibile per lo schema <code>devo</code>.</td></tr></tbody></table>
{% endstep %}

{% step %}

### Ottenere l’URI del provider

Selezioni lo spazio di lavoro con `--context` (o usi il contesto corrente), quindi chieda il suo URI del provider:

```bash
devo secretspec uri --context <context-name> --vault-id <vault-id>
```

Metta l’URI che stampa nel suo `secretspec.toml` come provider. `--vault-id` è facoltativo: imposta la cassaforte predefinita, e un segreto può ancora nominare la propria cassaforte.
{% endstep %}

{% step %}

### Verifichi la registrazione

```bash
devo secretspec status
```

Lo stato mostra il claim per l’utente e per il computer e, per ciascuno, se è registrato, se punta al `devo` in esecuzione, a un altro o a un eseguibile che non esiste più.
{% endstep %}
{% endstepper %}

## Forme di URI del provider

<table><thead><tr><th width="200">SPAZIO DI LAVORO</th><th>URI DEL PROVIDER</th></tr></thead><tbody><tr><td><strong>Devolutions Cloud</strong></td><td><code>devo://cloud/&#x3C;vault-id>?context=&#x3C;context-name></code></td></tr><tr><td><strong>Devolutions Server</strong></td><td><code>devo://server/&#x3C;vault-id>?context=&#x3C;context-name></code></td></tr><tr><td><strong>Profilo locale</strong></td><td><code>devo://sqlite/&#x3C;vault-id>?workspace=sqlite:&#x3C;file-name>.db</code></td></tr></tbody></table>

* L’ID della cassaforte è facoltativo in ogni forma. Senza di esso, ogni segreto deve nominare il proprio `vault`, altrimenti Devolutions CLI lo rifiuta.
* Per Devolutions Cloud e Devolutions Server, `?context=` è facoltativo. Senza di esso, il provider usa il contesto corrente.
* Per un profilo locale, lo spazio di lavoro è obbligatorio. Lo passi a `devo secretspec uri` con `--workspace-id`, per esempio `--workspace-id sqlite:Connections.db`.

Questi URI di provider selezionano uno spazio di lavoro per SecretSpec. Non sono riferimenti al segreto: non può usarli con `devo secret run`.

## Come vengono indirizzati i segreti

Devolutions CLI accetta solo indirizzi nativi di SecretSpec: ogni segreto nomina l’**ID della voce** (`item`), il **campo** (obbligatorio) e, facoltativamente, una **cassaforte** che sostituisce quella nell’URI del provider. Gli indirizzi basati sulla convenzione di SecretSpec (progetto, profilo e chiave) sono rifiutati, perché non possono puntare con certezza a una voce. Le sezioni non sono supportate.

<table><thead><tr><th width="200">SPAZIO DI LAVORO</th><th>LETTURA</th><th>SCRITTURA</th></tr></thead><tbody><tr><td><strong>Devolutions Server</strong></td><td>Qualsiasi proprietà dati della voce.</td><td>Qualsiasi proprietà dati della voce.</td></tr><tr><td><strong>Devolutions Cloud</strong></td><td><code>domain</code>, <code>host</code>, <code>password</code>, <code>port</code>, <code>privatekey</code>, <code>url</code>, <code>username</code>.</td><td>Solo <code>password</code>, su una voce che contiene le proprie credenziali.</td></tr><tr><td><strong>Profilo locale</strong></td><td>Sì.</td><td>Solo <code>password</code>, con la passphrase dello spazio di lavoro.</td></tr></tbody></table>

## Smettere di usare Devolutions CLI come provider

```bash
devo secretspec unregister
```

Aggiunga `--system` per rimuovere il claim per l’intero computer e `--dry-run` per vedere quale claim verrebbe rimosso.

## Dove va il file del claim

| SISTEMA     | PER IL SUO UTENTE                                                                                                                                                   | CON `--system`                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Windows** | `SecretSpec\providers.d` nella cartella dei dati mobili delle applicazioni                                                                                          | `SecretSpec\providers.d` nella cartella dei dati delle applicazioni di tutto il computer |
| **macOS**   | `~/Library/Application Support/SecretSpec/providers.d`                                                                                                              | `/Library/Application Support/SecretSpec/providers.d`                                    |
| **Linux**   | `$XDG_CONFIG_HOME/secretspec/providers.d`, oppure `~/.config/secretspec/providers.d` quando `XDG_CONFIG_HOME` non è impostato, è vuoto o non è un percorso assoluto | `/etc/secretspec/providers.d`                                                            |

## Buono a sapersi

* SecretSpec avvia `devo` da solo. Non deve eseguire `devo secretspec provider`.
* Aggiunga con `--environment` ogni altra variabile da cui dipendono i contesti, così SecretSpec può passarla a `devo`.

## Successivo

* [Switch between workspaces](/cli/it/guide/connect/switch-workspaces.md)
* Ogni opzione di `devo secretspec`: [Comandi](/cli/it/riferimento/commands.md)


---

# 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/it/guide/secrets/secretspec.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.
