Recurso Script y endpoints
Última actualización: 18 de julio de 2026
Script es un endpoint de backend declarativo que el frontend invoca por HTTP (su concepto y estructura de nivel superior se tratan en Descripción general de Script). Esta página trata la estructura sys y las propiedades de cuerpo del recurso Script, así como la especificación de los endpoints HTTP que crean y ejecutan un Script.
Script se gestiona en dos API de administración. En CMA (identidad de Weegloo User) puede hacerlo todo: listar, consultar, crear, modificar, eliminar, ejecutar y sondear. En ACMA (identidad de ServiceUser, el end-user que se ha registrado en el producto) solo puede ejecutar y sondear; la autoría (crear, modificar, eliminar) es exclusiva de CMA. Las API de entrega de solo lectura (CDA, ACDA) no tienen Script.
Script es un recurso que tiene version y es un recurso facturable (Billable) sujeto a un límite de recuento por plan. Sin embargo, a diferencia de Content o Media, no tiene estado de publicación. Su sys no tiene propiedades relacionadas con la publicación como status o publish, y con cada cambio solo sube version. Como no existe el concepto de publicar ni de anular la publicación, la eliminación también se produce de inmediato sin anular la publicación previamente.
Estructura del recurso
A continuación se muestra la respuesta de consulta única del Script "t6-http". Junto con sys (propiedades del sistema), tiene dos propiedades de cuerpo: name y definition.
{
"sys": {
"id": "3trmXRMZcTAjDnphewjj1AaxYcaxlK",
"type": "Script",
"space": { "sys": { "id": "6jSUUAWT", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQYJNvYTBJf2rYKr42xegQLJ", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-07-15T12:35:47.575Z",
"updatedBy": { "sys": { "id": "3p4tcFbQYJNvYTBJf2rYKr42xegQLJ", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-07-15T12:35:47.575Z",
"version": 1
},
"name": "t6-http",
"definition": {
"method": "Post",
"executionMode": "Async",
"statements": [
{
"name": "resp",
"method": "POST",
"url": "https://postman-echo.com/post",
"headers": [ { "key": "Content-Type", "value": "application/json", "secret": false } ],
"body": { "prompt": "{ /payload/prompt }" },
"timeoutMs": 10000,
"retry": 0,
"type": "Http"
},
{
"value": { "status": "{ /resp/status }", "prompt": "{ /resp/body/json/prompt }" },
"isError": false,
"statusCode": 200,
"type": "Return"
}
]
}
}Claves principales:
sys.id: identificador único del Script. Se coloca en{scriptId}de las rutas de consulta única, modificación, eliminación y ejecución.name: nombre del Script (de 1 a 64 caracteres). Se usa en la lista en pantalla y para la identificación de administración.definition: elScriptDefinitionque declara qué hace este Script. Se compone del método de invocación (method), el modo de ejecución (executionMode), el arraystatementsy un esquema de payload opcional (payloadSchema). Su estructura detallada se trata más abajo en Definición y nombre y en la estructura de nivel superior en Descripción general de Script.
Tenga en cuenta que sys no tiene status, publish ni archive. Script no es un recurso que se publique en una ruta de entrega, sino un recurso que se crea y ejecuta en las API de administración.
Propiedades del sistema (sys)
Todo Script incluye propiedades del sistema comunes en el objeto sys. space, createdBy y updatedBy se incluyen con la forma Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).
| Propiedad | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del recurso. |
type | string | Tipo de recurso. Para un Script siempre es "Script". |
space | Refer<Space> | El Space al que pertenece este Script. |
createdBy | Refer<User> | Usuario que lo creó. |
createdAt | string (date-time) | Hora de creación. |
updatedBy | Refer<User> | Usuario que lo actualizó por última vez. |
updatedAt | string (date-time) | Hora de la última actualización. |
version | integer (≥1) | Versión del recurso. Sube de 1 en 1 con cada creación y modificación. |
El status (estado de publicación) y el publish (historial de publicación) que están en el sys de Content, Content Type y Media no existen en un Script, porque un Script no se publica. Tampoco tiene la propiedad archive. Por eso, el version de un Script aumenta puramente según el número de creaciones y modificaciones, sin ninguna publicación.
Definición y nombre (name, definition)
Las propiedades de cuerpo de un Script son dos: name y definition.
| Propiedad | Obligatorio | Descripción |
|---|---|---|
name | Obligatorio | Nombre del Script. De 1 a 64 caracteres. |
definition | Obligatorio | ScriptDefinition. Se compone de las claves de la tabla siguiente. |
Claves de definition (ScriptDefinition):
| Clave | Obligatorio | Descripción |
|---|---|---|
method | Obligatorio | Método HTTP con el que se invocará este Script. Uno de Get, Post, Put, Patch, Delete. En la ejecución se hace la correspondencia con este valor. |
executionMode | Obligatorio | Dónde se ejecuta. Sync (de inmediato en la ruta de la solicitud) o Async (en segundo plano). |
statements | Obligatorio | Array ordenado de statements que se van a ejecutar. Como mínimo 1. |
payloadSchema | Opcional | JSON Schema. Si se especifica, el payload de la solicitud se valida con este esquema antes de la ejecución. |
Los tipos y campos de cada statement que se coloca en el array statements se tratan en Catálogo de statements, y las expresiones { /pointer } que hacen fluir los valores se tratan en Expresiones de valor.
En el ejemplo "t6-http" anterior, el definition tiene method Post y executionMode Async; invoca una API externa con un statement Http y luego devuelve ese resultado con un statement Return. Un Script con E/S externa, como el statement Http, debe tener executionMode en Async obligatoriamente (véase Restricciones más abajo).
Restricciones
| Objetivo | Restricción |
|---|---|
name | De 1 a 64 caracteres, obligatorio. |
definition.statements | Como mínimo 1, obligatorio. |
| Definición con E/S externa | executionMode debe ser Async (se rechaza si se guarda como Sync). |
| Llamadas externas por definición | Máximo 3 (valor predeterminado). |
SetVar por definición | Máximo 5 (valor predeterminado). |
| Total de statements por definición | Máximo 15 (valor predeterminado, incluidos los anidados). |
Las restricciones estáticas anteriores se comprueban en el momento de guardar (crear/modificar), y una infracción hace que se rechace el guardado. Al guardar, el sistema también comprueba si el autor tiene realmente los permisos de recurso y de acción que usan esos statements (si falta alguno, se rechaza con WGL403015). Las reglas detalladas y el presupuesto de tiempo se tratan en Semántica de ejecución, restricciones y seguridad.
El Script es un recurso facturable (Billable) y el número por Organization está limitado por plan (Free 3 / Basic 10 / Pro 50 / Enterprise ilimitado). Cuando se alcanza el límite, se rechaza la creación de un nuevo Script (véase límites de recuento por plan).
API
La URL base de los endpoints de listado, consulta, creación, modificación y eliminación de más abajo es la de CMA, https://cma.weegloo.com/v1, y en la cabecera Authorization se necesita un token Bearer que autentique contra CMA. La modificación debe enviar además la cabecera X-Weegloo-Version (el sys.version del recurso actual) para el control de concurrencia optimista.
La ejecución (/execute) y el sondeo (/executions/{requestId}) también se ofrecen en ACMA con las mismas rutas. En ese caso, la URL base es https://acma.weegloo.com/v1, y la autenticación se hace con un token Bearer de la identidad de ServiceUser. La autoría (crear, modificar, eliminar) no está en ACMA y es exclusiva de CMA.
La respuesta de finalización de los ejemplos de ejecución y sondeo anteriores no tiene return, porque el Script de destino terminó sin llegar a un Return que contenga un valor (en ese caso statusCode toma el valor predeterminado 200). Si un Return devuelve un valor, la respuesta incluye return (o error si Return.isError es verdadero). Las reglas completas de la respuesta se tratan en la sección de solicitud y respuesta de Descripción general de Script.
Documentos relacionados
- Descripción general de Script: trata la estructura de nivel superior
ScriptDefinition, los modos de ejecución y la solicitud y respuesta. - Catálogo de statements: trata los campos y resultados de cada statement que se coloca en
statements. - Expresiones de valor: trata las referencias
{ /pointer }y las operaciones de JsonLogic. - Semántica de ejecución, restricciones y seguridad: trata las restricciones estáticas, los límites de recuento por plan y el modelo de permisos y seguridad.
- SpaceRole y ServiceUserRole: tratan cómo otorgar los permisos de acción de un Script (incluido
Execute) a un rol.
