Aller au contenu

Index des points de terminaison

Chaque route montée par le serveur, dans un seul tableau, avec les conditions requises pour y accéder.

Les chemins supposent le basePath par défaut /api ; REBASE_BASE_PATH les déplace tous ensemble. /health, /livez et /metrics se situent délibérément en dehors, car un orchestrateur sonde /health et ne devrait pas avoir à connaître le chemin de base. /health est également monté en dessous, afin que /api/health réponde de la même manière au lieu de renvoyer une 404 au moment précis où quelqu’un vérifie si le serveur est actif.

Un contrôle automatique — tooling/scripts/docs-verify/check-endpoint-index.mjs — compare ce tableau aux routes enregistrées par le code source, de sorte qu’une nouvelle surface ne peut pas être ajoutée sans apparaître ici.

Contrôle Signification
none Non authentifié. Toute personne pouvant joindre l’hôte peut l’appeler
session Un appelant connecté : un jeton d’accès ou une clé d’API restreinte à l’opération
resource:action Un appelant qui détient cette portée : un administrateur, une personne dont le rôle la déclare, une clé d’API créée avec elle, ou la clé de service
RLS Authentifié, puis la base de données décide ligne par ligne — voir Règles de sécurité
dev Monté uniquement hors production

Généré par collection, les chemins utilisent donc vos slugs plutôt qu’une liste fixe. :slug est le slug d’une collection.

Méthode Chemin Contrôle En savoir plus
GET /api/data/collections session API REST
GET /api/data/:slug RLS Requêtage
POST /api/data/:slug RLS API REST
POST /api/data/:slug/query RLS La liste, paramètres de requête dans le corps — Requêtes trop longues pour une URL
GET /api/data/:slug/count RLS Requêtage
POST /api/data/:slug/count RLS Le comptage, paramètres de requête dans le corps — Requêtes trop longues pour une URL
GET /api/data/:slug/aggregate RLS API REST
GET /api/data/:slug/:id RLS API REST
PATCH /api/data/:slug/:id RLS API REST
PUT /api/data/:slug/:id RLS Alias obsolète de PATCH — même écriture partielle, répond Deprecation: true
DELETE /api/data/:slug/:id RLS API REST
POST /api/data/:slug/bulk RLS Insérer plusieurs lignes, avec upsert optionnel — API REST
PATCH /api/data/:slug/bulk RLS Mettre à jour plusieurs lignes par id — API REST
POST /api/data/:slug/bulk/delete RLS Supprimer plusieurs lignes par id — API REST
POST /api/data/_batch RLS Écrire à travers plusieurs collections en une transaction — Écriture via REST
GET /api/data/:slug/:id/history RLS Historique des entités
POST /api/data/:slug/:id/history/:historyId/revert RLS Historique des entités

Le comptage et l’agrégation sont des routes à part entière, enregistrées avant /:id afin que aggregate ne soit pas interprété comme un id d’entité. ?select= et ?groupBy= sont leurs paramètres, et select est requis sur /aggregate.

La recherche textuelle, la recherche vectorielle, l’inclusion de relations et la sélection de champs sont des paramètres de requête sur GET /api/data/:slug plutôt que des routes distinctes — search, vector_search, include, fields. Voir API REST.

Un projet qui ne déclare aucune collection et n’en inspecte aucune sert ce préfixe avec une simple erreur 404 NO_COLLECTIONS. Voir Backend uniquement.

