Référence de l'API HTTP Edge Functions
La surface HTTP complète du service de fonctions, avec le rôle requis par chaque route.
1. Congrès
URL de base. L'URL de votre projet, par exemple https://my-app.aurabase.cloud. Le projet est identifié par l'hôte, donc les chemins ci-dessous ne portent aucun identifiant de projet. La forme longue /v1/functions/{project_id}/… est également acceptée.
Authentification . Envoyez votre clé dans l'en-tête apikey. Ajoutez Authorization: Bearer <JWT> pour appeler en tant qu'utilisateur connecté. Le Studio appelle les mêmes routes avec un jeton de session de console, ce qui lui donne le rôle admin.
| Rôle | Comment l'obtenez-vous | Peut appeler |
|---|---|---|
anon | La clé publique du projet | POST …/invoke |
authenticated | La clé publique plus le JWT d'un utilisateur | POST …/invoke |
service_role | La clé service_role (serveur uniquement) | Chaque itinéraire ci-dessous |
admin | Une session console (le Studio) | Chaque itinéraire ci-dessous |
Tout autre itinéraire répond 403 à anon et authenticated:
Format . Les corps sont JSON et nécessitent Content-Type: application/json. Un succès est { "data": …, "meta": null }. Un échec est { "error": { "code", "message", "type", "request_id" } }.
Objet fonction.
| Champ | Tapez | |
|---|---|---|
id, project_id, name | chaîne | |
runtime | "deno" ou "wasm" | |
code | chaîne | Source pour deno; base64 du binaire compilé pour wasm |
code_hash | chaîne | SHA-256 de code |
env_vars | objet | Clé de la valeur |
permissions | objet | allow_net (tableau de chaînes), memory_mb, timeout_secs |
is_active | booléen | |
created_at, updated_at | OIN 8601 |
2. Fonctions
| Méthode et chemin | Rôle | Corps | Réponse |
|---|---|---|---|
GET /v1/functions | service_role | aucun | tableau d'objets fonction |
POST /v1/functions | service_role | { name, runtime, code, env_vars? } | l'objet fonction |
GET /v1/functions/{name} | service_role | aucun | l'objet fonction. {name} est le nom, ou l'identifiant lorsqu'aucune fonction ne porte ce nom. |
PATCH /v1/functions/{name} | service_role | { code?, env_vars?, is_active?, permissions? } | l'objet fonction |
DELETE /v1/functions/{name} | service_role | aucun | { "data": null } |
GET /v1/functions/{name}/code | service_role | aucun | { "data": { "code": "…" } } |
GET /v1/functions/{name}/env | service_role | aucun | { "data": [ { "key", "value" } ] }, valeurs décryptées |
PUT /v1/functions/{name}/env | service_role | { "vars": [ { "key", "value" } ] } | { "data": null } |
Remarques :
POSTest un upsert surname: poster un nom existant remplace son code. Un champenv_varsdans ce corps remplace les variables existantes ; omettez-le pour les conserver.- Dans
PATCH,permissionsest fusionné champ par champ :{ "permissions": { "timeout_secs": 60 } }conserveallow_netetmemory_mb. Un champ en dehors de ses limites renvoie400. PUT …/envremplace l'ensemble des variables et constitue la seule route qui les chiffre. Voir les secrets .- Une fonction avec
is_active: falsen'est pas trouvée parinvokeni par les jobs.
3. Invoquer
POST /v1/functions/{name}/invoke. Rôle : anon, authenticated ou service_role.
| Champ | Tapez | Par défaut | |
|---|---|---|---|
method | chaîne | POST | Méthode HTTP vue par la fonction |
path | chaîne | / | Chemin vu par la fonction |
headers | objet | aucun | En-têtes donnés à la fonction. Les en-têtes réservés sont supprimés. |
body | n'importe quel JSON | aucun | Corps donné à la fonction |
| En-tête de requête | |
|---|---|
apikey | Obligatoire |
Content-Type: application/json | Obligatoire |
Authorization: Bearer <JWT> | Facultatif : appeler en tant qu'utilisateur |
X-Aurabase-Invoke-Mode: raw | Facultatif : renvoie la propre réponse de la fonction |
Réponse par défaut, toujours 200:
status est le statut de votre fonction. logs est vide pour deno. En mode brut, la réponse appartient à votre fonction : status, content-type, octets, plus x-aurabase-invoke-origin: function.
| Échec | Statut | error.code |
|---|---|---|
| Fonction introuvable ou inactive | 404 | NOT_FOUND |
| Temps d'exécution inaccessible | 503 | SERVICE_UNAVAILABLE |
La plateforme a arrêté d'attendre le runtime (après timeout_secs plus une marge) | 504 | TIMEOUT |
| Quota du plan épuisé | 403 | QUOTA_EXCEEDED |
| Trop d'appels d'un client | 429 | rate_limit_exceeded |
| Corps supérieur à environ 256 Ko | 503 | SERVICE_UNAVAILABLE |
4. Travaux et file d'attente de lettres mortes
| Méthode et chemin | Rôle | Corps ou requête | Réponse |
|---|---|---|---|
POST /v1/functions/jobs | service_role | { function_name, payload?, delay_secs?, max_attempts? } | le travail |
GET /v1/functions/jobs | service_role | ?status=&limit= (1 à 500, 50 par défaut) | gamme d'emplois |
GET /v1/functions/jobs/{id} | service_role | aucun | le travail |
POST /v1/functions/jobs/{id}/retry | service_role | aucun | le travail, retour à pending |
GET /v1/functions/jobs/dlq | service_role | ?limit= | une série d'emplois morts |
POST /v1/functions/jobs/dlq/requeue | service_role | aucun | { "data": { "requeued": 1 } } |
Objet de travail : id, project_id, function_name, payload, status (pending, running, completed, failed, dead), attempts, max_attempts, error, scheduled_at, started_at, completed_at, created_at. Comportement : Travaux, cron et file d'attente de lettres mortes.
5. Cron
| Méthode et chemin | Rôle | Corps | Réponse |
|---|---|---|---|
POST /v1/functions/cron | service_role | { name, schedule, function_name, payload? } | l'entrée cron |
GET /v1/functions/cron | service_role | aucun | tableau d'entrées |
DELETE /v1/functions/cron/{name} | service_role | aucun | { "data": null }, ou 404 pour un nom inconnu |
Entrée : id, project_id, name, schedule (stocké avec 6 champs), function_name, payload, is_active, last_run, next_run, created_at.
6. Alertes
| Méthode et chemin | Rôle | Corps ou requête |
|---|---|---|
POST /v1/functions/alerts | service_role | { name, metric, condition, threshold, channel, destination } |
GET /v1/functions/alerts | service_role | aucun |
PATCH /v1/functions/alerts/{id} | service_role | { "enabled": true } |
DELETE /v1/functions/alerts/{id} | service_role | aucun |
GET /v1/functions/alerts/{id}/events | service_role | ?limit=&offset= |
GET /v1/functions/alerts/events | service_role | ?limit=&offset= |
Valeurs et comportement : Alertes.