サーバー
インストール
Section titled “インストール”npm install -g @petradb/serverpetradb-server [OPTIONS] [path]パスが指定された場合、サーバーはその場所に永続データベースを開く(または作成する)します。パスなしの場合、インメモリデータベースが使用されます。
| オプション | 説明 |
|---|---|
-m, --memory | インメモリデータベースを使用 |
-p, --port | ポート番号(デフォルト:5480) |
-h, --host | ホストアドレス(デフォルト:127.0.0.1) |
-c, --config | TOML設定ファイルのパス |
# デフォルトポートでインメモリデータベースpetradb-server
# カスタムポートで永続データベースpetradb-server -p 8080 mydata.db
# 設定ファイル付きpetradb-server -c petradb.toml mydata.dbTOMLファイルで認証、CORS、セッション制限を制御します。
auth = "basic"
[[users]]username = "admin"password = "$HASHED_PASSWORD"
[[users]]username = "reader"password = "$HASHED_PASSWORD"
[cors]origin = "*" # "*"(デフォルト)、"none"、または特定のオリジン
[sessions]max_sessions = 100 # 0 = 無制限(デフォルト)| モード | 説明 |
|---|---|
"none" | 認証なし(設定ファイルがない場合のデフォルト) |
"basic" | [[users]]リストに対するHTTP Basic認証 |
設定ファイル内のパスワードはPBKDF2ハッシュとして保存されます。
auth = "basic"の場合、すべてのリクエスト(GET /healthを除く)にAuthorization: Basic <credentials>ヘッダーが必要です。
originの値 | 動作 |
|---|---|
"*"(デフォルト) | すべてのオリジンを許可 |
"none" | CORSヘッダーなし |
URL(例:"https://app.example.com") | そのオリジンのみ許可 |
HTTP API
Section titled “HTTP API”すべてのSQLリクエストとレスポンスはPetraDBバイナリコーデック(application/octet-stream)を使用します。これらのエンドポイントを直接呼び出す代わりに、@petradb/clientライブラリを使用してください。
SQLの実行
Section titled “SQLの実行”POST /sqlContent-Type: application/octet-streamX-Session-Id: <session-id> (オプション)
<sql text>バイナリエンコードされたSeq[Result]を返します。X-Session-Idヘッダーなしの場合、各リクエストは一時的なワンオフセッションで実行されます。
セッションの作成
Section titled “セッションの作成”POST /session{ "sessionId": "<id>" }を返します。返されたIDを後続のX-Session-Idヘッダーで使用して、リクエスト間でトランザクション状態を共有します。
セッションの終了
Section titled “セッションの終了”DELETE /session/<id>成功時に{ "ok": "true" }を返し、セッションが存在しない場合は404を返します。
ヘルスチェック
Section titled “ヘルスチェック”GET /health{ "status": "ok" }を返します。認証の対象外です。
エラーレスポンス
Section titled “エラーレスポンス”| ステータス | 意味 |
|---|---|
| 400 | SQLパースエラー、型エラー、または未定義の参照 |
| 401 | 認証情報が欠落または無効 |
| 409 | スキーマまたは制約違反 |
| 503 | セッション制限に達した |