Saltar al contenido principal
POST
Desvincular convierte una aplicación o un stack en uno normal: sigue funcionando tal como está, pero ya no ve nuevas versiones de la plantilla y no puede actualizarse desde ella. No se puede deshacer. Esta página cubre las dos rutas de desvinculación y la regla confirm_detach, que desvincula una aplicación cuando cambias su código. Hay dos rutas: POST /v1/apps/{id}/template/detach para una aplicación y POST /v1/stacks/{stack_id}/template/detach para un stack. Desvincular un stack desvincula todas sus aplicaciones de la plantilla. La llamada es idempotente. Para una aplicación que no vino de una plantilla, o para un stack armado a mano, responde 404 con TEMPLATE_NOT_FOUND. Una aplicación o un stack de una plantilla cerrada no puede desvincularse: la llamada falla con TEMPLATE_CLOSED, con details.action en detach. Un stack con un servicio cerrado tampoco puede desvincularse. La ruta de aplicación necesita el ámbito apps:write, y la ruta de stack necesita stacks:write, cuando se llama con una clave de API.
string
requerido
El ID de la aplicación, en la ruta de aplicación.
string
requerido
El ID del stack, en la ruta de stack.
string
Si la aplicación o el stack pertenece a un workspace, el ID del workspace.

Respuesta

object
La aplicación (consulta Obtener aplicación) o el stack. El origen del recurso está en template, y ahora tiene detached: true.

Cambiar el código desvincula la aplicación

Una aplicación de una plantilla abierta (una cuyos permisos te dejan editar el código) se desvincula cuando cambias su código. Las rutas que lo hacen piden confirmación primero. Sin confirm_detach en true, la petición no cambia nada y falla con 409 y TEMPLATE_DETACH_CONFIRMATION_REQUIRED; con él, el cambio se hace y, cuando tiene éxito, la aplicación se desvincula. El campo se ignora en una aplicación que no vino de una plantilla. Las rutas son las que escriben archivos (PUT, PATCH y DELETE en /v1/apps/{id}/files), la subida de archivos, el enlace de GitHub de la aplicación y el commit del contenedor a una imagen. Envía confirm_detach como booleano en el cuerpo JSON, como parte de texto de un cuerpo multipart, o como query confirm_detach=true en cualquiera de ellas. Los details del error indican qué acción pidió la confirmación:
string
files.write (cambio de archivos), deploy.code (subida de código), deploy.github (vinculación de un repositorio) o commit (commit del contenedor a una imagen).
Confirming a file change
Una aplicación de una plantilla cerrada no pregunta: las mismas rutas se rechazan con TEMPLATE_CLOSED, y el código queda fuera de alcance. Lee los detalles en Plantillas cerradas.

Respuestas de error

string
El código de error que indica el motivo del fallo. Valores posibles:
  • API_KEY_SCOPE_DENIED: La clave de API no tiene el ámbito apps:write (ruta de aplicación) o stacks:write (ruta de stack) (403).
  • TEMPLATE_NOT_FOUND: La aplicación o el stack no vino de una plantilla (404).
  • APP_NOT_FOUND o STACK_NOT_FOUND: La aplicación o el stack no existe o no es tuyo.
  • TEMPLATE_CLOSED: La plantilla está cerrada, así que no puede desvincularse (403).
  • TEMPLATE_DETACH_CONFIRMATION_REQUIRED: Se llamó a una ruta que cambia código sin confirm_detach (409). No se cambió nada.
Última modificación el 28 de octubre de 2026