Référence API
Gérez vos bases de données PostgreSQL, branches, computes, et plus via REST. URL de base : https://api-test.lampion.cloud/v1/
Chaque requête nécessite :
Authorization: Bearer lmp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Créez une clé dans Paramètres > Clés API.
Général
Authentification
Toutes les requêtes API nécessitent un token Bearer. Créez une clé API depuis Paramètres > Clés API dans la console. Les clés sont scopées à votre organisation avec les permissions developer. Elles expirent après 90 jours par défaut. Hiérarchie des rôles RBAC : analyst < viewer < developer < admin/owner. Les analysts n'ont accès qu'aux branches où l'anonymisation est activée et reçoivent une connection string dédiée avec des données masquées.
Projets
Un projet est une base de données PostgreSQL avec branching, monitoring et auto-suspend. Créer un projet provisionne un compute et retourne une connection string prête à l'emploi.
/v1/projects Lister tous les projets.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects
Réponse
[{"id":"abc123","name":"my-app","region":"fr-par-1"}] /v1/projects Créer un projet. Retourne la connection string, l'endpoint et le mot de passe.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"name":"my-app","region":"fr-par-1"}' https://api-test.lampion.cloud/v1/projects Réponse
{"id":"abc123","name":"my-app","endpoint_id":"ep-abc",
"connection_string":"postgresql://cloud_admin:xxx@db-test.lampion.cloud:5432/ep-abc.postgres?sslmode=require",
"pg_password":"YaQYfbg...","host":"db-test.lampion.cloud","port":5432} /v1/projects/{project_id} Récupérer un projet par ID.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id} Réponse
{"id":"abc123","name":"my-app","region":"fr-par-1"} /v1/projects/{project_id} Mettre à jour un projet (renommer, modifier les paramètres).
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" -d '{"name":"my-new-name"}' https://api-test.lampion.cloud/v1/projects/{id} Réponse
{"id":"abc123","name":"my-new-name","region":"fr-par-1"} /v1/projects/{project_id} Supprimer un projet et toutes ses données. Irréversible.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id} Réponse
204 No Content
Branches
Forks en copy-on-write. Créées en moins d'une seconde pour les tests, le staging, ou la CI. Les scripts seed s'exécutent automatiquement sur les nouvelles branches.
/v1/projects/{id}/branches Lister toutes les branches.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches Réponse
[{"id":"tid","name":"main","is_primary":true},{"id":"feat","name":"staging"}] /v1/projects/{id}/branches Créer une branch (fork). Provisionne un nouveau compute.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"name":"staging","parent_id":"main-tid"}' https://api-test.lampion.cloud/v1/projects/{id}/branches Réponse
{"id":"new-tid","name":"staging","compute_id":"ep-new","pg_port":55436} /v1/projects/{id}/branches/{bid} Mettre à jour les paramètres d'une branch (TTL de suppression automatique, statut protected).
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" -d '{"ttl_hours":24,"protected":true}' https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid} Réponse
{"id":"feat","name":"staging","ttl_hours":24,"protected":true} .../{bid}/reset Réinitialiser une branch à l'état actuel de son parent (comme git reset --hard). Recrée le compute.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/reset Réponse
{"id":"feat","name":"staging","compute_id":"ep-new2","status":"running"} .../{bid}/merge Fusionner les changements de schéma (DDL uniquement) de cette branch vers son parent. Utilisez dry_run=true pour prévisualiser le SQL.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"dry_run":true}' https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/merge Réponse
{"dry_run":true,"sql":"ALTER TABLE users ADD COLUMN avatar TEXT;","changes":1} /v1/projects/{id}/branches/{bid} Supprimer une branch et son compute.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid} Réponse
204 No Content
Endpoints (Computes)
Instances compute PostgreSQL. Suspendez/reprenez, configurez l'auto-suspend, gérez les listes d'autorisation IP.
/v1/projects/{id}/endpoints/{eid} Récupérer un endpoint par ID (statut, connection string, paramètres).
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid} Réponse
{"id":"ep-abc","status":"running","connection_string":"postgresql://...","auto_suspend_seconds":300,"compute_cu":0.25} /v1/projects/{id}/endpoints Lister les endpoints avec leurs connection strings et mots de passe.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints Réponse
[{"id":"ep-abc","status":"running","connection_string":"postgresql://...","pg_password":"xxx"}] .../{eid}/suspend Suspendre (scale to zero).
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/suspend Réponse
{"id":"ep-abc","status":"suspended"} .../{eid}/resume Reprendre un compute suspendu.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/resume Réponse
{"id":"ep-abc","status":"running"} .../{eid} Mettre à jour les paramètres (auto_suspend_seconds).
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" -d '{"auto_suspend_seconds":600}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid} Réponse
{"id":"ep-abc","auto_suspend_seconds":600} .../{eid}/allowlist Récupérer la liste d'autorisation IP.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/allowlist Réponse
["10.0.0.0/8"]
.../{eid}/allowlist Remplacer la liste d'autorisation IP.
Requête
curl -X PUT -H "Authorization: Bearer $TOKEN" -d '{"allowlist":["10.0.0.0/8"]}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/allowlist Réponse
["10.0.0.0/8"]
/v1/projects/{id}/endpoints/compute-sizes Lister les tailles de compute disponibles (paliers CU).
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/compute-sizes Réponse
[{"cu":0.25,"label":"0.25 CU","vcpu":0.25,"memory_gb":0.5},{"cu":1,"label":"1 CU","vcpu":1,"memory_gb":2},{"cu":4,"label":"4 CU","vcpu":4,"memory_gb":8}] .../{eid} Redimensionner un compute. Définissez compute_cu, ou activez l'autoscaling avec min_cu/max_cu.
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" \
-d '{"compute_cu":2,"min_cu":0.5,"max_cu":4}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid} Réponse
{"id":"ep-abc","compute_cu":2,"min_cu":0.5,"max_cu":4} SQL & Schéma
Exécution SQL
Exécutez des requêtes via l'API. Prend en charge les scripts multi-instructions et les méta-commandes psql.
.../{eid}/sql Exécuter du SQL. Retourne les colonnes, les lignes, la durée.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"query":"SELECT * FROM users LIMIT 5"}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/sql Réponse
{"columns":["id","name"],"rows":[{"id":1,"name":"Alice"}],"duration":12} Introspection de schéma
Parcourez les databases, schémas, tables et colonnes.
/v1/projects/{id}/schema Sans paramètre = databases. ?database=X = schémas. ?database=X&schema=Y = tables + colonnes.
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/schema?database=postgres&schema=public" Réponse
{"type":"tables","items":[{"name":"users","columns":[{"name":"id","type":"integer"},{"name":"email","type":"text"}]}]} Bases de données
CRUD des bases de données PostgreSQL au sein d'un endpoint.
.../{eid}/databases Lister les bases de données.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/databases Réponse
[{"name":"postgres","encoding":"UTF8","size_bytes":8945664}] .../{eid}/databases Créer une base de données.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" -d '{"name":"myapp"}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/databases Réponse
{"name":"myapp"} .../{eid}/databases/{name} Supprimer une base de données.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/databases/myapp Réponse
204 No Content
Rôles
Gérez les rôles PostgreSQL.
.../{eid}/roles Lister les rôles.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/roles Réponse
[{"name":"cloud_admin","is_superuser":true,"can_login":true}] .../{eid}/roles Créer un rôle.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" -d '{"name":"appuser","password":"secret","can_login":true}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/roles Réponse
{"name":"appuser","can_login":true} .../{eid}/roles/{name} Supprimer un rôle.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/roles/appuser Réponse
204 No Content
.../{eid}/roles/{name}/reset-password Générer un nouveau mot de passe pour un rôle. Visible une seule fois dans la réponse.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/roles/appuser/reset-password Réponse
{"name":"appuser","password":"new-generated-password-xyz"} Permissions
Gérez les privilèges au niveau des tables (GRANT/REVOKE). Privilèges pris en charge : SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALL.
.../{eid}/permissions Lister les grants au niveau des tables pour l'endpoint.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/permissions Réponse
[{"table":"public.users","role":"appuser","privileges":["SELECT","INSERT","UPDATE"]},{"table":"public.orders","role":"appuser","privileges":["SELECT"]}] .../{eid}/permissions/tables Lister les tables disponibles pour l'attribution de permissions.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/permissions/tables Réponse
[{"schema":"public","table":"users"},{"schema":"public","table":"orders"}] .../{eid}/permissions/grant Accorder des privilèges sur une table à un rôle.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"role":"appuser","schema":"public","table":"users","privileges":["SELECT","INSERT"]}' \
https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/permissions/grant Réponse
{"role":"appuser","table":"public.users","granted":["SELECT","INSERT"]} .../{eid}/permissions/revoke Révoquer des privilèges sur une table à un rôle.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"role":"appuser","schema":"public","table":"users","privileges":["INSERT"]}' \
https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/permissions/revoke Réponse
{"role":"appuser","table":"public.users","revoked":["INSERT"]} Tables (DDL)
Créez, supprimez et modifiez des tables et colonnes via l'API. Toutes les opérations exécutent des instructions DDL sur l'endpoint cible.
.../{eid}/tables Créer une table avec des colonnes (nom, type, clé primaire, NOT NULL).
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"name":"orders","columns":[{"name":"id","type":"serial","primary_key":true},{"name":"total","type":"numeric","nullable":false}]}' \
https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables Réponse
{"table":"orders","columns":["id","total"]} .../{eid}/tables/{table} Supprimer une table. Irréversible.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables/orders Réponse
204 No Content
.../{eid}/tables/{table}/rename Renommer une table.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"new_name":"customer_orders"}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables/orders/rename Réponse
{"old_name":"orders","new_name":"customer_orders"} .../{eid}/tables/{table}/columns Ajouter une colonne à une table.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"name":"status","type":"text","nullable":true,"default":"pending"}' \
https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables/orders/columns Réponse
{"column":"status","type":"text"} .../{eid}/tables/{table}/columns/{col} Supprimer une colonne d'une table.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables/orders/columns/status Réponse
204 No Content
.../{eid}/tables/{table}/columns/rename Renommer une colonne.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"old_name":"total","new_name":"total_amount"}' \
https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables/orders/columns/rename Réponse
{"old_name":"total","new_name":"total_amount"} .../{eid}/tables/{table}/columns/{col} Modifier une colonne (type, nullable, valeur par défaut).
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" \
-d '{"type":"numeric(10,2)","nullable":false,"default":"0"}' \
https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/tables/orders/columns/total Réponse
{"column":"total","type":"numeric(10,2)","nullable":false,"default":"0"} Extensions
Installez et gérez les extensions PostgreSQL.
.../{eid}/extensions Lister les extensions.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/extensions Réponse
[{"name":"plpgsql","installed":true},{"name":"pgvector","installed":false}] .../{eid}/extensions Installer une extension.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" -d '{"name":"pgvector"}' https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/extensions Réponse
{"name":"pgvector","installed":true} .../{eid}/extensions/{name} Désinstaller une extension.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/extensions/pgvector Réponse
204 No Content
Gestion des données
Seeds de base de données
Attachez jusqu'à 10 scripts SQL ordonnés par projet. Ils s'exécutent automatiquement sur chaque nouvelle branch — données de test, fixtures, extensions. Réordonnez-les, activez/désactivez-les individuellement.
/v1/projects/{id}/seeds Lister tous les scripts seed de ce projet.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/seeds Réponse
[{"id":"seed-1","name":"fixtures","sql":"INSERT INTO ...","position":1,"enabled":true}] /v1/projects/{id}/seeds Créer un nouveau script seed.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"name":"fixtures","sql":"INSERT INTO users (name) VALUES (\'Alice\');"}' \
https://api-test.lampion.cloud/v1/projects/{id}/seeds Réponse
{"id":"seed-1","name":"fixtures","position":1,"enabled":true} /v1/projects/{id}/seeds/{seed_id} Mettre à jour un seed (nom, sql, activation).
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" \
-d '{"enabled":false}' https://api-test.lampion.cloud/v1/projects/{id}/seeds/{seed_id} Réponse
{"id":"seed-1","enabled":false} /v1/projects/{id}/seeds/{seed_id} Supprimer un script seed.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/seeds/{seed_id} Réponse
204 No Content
/v1/projects/{id}/seeds/reorder Réordonner les scripts seed.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"order":["seed-2","seed-1","seed-3"]}' https://api-test.lampion.cloud/v1/projects/{id}/seeds/reorder Réponse
[{"id":"seed-2","position":1},{"id":"seed-1","position":2},{"id":"seed-3","position":3}] Replay de requêtes
Capturez les requêtes les plus fréquentes d'une branch (via pg_stat_statements) et rejouez-les sur une autre pour détecter des régressions de performance après une migration.
/v1/projects/{id}/replay Rejoue les N requêtes principales de la source sur la cible. Retourne une comparaison des temps avec détection de régression.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"source_endpoint_id":"ep-main","target_endpoint_id":"ep-staging","limit":20}' \
https://api-test.lampion.cloud/v1/projects/{id}/replay Réponse
{"queries":[{"query":"SELECT...","source_mean_ms":1.2,"target_mean_ms":3.8,"ratio":3.17,"status":"regression"}],"summary":{"total":20,"regressions":2,"improvements":5,"stable":13}} Backups & PITR
Prenez un snapshot de votre base de données à tout moment. Restaurez vers une nouvelle branch sans toucher à la production.
/v1/projects/{id}/backups Lister les snapshots de sauvegarde.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/backups Réponse
[{"id":"bk-42","name":"before-migration","branch_id":"main-tid","lsn":"0/15A2C08","created_at":"2026-04-01T10:00:00Z"}] /v1/projects/{id}/backups/{bid} Récupérer une sauvegarde par ID.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/backups/{bid} Réponse
{"id":"bk-42","name":"before-migration","lsn":"0/15A2C08"} /v1/projects/{id}/backups Créer un snapshot de sauvegarde.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"name":"before-migration","branch_id":"main-tid"}' https://api-test.lampion.cloud/v1/projects/{id}/backups Réponse
{"id":"bk-42","name":"before-migration","lsn":"0/15A2C08"} /v1/projects/{id}/backups/{bid} Supprimer une sauvegarde.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/backups/{bid} Réponse
204 No Content
/v1/projects/{id}/backups/{bid}/restore Restaurer vers une nouvelle branch à ce LSN.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/backups/{bid}/restore Réponse
{"branch_id":"restored-bk-42","compute_id":"ep-new"} Export de base de données
Exportez votre base de données dans plusieurs formats via pg_dump. Filtrable par database ou table. Trois formats : SQL brut (.sql), compressé personnalisé (.dump pour pg_restore), et CSV (export d'une seule table).
.../{eid}/dump Télécharger l'export de la base de données. ?format=plain|custom|csv (plain par défaut). ?database=X&table=Y pour une seule table. Le format CSV requiert le paramètre table.
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/dump?format=plain" -o dump.sql Réponse
-- SQL dump saved to dump.sql
.../{eid}/dump Exporter au format custom (compressé, pour pg_restore).
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/dump?format=custom" -o dump.dump Réponse
-- Binary dump saved to dump.dump (restore with pg_restore)
.../{eid}/dump Exporter une seule table en CSV (COPY TO STDOUT).
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/dump?format=csv&database=postgres&table=users" -o users.csv Réponse
-- CSV saved to users.csv
Replicas en lecture
Ajoutez des replicas en lecture seule à n'importe quelle branch. Chaque replica a sa propre connection string et peut être suspendu indépendamment.
/v1/projects/{id}/branches/{bid}/replicas Lister les replicas d'une branch.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/replicas Réponse
[{"id":"rep-1","status":"running","connection_string":"postgresql://...","read_only":true}] /v1/projects/{id}/branches/{bid}/replicas Créer un replica en lecture.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/replicas Réponse
{"id":"rep-1","status":"running","connection_string":"postgresql://...","read_only":true} .../{rid} Supprimer un replica.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/replicas/{rid} Réponse
204 No Content
.../{rid}/suspend Suspendre un replica.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/replicas/{rid}/suspend Réponse
{"id":"rep-1","status":"suspended"} .../{rid}/resume Reprendre un replica suspendu.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/replicas/{rid}/resume Réponse
{"id":"rep-1","status":"running"} Import de base de données
Importez une base de données PostgreSQL externe dans une nouvelle branch via pg_dump | psql. Valide la source, vérifie la compatibilité des extensions, et crée la branch automatiquement.
/v1/projects/{id}/import/validate Valider le DSN source : teste la connexion, vérifie la version PG, la taille, la compatibilité des extensions.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"source_dsn":"postgresql://user:pass@host:5432/mydb"}' \
https://api-test.lampion.cloud/v1/projects/{id}/import/validate Réponse
{"ok":true,"errors":[],"source":{"pg_version":"17.5","size_mb":142,"tables":12,"extensions":[{"name":"pgvector","version":"0.8.0","available_on_target":true}]}} /v1/projects/{id}/import/start Démarrer l'import. Crée une nouvelle branch et pipe pg_dump | psql depuis le DSN source.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"source_dsn":"postgresql://user:pass@host:5432/mydb","branch_name":"imported"}' \
https://api-test.lampion.cloud/v1/projects/{id}/import/start Réponse
{"branch_id":"imp-tid","branch_name":"imported","compute_id":"ep-imp","status":"importing"} Sécurité & Confidentialité
Masquage PII (Anonymisation)
Masquez dynamiquement des colonnes sensibles sur une branch avec postgresql_anonymizer. Activez par branch (jamais en production), définissez des règles par colonne, choisissez parmi une allowlist stricte de fonctions de masquage. Une fois activé, un rôle PostgreSQL lampion_analyst avec le label MASKED est créé automatiquement. Les utilisateurs avec le rôle RBAC analyst reçoivent un analyst_connection_string dédié qui se connecte en tant que lampion_analyst et ne voit que les données anonymisées.
.../branches/{bid}/anonymization Récupérer le statut d'anonymisation et les règles actives.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization Réponse
{"enabled":true,"analyst_connection_string":"postgresql://lampion_analyst:xxx@db-test.lampion.cloud:5432/ep-abc.postgres?sslmode=require","rules":[{"id":"r-1","schema_name":"public","table_name":"users","column_name":"email","masking_function":"anon.fake_email()"}]} .../anonymization/enable Activer le masquage dynamique sur cette branch. Installe l'extension anon, applique toutes les règles, et crée un rôle PostgreSQL lampion_analyst avec le label MASKED. Retourne un analyst_connection_string pour un accès anonymisé en lecture seule.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization/enable Réponse
{"enabled":true,"analyst_connection_string":"postgresql://lampion_analyst:xxx@db-test.lampion.cloud:5432/ep-abc.postgres?sslmode=require"} .../anonymization/disable Désactiver le masquage et supprimer tous les labels de sécurité.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization/disable Réponse
{"enabled":false} .../anonymization/functions Lister les fonctions de masquage autorisées (allowlist anti-injection).
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization/functions Réponse
[{"function":"anon.fake_email()","description":"Fake email address"},{"function":"anon.fake_iban()","description":"Fake IBAN"},{"function":"anon.hash({COL})","description":"SHA256 hash"}] .../anonymization/rules Lister les règles de masquage de cette branch.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization/rules Réponse
[{"id":"r-1","schema_name":"public","table_name":"users","column_name":"email","masking_function":"anon.fake_email()"}] .../anonymization/rules Ajouter une règle de masquage. Appliquée en direct si l'anonymisation est activée.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"table_name":"users","column_name":"email","masking_function":"anon.fake_email()"}' \
https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization/rules Réponse
{"id":"r-1","schema_name":"public","table_name":"users","column_name":"email","masking_function":"anon.fake_email()"} .../anonymization/rules/{rule_id} Supprimer une règle de masquage. Retire le label de sécurité en direct si activé.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/branches/{bid}/anonymization/rules/{rule_id} Réponse
204 No Content
Observabilité
Métriques & Usage
Métriques en temps réel et usage mensuel pour la facturation.
/v1/projects/{id}/metrics En direct : connexions, ratio de cache, stockage, CPU, mémoire.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/metrics Réponse
{"connections_total":5,"cache_hit_ratio":98.5,"storage_logical_mb":42.3,"compute_cpu_seconds":123.4} /v1/projects/{id}/metrics/history Métriques historiques (24h max, toutes les 30s).
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/metrics/history?hours=6" Réponse
[{"snapshot_at":"...","connections_total":3,"storage_logical_mb":42.1}] /v1/projects/{id}/usage Mensuel : heures de compute, stockage en Go, transfert en Go.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/usage Réponse
{"compute_hours":12.5,"storage_gb":0.042,"transfer_total_gb":0.001,"period":"2026-03"} /v1/usage Usage à l'échelle de l'organisation avec les informations du plan et une estimation des coûts.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/usage
Réponse
{"plan":{"name":"dev"},"total":{"compute_hours":25},"estimated_cost":{"total_usd":2.65}} /v1/projects/{id}/metrics/compute-history Historique d'usage du compute (événements suspend/resume).
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/metrics/compute-history Réponse
[{"timestamp":"...","event":"resume","duration_s":3600}] /v1/projects/{id}/metrics/vacuum Statistiques vacuum et autovacuum par table.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/metrics/vacuum Réponse
[{"table":"users","last_vacuum":"...","dead_tuples":42,"autovacuum_count":3}] Analyse des requêtes
Tableau de bord des requêtes lentes via pg_stat_statements. Top des requêtes par temps total, temps moyen, ou nombre d'appels.
.../{eid}/analyse/slow-queries Top des requêtes lentes. ?order_by=total_time|mean_time|calls&limit=30
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/analyse/slow-queries?order_by=mean_time" Réponse
[{"query":"SELECT...","calls":150,"mean_time_ms":12.3,"total_time_ms":1845,"cache_hit_pct":98.5}] .../{eid}/analyse/reset-stats Réinitialiser tous les compteurs pg_stat_statements.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/analyse/reset-stats Réponse
{"ok":true} Logs
Logs du serveur PostgreSQL.
.../{eid}/logs Suivre les logs PG en direct. ?lines=N (200 par défaut, max 5000).
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/projects/{id}/endpoints/{eid}/logs?lines=50" Réponse
{"lines":["2026-03-30 LOG: connection authorized"],"count":50} Organisation
Webhooks
Notifications HTTP sur événements. Payloads signés en HMAC-SHA256.
/v1/orgs/webhooks Lister les webhooks.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/webhooks
Réponse
[{"id":"wh-abc","url":"https://...","events":["*"],"enabled":true}] /v1/orgs/webhooks Créer un webhook. Retourne le secret de signature.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"url":"https://hook.example.com","events":["project.created"]}' https://api-test.lampion.cloud/v1/orgs/webhooks Réponse
{"id":"wh-abc","secret":"a1b2c3...","events":["project.created"]} /v1/orgs/webhooks/{id} Mettre à jour un webhook.
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" -d '{"enabled":false}' https://api-test.lampion.cloud/v1/orgs/webhooks/{id} Réponse
{"id":"wh-abc","enabled":false} /v1/orgs/webhooks/{id} Supprimer un webhook.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/webhooks/{id} Réponse
204 No Content
Membres & Invitations
Gérez les membres de l'organisation, invitez des collaborateurs, transférez la propriété. Rôles : owner, admin, developer, viewer, analyst. Le rôle analyst restreint l'accès aux branches avec l'anonymisation activée — les analysts ne voient que les données masquées via une connection string dédiée.
/v1/orgs/members Lister les membres de l'organisation.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/members
Réponse
[{"user_id":"u-1","email":"alice@corp.com","role":"owner"},{"user_id":"u-2","email":"bob@corp.com","role":"developer"},{"user_id":"u-3","email":"analyst@corp.com","role":"analyst"}] /v1/orgs/members/{uid}/role Changer le rôle d'un membre. Rôles valides : owner, admin, developer, viewer, analyst.
Requête
curl -X PATCH -H "Authorization: Bearer $TOKEN" -d '{"role":"analyst"}' https://api-test.lampion.cloud/v1/orgs/members/{uid}/role Réponse
{"user_id":"u-3","role":"analyst"} /v1/orgs/members/{uid} Retirer un membre de l'organisation.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/members/{uid} Réponse
204 No Content
/v1/orgs/transfer-ownership Transférer la propriété à un autre membre.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" -d '{"user_id":"u-2"}' https://api-test.lampion.cloud/v1/orgs/transfer-ownership Réponse
{"ok":true} /v1/orgs/invitations Lister les invitations en attente.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/invitations
Réponse
[{"id":"inv-1","email":"carol@corp.com","role":"developer","status":"pending"}] /v1/orgs/invitations Inviter un utilisateur par email.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" \
-d '{"email":"carol@corp.com","role":"developer"}' https://api-test.lampion.cloud/v1/orgs/invitations Réponse
{"id":"inv-1","email":"carol@corp.com","role":"developer","status":"pending"} /v1/orgs/invitations/{inv_id} Annuler une invitation en attente.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/invitations/{inv_id} Réponse
204 No Content
Clés API
Gérez les clés API de votre organisation. Les clés utilisent le préfixe lmp_live_ et ont des permissions de niveau developer.
/v1/orgs/api-keys Lister les clés API (valeurs tronquées).
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/api-keys
Réponse
[{"id":"key-1","name":"CI/CD","prefix":"lmp_live_abc...","created_at":"2026-04-01T10:00:00Z"}] /v1/orgs/api-keys Créer une nouvelle clé API. La clé complète n'est retournée qu'une seule fois.
Requête
curl -X POST -H "Authorization: Bearer $TOKEN" -d '{"name":"CI/CD"}' https://api-test.lampion.cloud/v1/orgs/api-keys Réponse
{"id":"key-1","name":"CI/CD","key":"lmp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} /v1/orgs/api-keys/{key_id} Révoquer une clé API.
Requête
curl -X DELETE -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/orgs/api-keys/{key_id} Réponse
204 No Content
Journal d'audit
Chaque action (création de projet, invitation, changement de rôle, suppression) est tracée. Disponible pour les owners.
/v1/orgs/audit-log Lister les événements d'audit. ?limit=N&offset=N pour la pagination.
Requête
curl -H "Authorization: Bearer $TOKEN" "https://api-test.lampion.cloud/v1/orgs/audit-log?limit=10"
Réponse
[{"action":"project.created","actor":"alice@corp.com","target":"my-app","created_at":"2026-04-01T10:00:00Z"}] Infrastructure
Résidence des données
Preuve de l'emplacement physique de vos données. Région, datacenter, provider, certifications, chiffrement par couche.
/v1/projects/{id}/residency Récupérer le rapport complet de résidence des données d'un projet.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/projects/{id}/residency Réponse
{"region_id":"fr-par-1","region":{"city":"Paris","provider":"Scaleway","datacenter":"DC2","certifications":["ISO 27001","HDS"]},"data_layers":[...],"compliance":{"data_in_country":"France"}} Plans
Plans tarifaires.
/v1/plans Lister les plans avec leurs limites et tarifs.
Requête
curl -H "Authorization: Bearer $TOKEN" https://api-test.lampion.cloud/v1/plans
Réponse
[{"name":"free","max_projects":3,"cu_hour_usd":0},{"name":"dev","cu_hour_usd":0.09},{"name":"pro","cu_hour_usd":0.09}]