Edge Functions Referência da API HTTP
A superfície HTTP completa do serviço de funções, com a função que cada rota exige.
1. Convenções
URL base. A URL do seu projeto, por exemplo https://my-app.aurabase.cloud. O projeto é identificado pelo host, portanto os caminhos abaixo não carregam nenhum ID de projeto. O formato longo /v1/functions/{project_id}/… também é aceito.
Autenticação. Envie sua chave no cabeçalho apikey. Adicione Authorization: Bearer <JWT> para chamar como usuário conectado. O Studio chama as mesmas rotas com um token de sessão de console, que lhe confere a função admin.
| Função | Como você consegue isso | Pode ligar |
|---|---|---|
anon | A chave pública do projeto | POST …/invoke |
authenticated | A chave pública mais o JWT de um usuário | POST …/invoke |
service_role | A chave service_role (somente servidor) | Cada rota abaixo |
admin | Uma sessão de console (o Studio) | Cada rota abaixo |
Qualquer outra rota responde 403 a anon e authenticated:
Formato . Os corpos são JSON e precisam de Content-Type: application/json. Um sucesso é { "data": …, "meta": null }. Uma falha é { "error": { "code", "message", "type", "request_id" } }.
Objeto de função.
| Campo | Tipo | |
|---|---|---|
id, project_id, name | corda | |
runtime | "deno" ou "wasm" | |
code | corda | Fonte para deno; base64 do binário compilado para wasm |
code_hash | corda | SHA-256 de code |
env_vars | objeto | Chave para valor |
permissions | objeto | allow_net (matriz de strings), memory_mb, timeout_secs |
is_active | booleano | |
created_at, updated_at | ISO 8601 |
2. Funções
| Método e caminho | Função | Corpo | Resposta |
|---|---|---|---|
GET /v1/functions | função_serviço | nenhum | matriz de objetos de função |
POST /v1/functions | função_serviço | { name, runtime, code, env_vars? } | o objeto de função |
GET /v1/functions/{name} | função_serviço | nenhum | o objeto de função. {name} é o nome ou o id quando nenhuma função tem esse nome. |
PATCH /v1/functions/{name} | função_serviço | { code?, env_vars?, is_active?, permissions? } | o objeto de função |
DELETE /v1/functions/{name} | função_serviço | nenhum | { "data": null } |
GET /v1/functions/{name}/code | função_serviço | nenhum | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | função_serviço | nenhum | { "data": [ { "key", "value" } ] }, valores descriptografados |
PUT /v1/functions/{name}/env | função_serviço | { "vars": [ { "key", "value" } ] } | { "data": null } |
Notas:
POSTé uma atualização emname: postar um nome existente substitui seu código. Um campoenv_varsnesse corpo substitui as variáveis existentes; omita-o para mantê-los.- Em
PATCH,permissionsé mesclado campo por campo:{ "permissions": { "timeout_secs": 60 } }mantémallow_netememory_mb. Um campo fora dos seus limites retorna400. PUT …/envsubstitui todo o conjunto de variáveis e é a única rota que as criptografa. Consulte segredos.- Uma função com
is_active: falsenão é encontrada porinvokeou por jobs.
3. Invocar
POST /v1/functions/{name}/invoke. Função: anon, authenticated ou service_role.
| Campo | Tipo | Padrão | |
|---|---|---|---|
method | corda | POST | Método HTTP visto pela função |
path | corda | / | Caminho visto pela função |
headers | objeto | nenhum | Cabeçalhos dados à função. Os cabeçalhos reservados são descartados. |
body | qualquer JSON | nenhum | Corpo dado à função |
| Cabeçalho da solicitação | |
|---|---|
apikey | Obrigatório |
Content-Type: application/json | Obrigatório |
Authorization: Bearer <JWT> | Opcional: chame como esse usuário |
X-Aurabase-Invoke-Mode: raw | Opcional: retorne a própria resposta da função |
Resposta padrão, sempre 200:
status é o status de sua função. logs está vazio para deno. No modo bruto, a resposta é da sua função: status, content-type, bytes, mais x-aurabase-invoke-origin: function.
| Falha | Estado | error.code |
|---|---|---|
| Função não encontrada ou inativa | 404 | NOT_FOUND |
| Tempo de execução inacessível | 503 | SERVICE_UNAVAILABLE |
A plataforma parou de esperar pelo tempo de execução (após timeout_secs mais uma margem) | 504 | TIMEOUT |
| Cota do plano esgotada | 403 | QUOTA_EXCEEDED |
| Muitas chamadas de um cliente | 429 | rate_limit_exceeded |
| Corpo acima de cerca de 256 KiB | 503 | SERVICE_UNAVAILABLE |
4. Trabalhos e fila de mensagens mortas
| Método e caminho | Função | Corpo ou consulta | Resposta |
|---|---|---|---|
POST /v1/functions/jobs | função_serviço | { function_name, payload?, delay_secs?, max_attempts? } | o trabalho |
GET /v1/functions/jobs | função_serviço | ?status=&limit= (1 a 500, padrão 50) | variedade de empregos |
GET /v1/functions/jobs/{id} | função_serviço | nenhum | o trabalho |
POST /v1/functions/jobs/{id}/retry | função_serviço | nenhum | o trabalho, de volta para pending |
GET /v1/functions/jobs/dlq | função_serviço | ?limit= | série de empregos mortos |
POST /v1/functions/jobs/dlq/requeue | função_serviço | nenhum | { "data": { "requeued": 1 } } |
Objeto de trabalho: id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Comportamento: Jobs, cron e a fila de mensagens mortas.
5. Cron
| Método e caminho | Função | Corpo | Resposta |
|---|---|---|---|
POST /v1/functions/cron | função_serviço | { name, schedule, function_name, payload? } | a entrada do cron |
GET /v1/functions/cron | função_serviço | nenhum | matriz de entradas |
DELETE /v1/functions/cron/{name} | função_serviço | nenhum | { "data": null } ou 404 para um nome desconhecido |
Entrada: id, project_id, name, schedule (armazenado com 6 campos), function_name, payload, is_active, last_run, next_run, created_at.
6. Alertas
| Método e caminho | Função | Corpo ou consulta |
|---|---|---|
POST /v1/functions/alerts | função_serviço | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | função_serviço | nenhum |
PATCH /v1/functions/alerts/{id} | função_serviço | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | função_serviço | nenhum |
GET /v1/functions/alerts/{id}/events | função_serviço | ?limit=&offset= |
GET /v1/functions/alerts/events | função_serviço | ?limit=&offset= |
Valores e comportamento: Alertas.