Toutes les features

Tout ce que Lampion met à votre disposition, avec des exemples concrets.

COMPUTE

Scale to zero

Votre compute se suspend automatiquement après 5 minutes sans connexion. Au prochain psql, il se réveille en moins d'une seconde. Vous ne payez que le temps actif.

  • Auto-suspend configurable (5 min par défaut)
  • Wake-on-connect via le proxy TCP
  • Metering précis à la seconde
$ psql "postgresql://[email protected]/ep-abc.postgres"
SSL connection (TLSv1.3)
-- compute was suspended, resumed in 0.8s
mydb=> SELECT now();
2026-04-22 10:42:01.234+00
DATA

Branching Git-like

Créez une copie de votre base en moins d'une seconde. Copy-on-write : la branche ne consomme que le delta. Testez vos migrations, puis supprimez.

  • Fork instantané (copy-on-write)
  • Branches protégées (bloque les DROP sur main)
  • TTL auto-delete (1h à 30 jours)
  • Schema diff entre branches
$ curl -X POST .../branches \
  -d '{"name":"staging","parent_id":"main"}'

{"id":"br-new","name":"staging",
 "compute_id":"ep-staging",
 "created_in":"0.4s"}

# La branche a sa propre base, isolée
# Supprimez-la quand vous avez fini
SECURITY

Sécurité zero-trust

Chaque connexion est authentifiée et chiffrée. Mots de passe générés par projet, jamais réutilisés. API publique avec Bearer tokens scopés par organisation.

  • SCRAM-SHA-256 sur chaque connexion
  • TLS obligatoire (certificats auto-générés)
  • Passwords uniques par projet (24 chars)
  • IP allowlists (plans payants)
  • Rate limiting (120 req/min/IP)
  • RBAC : owner / admin / developer / viewer / analyst
# Connexion chiffrée + authentifiée
$ psql "postgresql://cloud_admin:YaQY...
  @db.lampion.cloud:5432/ep-abc.postgres
  ?sslmode=require"

psql (17.5)
SSL connection (protocol: TLSv1.3,
  cipher: TLS_AES_256_GCM_SHA384)

# API avec Bearer token
$ curl -H "Authorization: Bearer lmp_live_xxx" \
  .../v1/projects
TOOLING

SQL Editor avancé

Un éditeur SQL complet dans la console. Multi-onglets, historique, requêtes sauvegardées, Explain Analyze, export CSV. Éditez vos données directement dans les tables.

  • Multi-onglets avec historique (100 dernières)
  • Autocomplétion tables + colonnes
  • Explain Analyze en un clic
  • Export CSV, import SQL
  • Édition inline des données (double-click)
  • Filtres par colonne (=, LIKE, ILIKE, IS NULL...)
mydb=> EXPLAIN ANALYZE
  SELECT * FROM users WHERE email ILIKE '%@corp.com';

Seq Scan on users  (cost=0.00..1.52 rows=1)
  Filter: (email ~~* '%@corp.com'::text)
  Rows Removed by Filter: 42
Planning Time: 0.08 ms
Execution Time: 0.03 ms
OBSERVABILITY

Monitoring et alertes

Tableau de bord temps réel avec historique 24h. CPU, mémoire, I/O, connexions, cache ratio, taille par base. Alertes email automatiques sur les quotas.

  • Graphes live (CPU, RAM, I/O, connexions)
  • Cache hit ratio avec seuils colorés
  • Taille par base de données
  • Alertes email à 80% et 100% du quota
  • Logs PostgreSQL en temps réel
GET /v1/projects/{id}/metrics

{"connections_total": 12,
 "connections_active": 3,
 "cache_hit_ratio": 98.5,
 "storage_logical_mb": 42.3,
 "compute_cpu_seconds": 1234.5,
 "compute_memory_mb": 256,
 "databases": [
   {"name":"myapp","size_mb":38.1}
 ]}
NETWORK

Connection pooling

PgBouncer intégré en mode transaction pooling. Le proxy TCP route les connexions, gère le multiplexage et réveille les computes suspendus au premier paquet.

  • PgBouncer en transaction mode
  • Multiplexage : centaines de clients sur quelques connexions PG
  • Wake-on-connect automatique
  • Routing par endpoint ID
# Connexion directe (sans pooling)
$ psql "postgresql://[email protected]/ep-abc.postgres"

# Via pooling (parametre options)
$ psql "postgresql://[email protected]/postgres
  ?options=endpoint%3Dep-abc"

-- PgBouncer: transaction mode active
-- 200 clients → 5 PG connections
DURABILITY

Backup & PITR