Méthode Chemin Contrôle En savoir plus
GET /api/auth/config none Ce que l’écran de connexion peut proposer : inscription, réinitialisation du mot de passe, lien magique, codes par e-mail, connexion invité, fournisseurs OAuth, et si la configuration du premier administrateur est en attente
POST /api/auth/register none Authentification
POST /api/auth/login none Points de terminaison d’authentification
POST /api/auth/refresh none (un jeton de rafraîchissement) Points de terminaison d’authentification
POST /api/auth/logout session Points de terminaison d’authentification
GET /api/auth/me session Points de terminaison d’authentification
PATCH /api/auth/me session Points de terminaison d’authentification
GET /api/auth/sessions session Points de terminaison d’authentification
DELETE /api/auth/sessions session Révoque toutes les autres sessions
DELETE /api/auth/sessions/:id session En révoque une
POST /api/auth/forgot-password none Authentification
POST /api/auth/reset-password none (un jeton de réinitialisation) Authentification
POST /api/auth/change-password session Authentification
POST /api/auth/send-verification session Authentification
GET /api/auth/verify-email none (un jeton de vérification) Authentification
POST /api/auth/verify-email none (un jeton de vérification, et une session ou le mot de passe pour la conserver) Vérification de l’e-mail
POST /api/auth/magic-link none Authentification
POST /api/auth/magic-link/verify none (un jeton de lien) Authentification
POST /api/auth/otp none Codes à usage unique par e-mail
POST /api/auth/otp/verify none (un code) Codes à usage unique par e-mail
POST /api/auth/anonymous none Sessions d’invités. Désactivé sauf si ALLOW_ANONYMOUS
POST /api/auth/anonymous/link session (un invité) Transforme un invité en compte
POST /api/auth/find-user session Désactivé sauf si AUTH_ALLOW_USER_LOOKUP — il s’agit d’une surface d’énumération
POST /api/auth/:provider none Un par fournisseur OAuth/OIDC configuré
POST /api/auth/link/:provider session Associe un fournisseur au compte connecté
POST /api/auth/mfa/enroll session MFA
POST /api/auth/mfa/verify session MFA
GET /api/auth/mfa/factors session MFA
DELETE /api/auth/mfa/unenroll session MFA
POST /api/auth/mfa/recovery-codes session (aal2) MFA
POST /api/auth/mfa/challenge none (une connexion en cours) MFA
POST /api/auth/mfa/challenge/verify none (un identifiant de défi) MFA
GET /api/auth/scopes session Toutes les portées que ce backend connaît, et celles que détient l’appelant — Rôles et portées
GET /api/auth/keys session (un compte) Les propres clés personnelles de l’appelant
POST /api/auth/keys session (un compte) La clé en texte brut n’est renvoyée qu’une seule fois. 403 PERSONAL_KEYS_DISABLED sauf si la collection des utilisateurs définit auth.personalKeys
DELETE /api/auth/keys/:id session (un compte) Révoque l’une des propres clés de l’appelant
GET /.well-known/jwks.json none Le JWKS public, lorsque la signature asymétrique est configurée

Tout ce qui se trouve sous /api/admin nécessite une portée du plan d’administration, et chaque surface nomme la sienne : users:read liste les comptes, cron:write déclenche une tâche. Un administrateur les détient toutes, tout comme la clé de service. Une personne détient celles que ses rôles déclarent, et une clé d’API celles avec lesquelles elle a été créée. Une clé restreinte à une collection ne peut accéder à rien de tout cela. Voir Rôles et portées.

