Serveur
Installation
Section intitulée « Installation »npm install -g @petradb/serverUtilisation
Section intitulée « Utilisation »petradb-server [OPTIONS] [path]Si un chemin est donné, le serveur ouvre (ou crée) une base de données persistante à cet emplacement. Sans chemin, une base de données en mémoire est utilisée.
| Option | Description |
|---|---|
-m, --memory | Utiliser une base de données en mémoire |
-p, --port | Numéro de port (par défaut : 5480) |
-h, --host | Adresse de l’hôte (par défaut : 127.0.0.1) |
-c, --config | Chemin vers un fichier de configuration TOML |
Exemples
Section intitulée « Exemples »# Base de données en mémoire sur le port par défautpetradb-server
# Base de données persistante sur un port personnalisépetradb-server -p 8080 mydata.db
# Avec un fichier de configurationpetradb-server -c petradb.toml mydata.dbConfiguration
Section intitulée « Configuration »Un fichier TOML contrôle l’authentification, le CORS et les limites de sessions.
auth = "basic"
[[users]]username = "admin"password = "$HASHED_PASSWORD"
[[users]]username = "reader"password = "$HASHED_PASSWORD"
[cors]origin = "*" # "*" (par défaut), "none", ou une origine spécifique
[sessions]max_sessions = 100 # 0 = illimité (par défaut)Modes d’authentification
Section intitulée « Modes d’authentification »| Mode | Description |
|---|---|
"none" | Pas d’authentification (par défaut sans fichier de configuration) |
"basic" | Authentification HTTP Basic contre la liste [[users]] |
Les mots de passe dans le fichier de configuration sont stockés sous forme de hachages PBKDF2.
Lorsque auth = "basic", chaque requête (sauf GET /health) doit inclure un en-tête Authorization: Basic <credentials>.
Valeur de origin | Comportement |
|---|---|
"*" (par défaut) | Autoriser toutes les origines |
"none" | Pas d’en-têtes CORS |
Une URL (ex. "https://app.example.com") | Autoriser uniquement cette origine |
API HTTP
Section intitulée « API HTTP »Toutes les requêtes et réponses SQL utilisent le codec binaire PetraDB (application/octet-stream). Utilisez la bibliothèque @petradb/client au lieu d’appeler ces endpoints directement.
Exécuter du SQL
Section intitulée « Exécuter du SQL »POST /sqlContent-Type: application/octet-streamX-Session-Id: <session-id> (optionnel)
<sql text>Retourne un Seq[Result] encodé en binaire. Sans en-tête X-Session-Id, chaque requête s’exécute dans une session transitoire unique.
Créer une session
Section intitulée « Créer une session »POST /sessionRetourne { "sessionId": "<id>" }. Utilisez l’ID retourné dans les en-têtes X-Session-Id subséquents pour partager l’état transactionnel entre les requêtes.
Fermer une session
Section intitulée « Fermer une session »DELETE /session/<id>Retourne { "ok": "true" } en cas de succès, ou 404 si la session n’existe pas.
Vérification de santé
Section intitulée « Vérification de santé »GET /healthRetourne { "status": "ok" }. Non soumis à l’authentification.
Réponses d’erreur
Section intitulée « Réponses d’erreur »| Statut | Signification |
|---|---|
| 400 | Erreur de syntaxe SQL, erreur de type ou référence indéfinie |
| 401 | Identifiants manquants ou invalides |
| 409 | Violation de schéma ou de contrainte |
| 503 | Limite de sessions atteinte |