Logo Aurabase
aurabasedocuments
documents›Edge Functions›HTTP API reference

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.

10 min de lecture·Niveau référence·Révisé le 12 oct. 2026
Ce texte anglais a été généré automatiquement à partir de l’original français et n’a pas encore été relu.
Cette page a été traduite automatiquement. La version anglaise fait foi.
#
Congrès

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ôleComment l'obtenez-vousPeut appeler
anonLa clé publique du projetPOST …/invoke
authenticatedLa clé publique plus le JWT d'un utilisateurPOST …/invoke
service_roleLa clé service_role (serveur uniquement)Chaque itinéraire ci-dessous
adminUne session console (le Studio)Chaque itinéraire ci-dessous

Tout autre itinéraire répond 403 à anon et authenticated:

403json
{ "error": { "code": "FORBIDDEN", "type": "forbidden", "request_id": "…",
  "message": "Accès interdit : Opération réservée au rôle service_role : seule l'invocation d'une fonction est ouverte aux clés publiques" } }

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.

ChampTapez
id, project_id, namechaîne
runtime"deno" ou "wasm"
codechaîneSource pour deno; base64 du binaire compilé pour wasm
code_hashchaîneSHA-256 de code
env_varsobjetClé de la valeur
permissionsobjetallow_net (tableau de chaînes), memory_mb, timeout_secs
is_activebooléen
created_at, updated_atOIN 8601
#
Gérer

2. Fonctions

Méthode et cheminRôleCorpsRéponse
GET /v1/functionsservice_roleaucuntableau d'objets fonction
POST /v1/functionsservice_role{ name, runtime, code, env_vars? }l'objet fonction
GET /v1/functions/{name}service_roleaucunl'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_roleaucun{ "data": null }
GET /v1/functions/{name}/codeservice_roleaucun{ "data": { "code": "…" } }
GET /v1/functions/{name}/envservice_roleaucun{ "data": [ { "key", "value" } ] }, valeurs décryptées
PUT /v1/functions/{name}/envservice_role{ "vars": [ { "key", "value" } ] }{ "data": null }

Remarques :

  • POST est un upsert sur name: poster un nom existant remplace son code. Un champ env_vars dans ce corps remplace les variables existantes ; omettez-le pour les conserver.
  • Dans PATCH, permissions est fusionné champ par champ : { "permissions": { "timeout_secs": 60 } } conserve allow_net et memory_mb. Un champ en dehors de ses limites renvoie 400.
  • PUT …/env remplace l'ensemble des variables et constitue la seule route qui les chiffre. Voir les secrets .
  • Une fonction avec is_active: false n'est pas trouvée par invoke ni par les jobs.
deploy.shbash
curl -X POST "$AURA_URL/v1/functions" \
  -H "apikey: $AURA_SERVICE_ROLE_KEY" -H "Content-Type: application/json" \
  -d '{"name":"hello","runtime":"deno","code":"Deno.serve(() => new Response(\"ok\"))"}'
#
Appeler

3. Invoquer

POST /v1/functions/{name}/invoke. Rôle : anon, authenticated ou service_role.

ChampTapezPar défaut
methodchaînePOSTMéthode HTTP vue par la fonction
pathchaîne/Chemin vu par la fonction
headersobjetaucunEn-têtes donnés à la fonction. Les en-têtes réservés sont supprimés.
bodyn'importe quel JSONaucunCorps donné à la fonction
En-tête de requête
apikeyObligatoire
Content-Type: application/jsonObligatoire
Authorization: Bearer <JWT>Facultatif : appeler en tant qu'utilisateur
X-Aurabase-Invoke-Mode: rawFacultatif : renvoie la propre réponse de la fonction

Réponse par défaut, toujours 200:

200json
{ "data": { "status": 200, "headers": { "content-type": "application/json" },
  "body": { "greeting": "Hello, Ada!" }, "logs": [], "duration_ms": 74 }, "meta": null }

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.

ÉchecStatuterror.code
Fonction introuvable ou inactive404NOT_FOUND
Temps d'exécution inaccessible503SERVICE_UNAVAILABLE
La plateforme a arrêté d'attendre le runtime (après timeout_secs plus une marge)504TIMEOUT
Quota du plan épuisé403QUOTA_EXCEEDED
Trop d'appels d'un client429rate_limit_exceeded
Corps supérieur à environ 256 Ko503SERVICE_UNAVAILABLE
#
Contexte

4. Travaux et file d'attente de lettres mortes

Méthode et cheminRôleCorps ou requêteRéponse
POST /v1/functions/jobsservice_role{ function_name, payload?, delay_secs?, max_attempts? }le travail
GET /v1/functions/jobsservice_role?status=&limit= (1 à 500, 50 par défaut)gamme d'emplois
GET /v1/functions/jobs/{id}service_roleaucunle travail
POST /v1/functions/jobs/{id}/retryservice_roleaucunle travail, retour à pending
GET /v1/functions/jobs/dlqservice_role?limit=une série d'emplois morts
POST /v1/functions/jobs/dlq/requeueservice_roleaucun{ "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.

#
Calendrier

5. Cron

Méthode et cheminRôleCorpsRéponse
POST /v1/functions/cronservice_role{ name, schedule, function_name, payload? }l'entrée cron
GET /v1/functions/cronservice_roleaucuntableau d'entrées
DELETE /v1/functions/cron/{name}service_roleaucun{ "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.

#
Moniteur

6. Alertes

Méthode et cheminRôleCorps ou requête
POST /v1/functions/alertsservice_role{ name, metric, condition, threshold, channel, destination }
GET /v1/functions/alertsservice_roleaucun
PATCH /v1/functions/alerts/{id}service_role{ "enabled": true }
DELETE /v1/functions/alerts/{id}service_roleaucun
GET /v1/functions/alerts/{id}/eventsservice_role?limit=&offset=
GET /v1/functions/alerts/eventsservice_role?limit=&offset=

Valeurs et comportement : Alertes.

Dernière mise à jour · 12 oct. 2026