> 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/es/guias/secrets/secretspec.md).

# Usar Devolutions CLI con SecretSpec

Registrar Devolutions CLI como proveedor de SecretSpec para que los proyectos que usan secretspec.toml lean sus secretos desde su bóveda de Devolutions.

[SecretSpec](https://secretspec.dev) permite que un proyecto declare los secretos que necesita en un archivo `secretspec.toml` y los obtenga de un proveedor. Devolutions CLI puede ser ese proveedor: una vez registrado, SecretSpec inicia `devo` para leer secretos de Devolutions Cloud, Devolutions Server o un perfil local de Devolutions Remote Desktop Manager, usando sus contextos existentes.

{% hint style="warning" %}
Devolutions CLI devuelve los valores secretos a SecretSpec, que se los entrega a su aplicación. El enmascaramiento no se aplica. Consulte [Qué permanece oculto y qué no](/cli/es/guias/understand/security-model.md).
{% endhint %}

{% stepper %}
{% step %}

### Registrar Devolutions CLI como proveedor

```bash
devo secretspec register
```

Esto escribe un pequeño archivo de reivindicación, `devo.secretspec.json`, que indica a SecretSpec qué ejecutable `devo` iniciar para los URI del proveedor `devo://`. Añada `--dry-run` para ver la reivindicación sin escribirla.

<table><thead><tr><th width="200">OPCIÓN</th><th>QUÉ HACE</th></tr></thead><tbody><tr><td><code>--system</code></td><td>Escribe la reivindicación para cada usuario del ordenador en lugar de solo para usted. Esto suele necesitar derechos de administrador.</td></tr><tr><td><code>--executable &#x3C;path></code></td><td>Registra otro ejecutable <code>devo</code>. La ruta debe ser absoluta. De forma predeterminada, se registra el <code>devo</code> que está ejecutando.</td></tr><tr><td><code>--environment &#x3C;name></code>, <code>--env</code></td><td>Permite a SecretSpec pasar una variable de entorno adicional a <code>devo</code>, por nombre exacto o por prefijo como <code>DEVO_*</code>. Repita para varias. <code>RDM_CONFIG_PATH</code> y <code>DEVO_CLI_CONFIG_HOME</code> se incluyen siempre.</td></tr><tr><td><code>--force</code></td><td>Sustituye una reivindicación que apunta a otro ejecutable para el esquema <code>devo</code>.</td></tr></tbody></table>
{% endstep %}

{% step %}

### Obtener el URI del proveedor

Seleccione el espacio de trabajo con `--context` (o use el contexto actual) y pida su URI de proveedor:

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

Ponga el URI que imprime en su `secretspec.toml` como proveedor. `--vault-id` es opcional: define la bóveda predeterminada, y un secreto todavía puede nombrar su propia bóveda.
{% endstep %}

{% step %}

### Compruebe el registro

```bash
devo secretspec status
```

El estado muestra la reivindicación de su usuario y del equipo, y para cada uno si está registrado, si apunta al `devo` que está ejecutando, a otro, o a un ejecutable que ya no existe.
{% endstep %}
{% endstepper %}

## Formas de URI de proveedor

<table><thead><tr><th width="200">ESPACIO DE TRABAJO</th><th>URI DEL PROVEEDOR</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>Perfil local</strong></td><td><code>devo://sqlite/&#x3C;vault-id>?workspace=sqlite:&#x3C;file-name>.db</code></td></tr></tbody></table>

* El identificador de la bóveda es opcional en cada forma. Sin él, cada secreto debe nombrar su propio `vault`, o Devolutions CLI lo rechaza.
* Para Devolutions Cloud y Devolutions Server, `?context=` es opcional. Sin él, el proveedor usa el contexto actual.
* Para un perfil local, el espacio de trabajo es obligatorio. Páselo a `devo secretspec uri` con `--workspace-id`, por ejemplo `--workspace-id sqlite:Connections.db`.

Estos URI de proveedor seleccionan un espacio de trabajo para SecretSpec. No son referencias de secreto: no puede usarlos con `devo secret run`.

## Cómo se direccionan los secretos

Devolutions CLI solo acepta direcciones nativas de SecretSpec: cada secreto nombra el **identificador de la entrada** (`item`), el **campo** (obligatorio) y, opcionalmente, una **bóveda** que sustituye la del URI del proveedor. Las direcciones por convención de SecretSpec (proyecto, perfil y clave) se rechazan, porque no pueden apuntar a una entrada con certeza. Las secciones no se admiten.

<table><thead><tr><th width="200">ESPACIO DE TRABAJO</th><th>LECTURA</th><th>ESCRITURA</th></tr></thead><tbody><tr><td><strong>Devolutions Server</strong></td><td>Cualquier propiedad de datos de la entrada.</td><td>Cualquier propiedad de datos de la entrada.</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>, en una entrada que contiene sus propias credenciales.</td></tr><tr><td><strong>Perfil local</strong></td><td>Sí.</td><td>Solo <code>password</code>, con la frase de contraseña del espacio de trabajo.</td></tr></tbody></table>

## Dejar de usar Devolutions CLI como proveedor

```bash
devo secretspec unregister
```

Añada `--system` para quitar la reivindicación de todo el ordenador, y `--dry-run` para ver qué reivindicación se quitaría.

## Adónde va el archivo de reivindicación

| SISTEMA     | PARA SU USUARIO                                                                                                                                                 | CON `--system`                                                                  |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| **Windows** | `SecretSpec\providers.d` en su carpeta de datos de aplicación móviles                                                                                           | `SecretSpec\providers.d` en la carpeta de datos de aplicación de todo el equipo |
| **macOS**   | `~/Library/Application Support/SecretSpec/providers.d`                                                                                                          | `/Library/Application Support/SecretSpec/providers.d`                           |
| **Linux**   | `$XDG_CONFIG_HOME/secretspec/providers.d`, o `~/.config/secretspec/providers.d` cuando `XDG_CONFIG_HOME` no está definido, está vacío o no es una ruta absoluta | `/etc/secretspec/providers.d`                                                   |

## Bueno saberlo

* SecretSpec inicia `devo` por sí mismo. No necesita ejecutar `devo secretspec provider`.
* Añada con `--environment` cualquier otra variable de la que dependan sus contextos, para que SecretSpec pueda pasarla a `devo`.

## Siguiente

* [Switch between workspaces](/cli/es/guias/connect/switch-workspaces.md)
* Cada opción de `devo secretspec`: [Comandos](/cli/es/referencia/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/es/guias/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.