Capturez l'état exact de votre base à un instant T. Restaurez vers une nouvelle branche sans toucher à la production. Export pg_dump via l'API.

  • Snapshots via LSN du pageserver
  • Restauration vers une nouvelle branche
  • pg_dump via l'API (filtrage par table)
  • Zero impact sur la production
$ curl -X POST .../backups \
  -d '{"name":"before-migration","branch_id":"main"}'

{"id":"bk-42","lsn":"0/15A2C08","created_at":"..."}

# Restaurer vers une nouvelle branche
$ curl -X POST .../backups/bk-42/restore

{"branch":"restored-bk-42","compute_id":"ep-new"}

# Export SQL
$ curl .../endpoints/ep-abc/dump?table=users -o users.sql
INTÉGRATION

Webhooks

Recevez des notifications HTTP en temps réel sur 10+ types d'événements. Chaque payload est signé HMAC-SHA256 pour vérification côté serveur.

  • 10+ événements : project.created, endpoint.suspended, etc.
  • Signature HMAC-SHA256 par secret dédié
  • Filtrage par type d'événement
  • Activation/désactivation par webhook
$ curl -X POST .../webhooks \
  -d '{"url":"https://hook.me/lampion",
       "events":["project.created","endpoint.suspended"]}'

{"id":"wh-7f","secret":"a1b2c3..."}

# Payload recu :
{"event":"endpoint.suspended",
 "project_id":"abc123",
 "endpoint_id":"ep-abc",
 "timestamp":"2026-04-01T12:00:00Z"}
# Header: X-Lampion-Signature: sha256=...
COLLABORATION

Équipe & multi-org

Invitez vos collègues par email, attribuez des rôles granulaires. Chaque utilisateur peut appartenir à plusieurs organisations avec switch instantané.

  • Rôles : owner, admin, developer, viewer, analyst
  • Invitations par email avec notification
  • Multi-organisation avec switch instantané
  • Audit log complet de toutes les actions
$ curl -X POST .../invitations \
  -d '{"email":"[email protected]","role":"developer"}'

{"id":"inv-9a","email":"[email protected]",
 "role":"developer","status":"pending"}

# Audit log
$ curl .../audit-log?limit=3

[{"action":"invitation.created","actor":"bob"},
 {"action":"project.created","actor":"bob"},
 {"action":"api_key.created","actor":"alice"}]
AUTOMATION

Database seeding

Attachez jusqu'à 10 scripts SQL ordonnés à votre projet. Ils s'exécutent automatiquement sur chaque nouvelle branche — données de test, fixtures, extensions.

  • Jusqu'à 10 scripts ordonnés par projet
  • Exécution automatique sur chaque nouvelle branche
  • Activation/désactivation par script
  • Réordonnement à la volée
$ curl -X POST .../seeds \
  -d '{"name":"fixtures","sql":"
    CREATE TABLE users (
      id SERIAL PRIMARY KEY,
      name TEXT, email TEXT UNIQUE
    );
    INSERT INTO users (name, email) VALUES
      (\u0027Alice\u0027, \[email protected]\u0027),
      (\u0027Bob\u0027, \[email protected]\u0027);"}'

{"id":"seed-1","name":"fixtures","position":1}

# Chaque branche creee execute ce script
PERFORMANCE

Query Replay

Capturez les top requêtes d'une branche via pg_stat_statements, rejouez-les sur une autre. Détectez les régressions de performance avant de merger.

  • Capture via pg_stat_statements
  • Replay côte-à-côte source vs target
  • Détection automatique des régressions
  • Ratio de performance par requête
$ curl -X POST .../replay -d '{
  "source_endpoint_id":"ep-main",
  "target_endpoint_id":"ep-staging",
  "limit":20}'

{"queries": [
  {"query":"SELECT * FROM orders WHERE...",
   "source_mean_ms": 1.2,
   "target_mean_ms": 3.8,
   "ratio": 3.17,
   "status": "regression"}
 ],
 "summary": {"regressions":2,
  "improvements":5,"stable":13}}
EXTENSIBILITY

Extensions PostgreSQL

Installez pgvector, PostGIS, pg_cron et d'autres extensions en un clic. Listez les extensions disponibles, activez ou désactivez-les par base.

  • pgvector pour l'IA et les embeddings
  • PostGIS pour les données géospatiales
  • pg_cron pour les tâches planifiées
  • hstore, uuid-ossp, et plus encore
$ curl .../extensions

[{"name":"plpgsql","installed":true},
 {"name":"pgvector","installed":false},
 {"name":"postgis","installed":false}]

$ curl -X POST .../extensions \
  -d '{"name":"pgvector"}'

{"name":"pgvector","installed":true}