Méthode Chemin Contrôle En savoir plus
POST /api/admin/bootstrap none, et uniquement si aucun admin n’existe Refusé en production — voir Initialisation du premier utilisateur
GET /api/admin/users users:read Gestion des utilisateurs
POST /api/admin/users users:write Gestion des utilisateurs. Les rôles au-delà de ceux de l’appelant sont refusés
GET /api/admin/users/pick users:read, ou accès en écriture à une collection ayant un champ userSelect La lecture du sélecteur d’utilisateurs : id, nom, e-mail et avatar uniquement. Une collection dont les règles d’écriture sont en SQL brut ne compte pas
GET /api/admin/users/:uid users:read Gestion des utilisateurs
PUT /api/admin/users/:uid users:write Refusé pour un compte qui détient plus que l’appelant
DELETE /api/admin/users/:uid users:write Refusé pour un compte qui détient plus que l’appelant
POST /api/admin/users/:uid/reset-password users:write Délivre un mot de passe temporaire
DELETE /api/admin/users/:uid/mfa users:write Supprime les seconds facteurs et les codes de récupération du compte, met fin à ses sessions
GET /api/admin/roles users:read admin et les rôles déclarés par le projet, avec leurs portées
GET /api/admin/api-keys keys:read Clés d’API. Jamais une clé d’API
POST /api/admin/api-keys keys:write La clé en texte brut n’est renvoyée qu’une seule fois, à sa création
GET /api/admin/api-keys/:id keys:read Clés d’API
PUT /api/admin/api-keys/:id keys:write Clés d’API
DELETE /api/admin/api-keys/:id keys:write Clés d’API
GET /api/admin/cron cron:read Tâches Cron
GET /api/admin/cron/:id cron:read Tâches Cron
PUT /api/admin/cron/:id cron:write Activer ou désactiver une tâche
GET /api/admin/cron/:id/logs cron:read Tâches Cron
POST /api/admin/cron/:id/trigger cron:write Exécuter une tâche maintenant. Depuis 0.25 ?async=1 répond 202 dès qu’elle a démarré — API des tâches Cron
GET /api/admin/backups backups:read Inventaire des sauvegardes
GET /api/admin/backups/download backups:read Télécharge une sauvegarde en streaming. Avec ?token= issu d’un lien de téléchargement, aucun en-tête n’est nécessaire, pour cette sauvegarde uniquement
POST /api/admin/backups/download-url backups:read Depuis 0.25 Un lien vers une sauvegarde, { key } → { url, token, expiresIn }, valable 60 secondes — Sauvegardes
GET /api/admin/storage/orphans database:read Depuis 0.25 Fichiers stockés qu’aucune ligne ne nomme, ?storageId=&olderThanHours= — ce qu’affiche rebase storage orphans
DELETE /api/admin/storage/orphans database:write Depuis 0.25 Les retrouve et les supprime ; 409 STORAGE_SCAN_INCOMPLETE lorsqu’une collection n’a pas pu être lue
POST /api/admin/storage/move database:write Depuis 0.25 Copie un dossier vers une autre source sous les mêmes clés, une page par appel — ce qu’envoie rebase storage move
GET /api/admin/logs logs:read Le tampon des logs récents
GET /api/admin/logs/latest logs:read Les entrées les plus récentes
GET /api/admin/logs/stream logs:read Événements envoyés par le serveur (SSE)
GET /api/admin/rls-audit schema:read Le dernier résultat de l’audit planifié
POST /api/admin/sql/csv database:write Depuis 0.25 Diffuse en streaming le résultat complet d’une requête en lecture seule au format CSV — « Télécharger le résultat complet en CSV » de Studio
GET /api/admin/schema/status schema:read Édition de schéma en direct
POST /api/admin/schema/plan schema:read Planifie une modification ; ne l’applique jamais
POST /api/admin/schema/apply schema:write Une personne uniquement, sauf si REBASE_LIVE_SCHEMA_ALLOW_MACHINE_APPLY
GET /api/admin/schema-editor/status schema:read Si l’éditeur est disponible, et la raison s’il ne l’est pas
POST /api/admin/schema-editor/collection/save schema:write Studio — réécrit le code source de la collection
POST /api/admin/schema-editor/collection/delete schema:write Studio
POST /api/admin/schema-editor/property/save schema:write Studio
POST /api/admin/schema-editor/property/delete schema:write Studio
GET /api/admin/dev/emails dev + users:write E-mails interceptés par le transport de développement au lieu d’être envoyés
DELETE /api/admin/dev/emails dev + users:write Vide la boîte aux lettres capturée

/api/admin/cron, /api/admin/logs et /api/admin/schema-editor sont également servis sur leurs chemins antérieurs à la version 0.17 sans le segment /admin. Ces alias sont destinés aux projets qui n’ont pas encore migré ; écrivez le nouveau code en utilisant le chemin canonique.

