クライアントフローマップ
目的: jsonlog を統合するクライアントに期待される上位シーケンスを定義すること。
主要フロー
auth.jsonlog.comで認証をブートストラップし、アカウント単位ルート用の Bearer トークンを取得する。POST /log(公開またはチャネル指定)へ JSON ボディでログを送信する。GET /wsアップグレードで、必要に応じてcid/levelフィルタを付けてリアルタイムログを受信する。- HTTP / WebSocket の読み書きで、アカウントクレーム(
acc)によるプライベートチャネルアクセス制御を行う。 POST /queryで耐久 SSTable ファイルを探索し、GET /query/statsで集計を確認する。GET /healthとGET /statsでサービスの可用性と書き込み経路状態を監視する。
エンドポイント分類
- 取り込み:
POST /logGET /log
- ストリーミング:
GET /ws(WebSocket アップグレードエンドポイント)
- クエリ:
POST /queryGET /query/stats
- サービス:
GET /healthGET /stats
- ドキュメント:
GET /openapi.jsonGET /docsGET /swagger
セキュリティ要件
- JWT 署名検証はデフォルトで
https://auth.jsonlog.com/.well-known/jwks.json?client_id=cid_jsonlogを使用します。 /queryルートは Bearer 認証が必要で、JWT のaccによりアカウント分離を行います。- プライベートチャネルアクセスは JWT の
accがチャネル所有アカウントと一致する必要があります。 - 不正なプライベートチャネル読み取りはチャネル探索を防ぐため
404を返します。 - 認証なし利用はローカル開発専用で、本番デフォルトにしてはいけません。