devcontainer.md +25 −25
12 12
13<Warning>13<Warning>
14 Aunque el contenedor de desarrollo proporciona protecciones sustanciales, ningún sistema es completamente inmune a todos los ataques.14 Aunque el contenedor de desarrollo proporciona protecciones sustanciales, ningún sistema es completamente inmune a todos los ataques.
1515 Cuando se ejecuta con `--dangerously-skip-permissions`, los contenedores de desarrollo no previenen que un proyecto malicioso exfiltre cualquier cosa accesible dentro del contenedor, incluyendo las credenciales de Claude Code almacenadas en [`~/.claude`](/es/claude-directory). Cuando se ejecuta con `--dangerously-skip-permissions`, los contenedores de desarrollo no previenen que un proyecto malicioso exfiltre cualquier cosa accesible dentro del contenedor, incluyendo las credenciales de Claude Code almacenadas en [`~/.claude`](/docs/es/claude-directory).
16 Solo usa contenedores de desarrollo cuando desarrolles con repositorios de confianza, y monitorea las actividades de Claude.16 Solo usa contenedores de desarrollo cuando desarrolles con repositorios de confianza, y monitorea las actividades de Claude.
17 Evita montar secretos del host como `~/.ssh` o archivos de credenciales en la nube en el contenedor; prefiere tokens con alcance de repositorio o de corta duración.17 Evita montar secretos del host como `~/.ssh` o archivos de credenciales en la nube en el contenedor; prefiere tokens con alcance de repositorio o de corta duración.
18</Warning>18</Warning>
20<Accordion title="Cómo funcionan los contenedores de desarrollo con tu editor">20<Accordion title="Cómo funcionan los contenedores de desarrollo con tu editor">
21 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=9017b1d16a446c6cc37ba562f35b9aae" className="dark:hidden" alt="Diagrama que muestra un editor en el host conectándose a un contenedor de desarrollo Docker. Claude Code, la terminal y las herramientas de compilación se ejecutan dentro del contenedor. El repositorio del host está montado en bind en el contenedor como el espacio de trabajo." width="640" height="300" data-path="images/devcontainer-architecture.svg" />21 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=9017b1d16a446c6cc37ba562f35b9aae" className="dark:hidden" alt="Diagrama que muestra un editor en el host conectándose a un contenedor de desarrollo Docker. Claude Code, la terminal y las herramientas de compilación se ejecutan dentro del contenedor. El repositorio del host está montado en bind en el contenedor como el espacio de trabajo." width="640" height="300" data-path="images/devcontainer-architecture.svg" />
22 22
2323 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture-dark.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=ef00c8e25b1ea7a3a152895f1488831b" className="hidden dark:block" alt="Diagrama que muestra un editor en el host conectándose a un contenedor de desarrollo Docker. Claude Code, la terminal y las herramientas de compilación se ejecutan dentro del contenedor. El repositorio del host está montado en bind en el contenedor como el espacio de trabajo." width="640" height="300" data-path="images/devcontainer-architecture-dark.svg" /> <img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/devcontainer-architecture-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=a0a340b1f2afc6a590696102c8acaaca" className="hidden dark:block" alt="Diagrama que muestra un editor en el host conectándose a un contenedor de desarrollo Docker. Claude Code, la terminal y las herramientas de compilación se ejecutan dentro del contenedor. El repositorio del host está montado en bind en el contenedor como el espacio de trabajo." width="640" height="300" data-path="images/devcontainer-architecture-dark.svg" />
24 24
25 Un contenedor de desarrollo se ejecuta como un contenedor Docker, ya sea en tu máquina o en un host en la nube como GitHub Codespaces. Un editor que admita la especificación Dev Containers, como VS Code, GitHub Codespaces, un IDE de JetBrains o Cursor, se conecta a ese contenedor: navegas y editas archivos en el editor como de costumbre, pero la terminal integrada, los servidores de lenguaje y las herramientas de compilación se ejecutan dentro del contenedor en lugar de en tu host. Los editores sin soporte para contenedores de desarrollo, como Vim simple, no son parte de este flujo de trabajo.25 Un contenedor de desarrollo se ejecuta como un contenedor Docker, ya sea en tu máquina o en un host en la nube como GitHub Codespaces. Un editor que admita la especificación Dev Containers, como VS Code, GitHub Codespaces, un IDE de JetBrains o Cursor, se conecta a ese contenedor: navegas y editas archivos en el editor como de costumbre, pero la terminal integrada, los servidores de lenguaje y las herramientas de compilación se ejecutan dentro del contenedor en lugar de en tu host. Los editores sin soporte para contenedores de desarrollo, como Vim simple, no son parte de este flujo de trabajo.
26 26
2727 Claude Code se ejecuta dentro del contenedor, por lo que ve los mismos archivos, dependencias y herramientas que el resto de la cadena de herramientas de tu proyecto. En VS Code puedes usar el [panel de extensión de Claude Code](/es/vs-code) o ejecutar `claude` en la terminal integrada; ambos se ejecutan dentro del contenedor y comparten la misma configuración de `~/.claude`. Claude Code se ejecuta dentro del contenedor, por lo que ve los mismos archivos, dependencias y herramientas que el resto de la cadena de herramientas de tu proyecto. En VS Code puedes usar el [panel de extensión de Claude Code](/docs/es/vs-code) o ejecutar `claude` en la terminal integrada; ambos se ejecutan dentro del contenedor y comparten la misma configuración de `~/.claude`.
28</Accordion>28</Accordion>
29 29
30<h2 id="add-claude-code-to-your-dev-container">30<h2 id="add-claude-code-to-your-dev-container">
75Lo que ves en la solicitud de autenticación depende de tu proveedor:75Lo que ves en la solicitud de autenticación depende de tu proveedor:
76 76
77* **Anthropic**: inicia sesión a través de un navegador con tu cuenta de Claude o Anthropic Console77* **Anthropic**: inicia sesión a través de un navegador con tu cuenta de Claude o Anthropic Console
7878* **[Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](/es/third-party-integrations)**: Claude Code usa tus credenciales del proveedor de nube, sin solicitud de navegador* **[Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](/docs/es/third-party-integrations)**: Claude Code usa tus credenciales del proveedor de nube, sin solicitud de navegador
79 79
8080Para proveedores de nube, pasa credenciales al contenedor como variables de entorno a través de `containerEnv`, un secreto de Codespaces, o la identidad de carga de trabajo de tu nube en lugar de montar archivos de credenciales desde el host. Consulta [Amazon Bedrock](/es/amazon-bedrock), [Google Cloud's Agent Platform](/es/google-vertex-ai) o [Microsoft Foundry](/es/microsoft-foundry) para la cadena de credenciales que Claude Code lee.Para proveedores de nube, pasa credenciales al contenedor como variables de entorno a través de `containerEnv`, un secreto de Codespaces, o la identidad de carga de trabajo de tu nube en lugar de montar archivos de credenciales desde el host. Consulta [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) o [Microsoft Foundry](/docs/es/microsoft-foundry) para la cadena de credenciales que Claude Code lee.
81 81
8282Consulta [Elige tu proveedor de API](/es/admin-setup#choose-your-api-provider) para decidir qué camino se ajusta a tu organización.Consulta [Elige tu proveedor de API](/docs/es/admin-setup#choose-your-api-provider) para decidir qué camino se ajusta a tu organización.
83 83
84<Note>84<Note>
85 Si el inicio de sesión del navegador se completa pero la devolución de llamada nunca llega al contenedor, copia el código mostrado en el navegador y pégalo en la solicitud `Paste code here if prompted` en la terminal. Esto puede suceder cuando el reenvío de puertos del editor no enruta la devolución de llamada de localhost.85 Si el inicio de sesión del navegador se completa pero la devolución de llamada nunca llega al contenedor, copia el código mostrado en el navegador y pégalo en la solicitud `Paste code here if prompted` en la terminal. Esto puede suceder cuando el reenvío de puertos del editor no enruta la devolución de llamada de localhost.
89 Persistir autenticación y configuración entre reconstrucciones89 Persistir autenticación y configuración entre reconstrucciones
90</h2>90</h2>
91 91
9292De forma predeterminada, el directorio de inicio del contenedor se descarta en la reconstrucción, por lo que los ingenieros deben iniciar sesión nuevamente cada vez. Claude Code almacena su token de autenticación, configuración de usuario e historial de sesión en [`~/.claude`](/es/claude-directory). Monta un volumen nombrado en esa ruta para mantener este estado entre reconstrucciones.De forma predeterminada, el directorio de inicio del contenedor se descarta en la reconstrucción, por lo que los ingenieros deben iniciar sesión nuevamente cada vez. Claude Code almacena su token de autenticación, configuración de usuario e historial de sesión en [`~/.claude`](/docs/es/claude-directory). Monta un volumen nombrado en esa ruta para mantener este estado entre reconstrucciones.
93 93
94El siguiente ejemplo monta un volumen en el directorio de inicio del usuario `node`:94El siguiente ejemplo monta un volumen en el directorio de inicio del usuario `node`:
95 95
99]99]
100```100```
101 101
102102Reemplaza `/home/node` con el directorio de inicio del `remoteUser` de tu contenedor. Si montas el volumen en algún lugar que no sea `~/.claude`, establece [`CLAUDE_CONFIG_DIR`](/es/env-vars) en la ruta de montaje para que Claude Code lea y escriba allí.Reemplaza `/home/node` con el directorio de inicio del `remoteUser` de tu contenedor. Si montas el volumen en algún lugar que no sea `~/.claude`, establece [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) en la ruta de montaje para que Claude Code lea y escriba allí.
103 103
104Para aislar el estado por proyecto en lugar de compartir un volumen en todos los repositorios, incluye la variable `${devcontainerId}` en el nombre de la fuente. La [configuración de referencia](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) usa `source=claude-code-config-${devcontainerId}` para este propósito.104Para aislar el estado por proyecto en lugar de compartir un volumen en todos los repositorios, incluye la variable `${devcontainerId}` en el nombre de la fuente. La [configuración de referencia](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) usa `source=claude-code-config-${devcontainerId}` para este propósito.
105 105
106106En GitHub Codespaces, `~/.claude` persiste entre detener e iniciar un codespace, pero aún se borra cuando reconstruyes el contenedor, por lo que el montaje de volumen anterior también se aplica allí. Para llevar la autenticación entre codespaces, almacena `ANTHROPIC_API_KEY` o un `CLAUDE_CODE_OAUTH_TOKEN` de [`claude setup-token`](/es/authentication#generate-a-long-lived-token) como un [secreto de Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces); Codespaces hace que los secretos estén disponibles como variables de entorno dentro del contenedor automáticamente.En GitHub Codespaces, `~/.claude` persiste entre detener e iniciar un codespace, pero aún se borra cuando reconstruyes el contenedor, por lo que el montaje de volumen anterior también se aplica allí. Para llevar la autenticación entre codespaces, almacena `ANTHROPIC_API_KEY` o un `CLAUDE_CODE_OAUTH_TOKEN` de [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token) como un [secreto de Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces); Codespaces hace que los secretos estén disponibles como variables de entorno dentro del contenedor automáticamente.
107 107
108<h2 id="enforce-organization-policy">108<h2 id="enforce-organization-policy">
109 Aplicar política organizacional109 Aplicar política organizacional
111 111
112Un contenedor de desarrollo es un lugar conveniente para aplicar la política organizacional, porque la misma imagen y configuración se ejecutan en la máquina de cada ingeniero.112Un contenedor de desarrollo es un lugar conveniente para aplicar la política organizacional, porque la misma imagen y configuración se ejecutan en la máquina de cada ingeniero.
113 113
114114Claude Code lee `/etc/claude-code/managed-settings.json` en Linux y lo aplica con la máxima precedencia en la [jerarquía de configuración](/es/settings#how-scopes-interact), por lo que los valores allí anulan cualquier cosa que un ingeniero establezca en `~/.claude` o en el directorio `.claude/` del proyecto. Copia el archivo en su lugar desde tu Dockerfile:Claude Code lee `/etc/claude-code/managed-settings.json` en Linux y lo aplica con la máxima precedencia en la [jerarquía de configuración](/docs/es/settings#how-scopes-interact), por lo que los valores allí anulan cualquier cosa que un ingeniero establezca en `~/.claude` o en el directorio `.claude/` del proyecto. Copia el archivo en su lugar desde tu Dockerfile:
115 115
116```dockerfile Dockerfile theme={null}116```dockerfile Dockerfile theme={null}
117RUN mkdir -p /etc/claude-code117RUN mkdir -p /etc/claude-code
118COPY managed-settings.json /etc/claude-code/managed-settings.json118COPY managed-settings.json /etc/claude-code/managed-settings.json
119```119```
120 120
121121Debido a que el Dockerfile vive en el repositorio, cualquiera con acceso de escritura puede cambiar o eliminar este paso. Para la política que los ingenieros no pueden eludir editando archivos del repositorio, entrega la configuración administrada a través de [configuración administrada por servidor](/es/server-managed-settings) o tu MDM en su lugar. Consulta [archivos de configuración administrada](/es/settings#settings-files) para las claves disponibles y las otras rutas de entrega.Debido a que el Dockerfile vive en el repositorio, cualquiera con acceso de escritura puede cambiar o eliminar este paso. Para la política que los ingenieros no pueden eludir editando archivos del repositorio, entrega la configuración administrada a través de [configuración administrada por servidor](/docs/es/server-managed-settings) o tu MDM en su lugar. Consulta [archivos de configuración administrada](/docs/es/settings#settings-files) para las claves disponibles y las otras rutas de entrega.
122 122
123123Para establecer [variables de entorno](/es/env-vars) que se apliquen a cada sesión de Claude Code en el contenedor, agrégalas a `containerEnv` en tu `devcontainer.json`. El siguiente ejemplo rechaza la telemetría y el informe de errores e impide que Claude Code se actualice automáticamente después de la instalación:Para establecer [variables de entorno](/docs/es/env-vars) que se apliquen a cada sesión de Claude Code en el contenedor, agrégalas a `containerEnv` en tu `devcontainer.json`. El siguiente ejemplo rechaza la telemetría y el informe de errores e impide que Claude Code se actualice automáticamente después de la instalación:
124 124
125```json devcontainer.json theme={null}125```json devcontainer.json theme={null}
126"containerEnv": {126"containerEnv": {
131 131
132La Característica Dev Container siempre instala la última versión de Claude Code. Para fijar una versión específica de Claude Code para compilaciones reproducibles, instálala desde tu Dockerfile con `npm install -g @anthropic-ai/claude-code@X.Y.Z` en lugar de usar la característica, y establece `DISABLE_AUTOUPDATER` como se muestra arriba.132La Característica Dev Container siempre instala la última versión de Claude Code. Para fijar una versión específica de Claude Code para compilaciones reproducibles, instálala desde tu Dockerfile con `npm install -g @anthropic-ai/claude-code@X.Y.Z` en lugar de usar la característica, y establece `DISABLE_AUTOUPDATER` como se muestra arriba.
133 133
134134Para la lista completa de controles de política incluyendo reglas de permiso, restricciones de herramientas y listas blancas de servidores MCP, consulta [Configurar Claude Code para tu organización](/es/admin-setup).Para la lista completa de controles de política incluyendo reglas de permiso, restricciones de herramientas y listas blancas de servidores MCP, consulta [Configurar Claude Code para tu organización](/docs/es/admin-setup).
135 135
136136Para hacer que [servidores MCP](/es/mcp) estén disponibles dentro del contenedor, defínelos en [alcance de proyecto](/es/mcp#mcp-installation-scopes) en un archivo `.mcp.json` en la raíz del repositorio para que se verifiquen junto con tu configuración de contenedor de desarrollo. Instala cualquier binario del que dependan los servidores stdio locales en tu Dockerfile, y agrega dominios de servidor remoto a tu lista blanca de red.Para hacer que [servidores MCP](/docs/es/mcp) estén disponibles dentro del contenedor, defínelos en [alcance de proyecto](/docs/es/mcp#mcp-installation-scopes) en un archivo `.mcp.json` en la raíz del repositorio para que se verifiquen junto con tu configuración de contenedor de desarrollo. Instala cualquier binario del que dependan los servidores stdio locales en tu Dockerfile, y agrega dominios de servidor remoto a tu lista blanca de red.
137 137
138<h2 id="restrict-network-egress">138<h2 id="restrict-network-egress">
139 Restringir salida de red139 Restringir salida de red
140</h2>140</h2>
141 141
142142Puedes limitar el tráfico saliente del contenedor solo a los dominios que Claude Code necesita. Consulta [Requisitos de acceso de red](/es/network-config#network-access-requirements) para los dominios de inferencia y autenticación, y [Servicios de telemetría](/es/data-usage#telemetry-services) para las conexiones opcionales de telemetría e informe de errores y cómo deshabilitarlas.Puedes limitar el tráfico saliente del contenedor solo a los dominios que Claude Code necesita. Consulta [Requisitos de acceso de red](/docs/es/network-config#network-access-requirements) para los dominios de inferencia y autenticación, y [Servicios de telemetría](/docs/es/data-usage#telemetry-services) para las conexiones opcionales de telemetría e informe de errores y cómo deshabilitarlas.
143 143
144El contenedor de referencia incluye un script [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh) que bloquea todo el tráfico saliente excepto los dominios que Claude Code y tus herramientas de desarrollo necesitan. Ejecutar un firewall dentro de un contenedor requiere permisos adicionales, por lo que la referencia agrega las capacidades `NET_ADMIN` y `NET_RAW` a través de `runArgs`. El script de firewall y estas capacidades no son requeridas para Claude Code en sí: puedes dejarlas fuera y confiar en tus propios controles de red en su lugar.144El contenedor de referencia incluye un script [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh) que bloquea todo el tráfico saliente excepto los dominios que Claude Code y tus herramientas de desarrollo necesitan. Ejecutar un firewall dentro de un contenedor requiere permisos adicionales, por lo que la referencia agrega las capacidades `NET_ADMIN` y `NET_RAW` a través de `runArgs`. El script de firewall y estas capacidades no son requeridas para Claude Code en sí: puedes dejarlas fuera y confiar en tus propios controles de red en su lugar.
145 145
151 151
152Omitir solicitudes de permiso elimina tu oportunidad de revisar llamadas de herramientas antes de que se ejecuten. Claude aún puede modificar cualquier archivo en el espacio de trabajo montado en bind, que aparece directamente en tu host, y alcanzar cualquier cosa que la política de red del contenedor permita. Empareja esta bandera con las [restricciones de salida de red](#restrict-network-egress) anteriores para limitar lo que una sesión omitida puede alcanzar.152Omitir solicitudes de permiso elimina tu oportunidad de revisar llamadas de herramientas antes de que se ejecuten. Claude aún puede modificar cualquier archivo en el espacio de trabajo montado en bind, que aparece directamente en tu host, y alcanzar cualquier cosa que la política de red del contenedor permita. Empareja esta bandera con las [restricciones de salida de red](#restrict-network-egress) anteriores para limitar lo que una sesión omitida puede alcanzar.
153 153
154154Si deseas menos solicitudes sin deshabilitar las comprobaciones de seguridad, considera [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode) en su lugar, que tiene un clasificador que revisa las acciones antes de que se ejecuten. Para prevenir que los ingenieros usen `--dangerously-skip-permissions` en absoluto, establece `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](/es/settings#permission-settings).Si deseas menos solicitudes sin deshabilitar las comprobaciones de seguridad, considera [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en su lugar, que tiene un clasificador que revisa las acciones antes de que se ejecuten. Para prevenir que los ingenieros usen `--dangerously-skip-permissions` en absoluto, establece `permissions.disableBypassPermissionsMode` en `"disable"` en [configuración administrada](/docs/es/settings#permission-settings).
155 155
156<h2 id="try-the-reference-container">156<h2 id="try-the-reference-container">
157 Prueba el contenedor de referencia157 Prueba el contenedor de referencia
193 193
194Una vez que Claude Code se ejecuta en tu contenedor de desarrollo, las páginas a continuación cubren el resto de un despliegue organizacional: elegir una ruta de autenticación, entregar política administrada fuera del repositorio, monitorear el uso y entender qué almacena y envía Claude Code.194Una vez que Claude Code se ejecuta en tu contenedor de desarrollo, las páginas a continuación cubren el resto de un despliegue organizacional: elegir una ruta de autenticación, entregar política administrada fuera del repositorio, monitorear el uso y entender qué almacena y envía Claude Code.
195 195
196196* [Configurar Claude Code para tu organización](/es/admin-setup): elige un proveedor de autenticación, decide cómo la política llega a los dispositivos y planifica el despliegue* [Configurar Claude Code para tu organización](/docs/es/admin-setup): elige un proveedor de autenticación, decide cómo la política llega a los dispositivos y planifica el despliegue
197197* [Configuración administrada por servidor](/es/server-managed-settings): entrega política administrada desde la consola de administrador de Claude.ai para que los ingenieros no puedan eludirla editando archivos del repositorio* [Configuración administrada por servidor](/docs/es/server-managed-settings): entrega política administrada desde la consola de administrador de Claude.ai para que los ingenieros no puedan eludirla editando archivos del repositorio
198198* [Monitorear el uso y auditar la actividad](/es/monitoring-usage): exporta métricas de OpenTelemetry y revisa lo que tu equipo está ejecutando* [Monitorear el uso y auditar la actividad](/docs/es/monitoring-usage): exporta métricas de OpenTelemetry y revisa lo que tu equipo está ejecutando
199199* [Requisitos de acceso de red](/es/network-config#network-access-requirements): la lista completa de dominios para proxies y firewalls* [Requisitos de acceso de red](/docs/es/network-config#network-access-requirements): la lista completa de dominios para proxies y firewalls
200200* [Servicios de telemetría y opción de exclusión](/es/data-usage#telemetry-services): qué envía Claude Code de forma predeterminada y las variables de entorno que lo deshabilitan* [Servicios de telemetría y opción de exclusión](/docs/es/data-usage#telemetry-services): qué envía Claude Code de forma predeterminada y las variables de entorno que lo deshabilitan
201201* [Explorar el directorio `.claude`](/es/claude-directory): qué contiene el montaje de volumen, incluyendo credenciales, configuración e historial de sesión* [Explorar el directorio `.claude`](/docs/es/claude-directory): qué contiene el montaje de volumen, incluyendo credenciales, configuración e historial de sesión
202202* [Entornos sandbox](/es/sandbox-environments): compara contenedores de desarrollo con el sandbox Bash integrado, contenedores personalizados y máquinas virtuales* [Entornos sandbox](/docs/es/sandbox-environments): compara contenedores de desarrollo con el sandbox Bash integrado, contenedores personalizados y máquinas virtuales
203203* [Modelo de seguridad](/es/security): cómo encajan el sistema de permisos de Claude Code, el sandboxing y las protecciones contra inyección de solicitudes* [Modelo de seguridad](/docs/es/security): cómo encajan el sistema de permisos de Claude Code, el sandboxing y las protecciones contra inyección de solicitudes
204204* [Modos de permiso](/es/permission-modes): el rango completo desde modo de plan hasta modo automático hasta omisión, y cuándo usar cada uno* [Modos de permiso](/docs/es/permission-modes): el rango completo desde modo de plan hasta modo automático hasta omisión, y cuándo usar cada uno