mydb=> CREATE TABLE docs (
  id SERIAL, embedding vector(1536)
);
TOOLING

Schema introspection

Explorez la structure de vos bases via l'API ou la console. Navigation hiérarchique en 3 niveaux : databases, schemas, tables avec colonnes et types.

  • Niveau 1 : liste des databases
  • Niveau 2 : schemas avec nombre de tables
  • Niveau 3 : tables, colonnes, types, defaults
  • Aucune requête SQL nécessaire
$ curl ".../schema?database=myapp&schema=public"

{"type":"tables","items":[
  {"name":"users","columns":[
    {"name":"id","type":"integer",
     "nullable":false,"default":"nextval()"},
    {"name":"email","type":"text",
     "nullable":false,"default":null},
    {"name":"created_at","type":"timestamptz",
     "nullable":true,"default":"now()"}
  ]},
  {"name":"orders","columns":[...]}
]}
COMPLIANCE

Data residency

Audit visuel prouvant où résident vos données. Région, datacenter physique, provider, certifications par couche. Preuve de conformité exportable.

  • Localisation par couche (compute, storage, WAL)
  • Certifications : ISO 27001, HDS
  • Datacenter physique identifié
  • Conformité RGPD vérifiable
$ curl .../residency

{"region_id":"fr-par-1",
 "region":{
   "city":"Paris",
   "provider":"Scaleway",
   "datacenter":"DC2 — Vitry-sur-Seine",
   "certifications":["ISO 27001","HDS"]},
 "data_layers":[
   {"layer":"compute","location":"fr-par-1"},
   {"layer":"pageserver","location":"fr-par-1"},
   {"layer":"s3_storage","location":"fr-par"}
 ],
 "compliance":{"data_in_country":"France"}}
BILLING

Billing transparent

3 plans clairs avec simulation de coûts en temps réel. Metering précis du compute, stockage et transfert. Aucun coût caché.

  • Free : 3 projets, $0
  • Dev : $0.09/CU-heure, $0.35/Go-mois
  • Pro : IP allowlist, auto-suspend configurable
  • Estimation mensuelle en temps réel
$ curl .../usage

{"plan":{"name":"dev"},
 "quotas":{"projects":{"used":4,"max":100}},
 "total":{
   "compute_hours": 25.3,
   "storage_gb": 1.2,
   "transfer_gb": 0.4},
 "estimated_cost":{
   "compute_usd": 2.28,
   "storage_usd": 0.42,
   "transfer_usd": 0.04,
   "total_usd": 2.74},
 "period":"2026-04"}
PRIVACY

PII Masking

Masquez dynamiquement les colonnes sensibles (email, nom, IBAN, SIRET) sur une branche. Idéal pour partager une copie de production avec dev/staging sans exposer les données réelles. Basé sur postgresql_anonymizer avec dynamic masking. Les membres avec le role analyst ne voient que les branches anonymisées et se connectent via un role PostgreSQL dédié (lampion_analyst) qui ne voit que les données masquées.

  • Activation par branche (jamais en production)
  • 15+ fonctions : fake_email, fake_iban, hash, partial, REDACTED, NULL...
  • Allowlist stricte (anti-injection SQL)
  • Application live sans recréer la branche
  • Role analyst : accès restreint aux branches anonymisées uniquement
  • Connection string dédiée (lampion_analyst) pour les analystes et prestataires externes
# 1. Activer le masking sur la branche staging
$ curl -X POST .../branches/staging/anonymization/enable

{"enabled":true}

# 2. Ajouter des règles de masquage
$ curl -X POST .../anonymization/rules -d '{
  "table_name":"users",
  "column_name":"email",
  "masking_function":"anon.fake_email()"
}'

{"id":"r-1","column_name":"email",
 "masking_function":"anon.fake_email()"}

staging=> SELECT email FROM users LIMIT 2;
  email
-------------------------
 [email protected]
 [email protected]
-- Toutes les valeurs sont fake
SCALING

Read Replicas

Ajoutez des replicas en lecture seule sur n'importe quelle branche. Chaque replica a son propre connection string et peut être suspendu indépendamment.

  • Replicas read-only par branche
  • Connection string dédié par replica
  • Suspend/resume indépendant
  • Idéal pour analytics et dashboards
$ curl -X POST .../branches/main/replicas

{"id":"rep-1",
 "connection_string":"postgresql://...
   @db.lampion.cloud/rep-1.postgres
   ?sslmode=require",
 "status":"running",
 "read_only":true}

# Suspend quand plus necessaire
$ curl -X POST .../replicas/rep-1/suspend

{"id":"rep-1","status":"suspended"}
ENCRYPTION

Chiffrement des données

