# Secretos (/es/docs/workspaces/secrets)

Un secreto es una variable cuyo valor se queda en el llavero de tu Mac. El archivo del espacio de trabajo solo contiene su
nombre, así que puedes confirmar el espacio de trabajo y compartirlo sin compartir tus credenciales. Usa secretos para
contraseñas, tokens, claves de API y cualquier otra cosa que no pegarías en un chat.

## Convierte una variable en secreta [#make-a-variable-secret]

1. Abre la tabla de la variable: la página [Entornos](/docs/workspaces/environments),
   **Ajustes de la carpeta… › Variables** o la pestaña **Variables** de la solicitud.
2. Añade la variable, o búscala, y marca **Secreto**.
3. Escribe el valor en el campo (dice **Sin definir en este Mac**) y pulsa <kbd>↩</kbd> o haz clic en **Guardar**.

El campo nunca vuelve a mostrar el valor. Dice **Guardado en el llavero**, con una llave, cuando ya hay un valor. Para
cambiar el valor, escribe uno nuevo y guárdalo.

Usa un secreto como cualquier variable: `{{token}}`.

<Shot id="workspaces-secret-variable" alt="Variables del espacio de trabajo en la página Entornos: token marcado como Secreto, con su campo de valor que dice Guardado en el llavero" />

En el archivo, un secreto es un nombre y una marca, sin valor:

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

Cada nivel guarda su propio valor. Un secreto `password` en el entorno Staging y otro en Production son dos elementos
del llavero, así que cada entorno puede tener su propia contraseña.

## Dónde están los valores [#where-the-values-live]

Los valores se guardan en tu llavero de inicio de sesión, un elemento por secreto, con la etiqueta
`Echolot secret <name>`. Pertenecen al espacio de trabajo (por su ID, que está en `workspace.toml`) y al nivel en el que
se define la variable. La herramienta de línea de comandos del mismo Mac lee los mismos elementos.

Un secreto sin valor en este Mac no recurre a otro nivel. La solicitud dice
`the secret {{password}} has no value on this Mac` hasta que defines uno.

<Edition only="appstore">
  La edición de la App Store usa el mismo llavero. Los elementos que ha creado la descarga directa o la herramienta de
  línea de comandos pueden pedir acceso una vez; elige **Permitir siempre**.
</Edition>

## Lo que nunca va a los archivos [#what-never-goes-into-files]

Echolot mantiene estas cosas fuera de los archivos del espacio de trabajo:

- Los valores de las variables secretas.
- Los secretos que guardan las [capturas de respuesta](/docs/requests/captures): una captura marcada como secreta solo
  escribe en el llavero. En Alpenglow, **Auth › Sign in** captura `access_token` en el secreto `{{token}}`.
- Los tokens de OAuth 2.0 y los inicios de sesión de MCP.
- Los valores que mueves con **Trasladar al llavero** (más abajo).

Lo que escribes como texto sin cifrar se queda como texto sin cifrar. Cuando un campo de contraseña de autenticación o
de proxy contiene un valor literal en lugar de una variable, Echolot avisa debajo:
**Se guarda como texto sin cifrar en el archivo del espacio de trabajo.** Haz clic en **Trasladar al llavero**: el valor
se convierte en una variable secreta del espacio de trabajo, y el campo recibe `{{name}}` en su lugar.

Los secretos también se enmascaran allí donde Echolot muestra o entrega una solicitud resuelta: vistas previas, vista
rápida, el panel Variables, la búsqueda en el historial y todo lo que reciben los agentes. [Generar
código…](/docs/workspaces/exporting#copy-a-request-as-code) y **Copiar como cURL** son la excepción: escriben la solicitud
tal como se enviaría, secretos incluidos.

## Las importaciones mueven las credenciales a secretos [#imports-move-credentials-into-secrets]

Cuando [importas](/docs/get-started/importing) una colección de Postman, una exportación de Insomnia u otro archivo, las
contraseñas, tokens y claves de API que se encuentran en los ajustes de autenticación y en las cabeceras de credenciales
se convierten en variables secretas. Sus valores van al llavero, y la solicitud recibe `{{name}}` en su lugar: el nombre
de la solicitud y el campo, como `{{me_password}}`. El informe de la importación enumera los nombres de los secretos que
ha guardado, nunca los valores.

Las credenciales escritas en direcciones (`https://user:pass@…`), cadenas de consulta y cuerpos aún no se mueven.
Revísalas después de una importación.

## Las exportaciones omiten los valores [#exports-leave-values-out]

Una [exportación](/docs/workspaces/exporting) escribe las variables secretas solo por su nombre, sin valor, en todos los
formatos. Quien abre la exportación define los valores por su cuenta.

## Secretos en la línea de comandos y en CI [#secrets-on-the-command-line-and-in-ci]

La herramienta de línea de comandos busca el valor de un secreto en este orden:

1. Un archivo `--secrets` pasado a `echolot run`: líneas de `NAME=value`.
2. Una variable de entorno `ECHOLOT_SECRET_<NAME>`: el nombre en mayúsculas, con cada carácter que no sea una letra o
   una cifra convertido en `_`. `{{token}}` lee `ECHOLOT_SECRET_TOKEN`; `{{api-key}}` lee `ECHOLOT_SECRET_API_KEY`.
3. En un Mac, los elementos del llavero que guarda la app.

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

El llavero se omite cuando `CI` está definido y cuando `ECHOLOT_KEYCHAIN=0`. En CI, define las variables
`ECHOLOT_SECRET_…` desde el almacén de secretos de tu CI. Consulta [CI](/docs/cli/ci).

Un secreto que se encuentra en el entorno vale para todos los niveles: `ECHOLOT_SECRET_PASSWORD` responde a
`{{password}}` en cualquier entorno.

Las importaciones en la línea de comandos mueven las credenciales a secretos igual que la app. Sin un llavero, la
herramienta dice qué variables `ECHOLOT_SECRET_…` hay que definir.

## La primera apertura de un compañero [#a-teammates-first-open]

Un compañero que clona el espacio de trabajo recibe el nombre de cada secreto y ninguno de los valores. Sus tablas dicen
**Sin definir en este Mac**. Define sus propios valores una vez, y a partir de entonces todos trabajan con los mismos
archivos y con sus propias credenciales. Consulta [Git y equipos](/docs/workspaces/git-and-teams).
