Edge Functions Referencia de la API HTTP
La superficie HTTP completa del servicio de funciones, con el rol que requiere cada ruta.
1. Convenciones
URL base. La URL de su proyecto, por ejemplo https://my-app.aurabase.cloud. El host identifica el proyecto, por lo que las rutas siguientes no contienen ninguna identificación de proyecto. También se acepta la forma larga /v1/functions/{project_id}/….
Autenticación. Envíe su clave en el encabezado apikey. Agregue Authorization: Bearer <JWT> para llamar como usuario registrado. Studio llama a las mismas rutas con un token de sesión de consola, lo que le otorga la función admin.
| Rol | como lo consigues | puede llamar |
|---|---|---|
anon | La clave pública del proyecto. | POST …/invoke |
authenticated | La clave pública más el JWT de un usuario. | POST …/invoke |
service_role | La clave service_role (solo servidor) | Cada ruta a continuación |
admin | Una sesión de consola (el Studio) | Cada ruta a continuación |
Cualquier otra ruta responde 403 a anon y authenticated:
Formato. Los cuerpos son JSON y necesitan Content-Type: application/json. Un éxito es { "data": …, "meta": null }. Un error es { "error": { "code", "message", "type", "request_id" } }.
Objeto de función.
| campo | Tipo | |
|---|---|---|
id, project_id, name | cuerda | |
runtime | "deno" o "wasm" | |
code | cuerda | Fuente de deno; base64 del binario compilado para wasm |
code_hash | cuerda | SHA-256 de code |
env_vars | objeto | Clave del valor |
permissions | objeto | allow_net (matriz de cadenas), memory_mb, timeout_secs |
is_active | booleano | |
created_at, updated_at | ISO 8601 |
2. Funciones
| Método y camino | Rol | cuerpo | Respuesta |
|---|---|---|---|
GET /v1/functions | rol_servicio | ninguno | conjunto de objetos de función |
POST /v1/functions | rol_servicio | { name, runtime, code, env_vars? } | el objeto de función |
GET /v1/functions/{name} | rol_servicio | ninguno | el objeto de función. {name} es el nombre, o el id cuando ninguna función tiene ese nombre. |
PATCH /v1/functions/{name} | rol_servicio | { code?, env_vars?, is_active?, permissions? } | el objeto de función |
DELETE /v1/functions/{name} | rol_servicio | ninguno | { "data": null } |
GET /v1/functions/{name}/code | rol_servicio | ninguno | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | rol_servicio | ninguno | { "data": [ { "key", "value" } ] }, valores descifrados |
PUT /v1/functions/{name}/env | rol_servicio | { "vars": [ { "key", "value" } ] } | { "data": null } |
Notas:
POSTes una inserción enname: publicar un nombre existente reemplaza su código. Un campoenv_varsen ese cuerpo reemplaza las variables existentes; omitirlo para conservarlos.- En
PATCH,permissionsse fusiona campo por campo:{ "permissions": { "timeout_secs": 60 } }mantieneallow_netymemory_mb. Un campo fuera de sus límites devuelve400. PUT …/envreemplaza todo el conjunto de variables y es la única ruta que las cifra. Consulte los secretos de .- Una función con
is_active: falseno es encontrada porinvokeni por trabajos.
3. Invocar
POST /v1/functions/{name}/invoke. Rol: anon, authenticated o service_role.
| campo | Tipo | Predeterminado | |
|---|---|---|---|
method | cuerda | POST | Método HTTP visto por la función. |
path | cuerda | / | Camino visto por la función. |
headers | objeto | ninguno | Encabezados dados a la función. Los encabezados reservados se eliminan. |
body | cualquier JSON | ninguno | Cuerpo dado a la función. |
| Encabezado de solicitud | |
|---|---|
apikey | Requerido |
Content-Type: application/json | Requerido |
Authorization: Bearer <JWT> | Opcional: llamar como ese usuario |
X-Aurabase-Invoke-Mode: raw | Opcional: devolver la propia respuesta de la función |
Respuesta predeterminada, siempre 200:
status es el estado de tu función. logs está vacío para deno. En modo sin formato, la respuesta es propia de su función: estado, content-type, bytes, más x-aurabase-invoke-origin: function.
| fracaso | Estado | error.code |
|---|---|---|
| Función no encontrada o inactiva | 404 | NOT_FOUND |
| Tiempo de ejecución inalcanzable | 503 | SERVICE_UNAVAILABLE |
La plataforma dejó de esperar el tiempo de ejecución (después de timeout_secs más un margen) | 504 | TIMEOUT |
| Cuota del plan agotada | 403 | QUOTA_EXCEEDED |
| Demasiadas llamadas de un cliente | 429 | rate_limit_exceeded |
| Cuerpo por encima de aproximadamente 256 KiB | 503 | SERVICE_UNAVAILABLE |
4. Empleos y cola de mensajes fallidos
| Método y camino | Rol | Cuerpo o consulta | Respuesta |
|---|---|---|---|
POST /v1/functions/jobs | rol_servicio | { function_name, payload?, delay_secs?, max_attempts? } | el trabajo |
GET /v1/functions/jobs | rol_servicio | ?status=&limit= (1 a 500, predeterminado 50) | variedad de trabajos |
GET /v1/functions/jobs/{id} | rol_servicio | ninguno | el trabajo |
POST /v1/functions/jobs/{id}/retry | rol_servicio | ninguno | el trabajo, volver a pending |
GET /v1/functions/jobs/dlq | rol_servicio | ?limit= | variedad de trabajos muertos |
POST /v1/functions/jobs/dlq/requeue | rol_servicio | ninguno | { "data": { "requeued": 1 } } |
Objeto de trabajo: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Comportamiento: Trabajos, cron y cola de mensajes fallidos.
5. Cron
| Método y camino | Rol | cuerpo | Respuesta |
|---|---|---|---|
POST /v1/functions/cron | rol_servicio | { name, schedule, function_name, payload? } | la entrada cron |
GET /v1/functions/cron | rol_servicio | ninguno | conjunto de entradas |
DELETE /v1/functions/cron/{name} | rol_servicio | ninguno | { "data": null } o 404 para un nombre desconocido |
Entrada: id, project_id, name, schedule (almacenado con 6 campos), function_name, payload, is_active, last_run, next_run, created_at.
6. Alertas
| Método y camino | Rol | Cuerpo o consulta |
|---|---|---|
POST /v1/functions/alerts | rol_servicio | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | rol_servicio | ninguno |
PATCH /v1/functions/alerts/{id} | rol_servicio | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | rol_servicio | ninguno |
GET /v1/functions/alerts/{id}/events | rol_servicio | ?limit=&offset= |
GET /v1/functions/alerts/events | rol_servicio | ?limit=&offset= |
Valores y comportamiento: Alertas.