Convertir carpeta en stack
curl --request POST \
--url https://api.vertracloud.app/v1/stacks/transform \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"folder_id": "<string>",
"inject_variables": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({folder_id: '<string>', inject_variables: true})
};
fetch('https://api.vertracloud.app/v1/stacks/transform', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vertracloud.app/v1/stacks/transform"
payload = {
"folder_id": "<string>",
"inject_variables": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vertracloud.app/v1/stacks/transform"
payload := strings.NewReader("{\n \"folder_id\": \"<string>\",\n \"inject_variables\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Stacks
Convertir carpeta en stack
Convierte las aplicaciones y bases de datos de una carpeta en un stack, inyectando opcionalmente las variables de conexión.
POST
/
v1
/
stacks
/
transform
Convertir carpeta en stack
curl --request POST \
--url https://api.vertracloud.app/v1/stacks/transform \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"folder_id": "<string>",
"inject_variables": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({folder_id: '<string>', inject_variables: true})
};
fetch('https://api.vertracloud.app/v1/stacks/transform', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vertracloud.app/v1/stacks/transform"
payload = {
"folder_id": "<string>",
"inject_variables": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vertracloud.app/v1/stacks/transform"
payload := strings.NewReader("{\n \"folder_id\": \"<string>\",\n \"inject_variables\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Crea un stack a partir de cada aplicación y base de datos de una carpeta. La carpeta se conserva. Con
inject_variables: true la plataforma añade a las aplicaciones las variables de conexión y los certificados; con false se asume que las aplicaciones se conectan por su cuenta. Requiere el scope stacks:write cuando se llama con una clave de API.
string
requerido
La carpeta de la que tomar los recursos.
string
El workspace de la carpeta. Si no se indica, es una carpeta tuya.
string
El nombre del stack. Opcional.
boolean
requerido
Si la plataforma crea las conexiones e inyecta las variables y los certificados.
object[]
Conexiones que se crean cuando
inject_variables es true. Cada elemento tiene app_id, database_id y un env_map opcional (consulta Crear conexión).Response
201 con el stack, igual que en Crear stack, incluidos restart_required y apps_to_restart.
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 400 | STACK_TRANSFORM_EMPTY | La carpeta no tiene ninguna aplicación, ni ninguna base de datos, que meter en un stack. |
| 409 | STACK_MEMBER_CONFLICT | Un recurso de la carpeta ya está en otro stack. |
| 403 | WORKSPACE_OWNER_ONLY | Eres miembro del workspace, no su propietario. |
Última modificación el 28 de octubre de 2026