Méthode Chemin Contrôle En savoir plus
POST /api/storage/upload session + storageAuthorize Stockage
GET /api/storage/file/* session + storageAuthorize Stockage
DELETE /api/storage/file/* session + storageAuthorize Stockage
GET /api/storage/metadata/* session + storageAuthorize Stockage
POST /api/storage/metadata session + storageAuthorize, par clé Depuis 0.25 Stockage : métadonnées pour 100 objets au plus
GET /api/storage/list session + storageAuthorize Stockage
POST /api/storage/folder session + storageAuthorize Stockage
GET /api/storage/sources session Les sources de stockage nommées desservies par ce backend
OPTIONS /api/storage/tus none Téléversements reprenables : les versions et extensions TUS prises en charge par ce serveur
POST /api/storage/tus session + storageAuthorize Téléversements avec reprise : création
GET /api/storage/tus/:id propriétaire du téléversement Téléversements avec reprise : décalage
PATCH /api/storage/tus/:id propriétaire du téléversement Téléversements avec reprise : ajout de données
DELETE /api/storage/tus/:id propriétaire du téléversement Téléversements avec reprise : annulation

Un déploiement sans stockage configuré sert ce préfixe avec une erreur 501 indiquant la variable nécessaire, plutôt que de renvoyer une 404 comme si la fonctionnalité n’existait pas.

Méthode Chemin Contrôle En savoir plus
any /api/functions/<name> ce que la fonction déclare. Une clé d’API a aussi besoin de functions:invoke Fonctions personnalisées

Une route par fichier sous backend/functions/, les chemins proviennent donc de votre projet. GET /api/functions ne les liste pas : l’inventaire des points de terminaison personnalisés d’un déploiement n’est pas public.

Méthode Chemin Contrôle En savoir plus
GET /livez none Liveness seule : ce processus est-il en cours d’exécution. Ne touche pas à la base de données, c’est pourquoi il s’agit du chemin de sonde qu’un conteneur doit utiliser — RUNTIME_LIVENESS_PATH
GET /health, /api/health none Liveness et readiness. Signale chaque source de données configurée, pas seulement celle par défaut
GET /api/docs none (schema:read en production) Le document OpenAPI 3.0
GET /api/swagger none Swagger UI. En développement uniquement sauf si REBASE_ENABLE_SWAGGER
GET /api/meta/schema-version none Le hachage du schéma à partir duquel ce backend a été construit, et rien d’autre
GET /api/meta/contract schema:read Le contrat complet des collections, pour rebase generate-sdk --from. 404 si aucune authentification n’est configurée
GET /metrics REBASE_METRICS_TOKEN si défini Métriques Prometheus, lorsque REBASE_METRICS=true
GET /metrics/history REBASE_METRICS_TOKEN si défini Les séries enregistrées alimentant les graphiques du Studio. 501 sur un runtime sans backend

Les connexions WebSocket arrivent sous forme de mise à niveau HTTP (HTTP upgrade) sur le même serveur plutôt que sur un chemin qui leur est propre — voir Temps réel.

Montée uniquement lorsque REBASE_MCP_ENABLED=true, ce qui nécessite également REBASE_PUBLIC_URL — voir Configuration. Désactivé par défaut : aucun REBASE_ROLE ne l’active, car cela donne accès au projet à un logiciel tiers et c’est une décision qui appartient à une personne.

Les documents .well-known se situent à la racine (origin), et non sous basePath : la RFC 8414 et la RFC 9728 définissent ces chemins par rapport à l’origine, et un client les récupère avant même de détenir le moindre jeton.

Méthode Chemin Contrôle En savoir plus
GET /.well-known/oauth-protected-resource none Métadonnées de la RFC 9728 identifiant cette ressource et son serveur d’autorisation. Servies également sous la forme avec suffixe de chemin
GET /.well-known/oauth-authorization-server none Métadonnées de la RFC 8414 : les points de terminaison, types d’octroi et méthodes PKCE pris en charge par ce déploiement
POST /mcp Bearer OAuth, ou une clé d’API Le point de terminaison du protocole MCP. Agit en tant qu’utilisateur connecté (ou en tant que l’identité pour laquelle la clé agit), chaque lecture et écriture est donc soumise aux mêmes RLS. Les portées data:* décident des outils proposés
GET /mcp Bearer OAuth, ou une clé d’API Répond 405 avec Allow: POST, DELETE : ce serveur n’ouvre aucun flux initié par le serveur. Le jeton est vérifié en premier, donc un jeton manquant ou expiré reçoit plutôt le défi 401
DELETE /mcp none Répond 204. Le point de terminaison ne conserve aucune session, il n’y a donc rien à terminer
POST /api/oauth/register limitation de débit Enregistrement dynamique de client RFC 7591. Refusé lorsque REBASE_MCP_OPEN_REGISTRATION=false
GET /api/oauth/authorize session L’écran de consentement vers lequel un client est redirigé
POST /api/oauth/authorize/decision session La réponse de la personne à celui-ci — approuver ou refuser
POST /api/oauth/token identifiants client + PKCE Échange un code d’autorisation, ou rafraîchit
POST /api/oauth/revoke identifiants client Révocation de jeton RFC 7009
GET /api/oauth/grants session Quels clients cet utilisateur a approuvés
DELETE /api/oauth/grants/:clientId session En révoque un, afin qu’une personne puisse annuler un consentement sans admin