Vos données sont chiffrées au repos et en transit sur chaque couche. Les plans Enterprise peuvent apporter leur propre clé de chiffrement (CMEK) via un KMS externe.

  • TLS 1.3 obligatoire sur toutes les connexions
  • Stockage S3 chiffré SSE-S3 (AES-256)
  • Console DB chiffrée (Managed PostgreSQL)
  • Volumes compute chiffrés au repos
  • CMEK via Scaleway KMS, AWS KMS ou Vault (Enterprise)
  • SSO SAML / OIDC (Enterprise)
# Connexion — TLS 1.3 obligatoire
$ psql "postgresql://[email protected]/...?sslmode=require"

SSL connection (protocol: TLSv1.3,
  cipher: TLS_AES_256_GCM_SHA384)

# Vérifier le chiffrement des données
$ curl .../residency

{"data_layers":[
  {"layer":"compute","encryption":"AES-256 (volume)"},
  {"layer":"s3_storage","encryption":"SSE-S3 AES-256"},
  {"layer":"console_db","encryption":"Managed (encrypted)"}
 ],
 "cmek":{"enabled":false,
  "available_on":"enterprise"}}

# Enterprise : CMEK via KMS
$ curl -X PATCH .../encryption \
  -d '{"kms_provider":"aws_kms",
       "key_arn":"arn:aws:kms:eu-west-1:..."}'
SOVEREIGNTY

Multi-cloud souverain

Choisissez votre cloud provider à la création du projet : Paris (Scaleway) ou Gravelines (OVH Cloud). Vos données restent en France, sur le provider de votre choix. La console reste unique, le data plane (K8s + S3) est déployé sur le cloud sélectionné.

  • Choix du provider à la création du projet
  • Scaleway : Paris (Vitry-sur-Seine, fr-par-1)
  • OVH Cloud : Gravelines (gra-1)
  • Console centralisée, data plane distribué
  • Pas de lock-in : migrez d'un cloud à l'autre
  • Panel admin : monitoring santé par data plane
# Creer un projet sur Scaleway Paris
$ curl -X POST .../projects \
  -d '{"name":"my-app","region":"scw-fr-par-1"}'

{"id":"abc","region":"scw-fr-par-1",
 "provider":"scaleway"}

# Ou sur OVH Cloud Gravelines
$ curl -X POST .../projects \
  -d '{"name":"my-app","region":"ovh-gra-1"}'

{"id":"def","region":"ovh-gra-1",
 "provider":"ovhcloud"}

# Verifier la sante des data planes (admin)
$ curl .../admin/data-planes

[{"id":"scw-fr-par-1","healthy":true},
 {"id":"ovh-gra-1","healthy":true}]
DEVELOPER

API REST publique

40+ endpoints documentés. Créez un projet et recevez le connection string en une seule requête. Intégrable dans vos pipelines CI/CD.

  • 40+ endpoints documentés
  • Bearer tokens scopés par organisation
  • Format de clé : lmp_live_xxx
  • Référence complète sur /docs
# Creer un projet en une requete
$ curl -X POST \
  -H "Authorization: Bearer lmp_live_xxx" \
  -d '{"name":"my-app","region":"fr-par-1"}' \
  api.lampion.cloud/v1/projects

{"id":"abc123",
 "endpoint_id":"ep-abc",
 "connection_string":"postgresql://
   cloud_admin:[email protected]
   :5432/ep-abc.postgres?sslmode=require",
 "pg_password":"YaQYfbg..."}

# Pret a utiliser immediatement
PORTABILITY

Migration cloud-to-cloud

Déplacez un projet d'un provider à un autre, d'une région à une autre, en une seule commande. Lampion réplique les données, bascule le trafic via le proxy TCP et supprime la source. Zéro downtime applicatif.

  • Scaleway → OVHcloud (et inversement)
  • Migration inter-région (fr-par → gra)
  • Réplication complète avant bascule
  • Connection string inchangé côté application
  • Rollback automatique en cas d'échec
# Migrer de Scaleway Paris vers OVHcloud Gravelines
$ curl -X POST .../projects/abc123/migrate \
  -d '{"target_region":"ovh-gra-1"}'

{"id":"mig-7f",
 "source":"scw-fr-par-1",
 "target":"ovh-gra-1",
 "status":"replicating",
 "eta_seconds":120}

# Suivre l'avancement
$ curl .../projects/abc123/migrate/mig-7f

{"status":"completed",
 "duration_seconds":98,
 "data_transferred_mb":1420,
 "downtime_ms":0}

# Le connection string n'a pas changé
# Le proxy reroute automatiquement

Prêt à essayer ?

Commencez gratuitement avec 3 projets.

Créer un compte Documentation API