Skip to content
⚠️ この翻訳は機械翻訳です。ネイティブによるレビューは保留中のため、訳文に誤りが含まれる場合があります。

ローカルAPI

ローカルエンドポイントは 127.0.0.1:LOCAL_PORT(既定 3001)で待ち受けます。公開エンドポイントと同じプロセスで動きますが、ループバックのみにバインドされます — 同じマシン上の所有者のアプリ、CLI、ツール向け(あるいはTailscaleやVPNなどのトンネル経由で到達)です。

まだ認証なし

ローカルエンドポイントは現在 認証がありません。分離は完全に 127.0.0.1 バインドに依存します。このポートをインターネットへポートフォワードやリバースプロキシしないでください。所有者のチャレンジ・レスポンス認証は計画中です — 下記を参照。

ベースURL

http://127.0.0.1:3001

ルート

ローカルエンドポイントは 公開API同じルート を公開します。構造的な違いは1つ: どのデータベースにアクセスするかです。

ルート公開エンドポイントローカルエンドポイント
GET /health同一
POST /v1/devicesraiznet_public.db に書き込みraiznet_private.db に書き込み
GET /v1/devices, GET /v1/devices/:idraiznet_public.db を読み取りraiznet_private.db を読み取り
GET /v1/devices/:id/telemetryraiznet_public.db を読み取りraiznet_private.db を読み取り
POST /v1/telemetry取り込み先 public取り込み先 local

この非対称は意図的です。ローカルエンドポイントでデバイスを登録すると、プライベートデータベースに ローカルデバイス として作成され、公開側からは不可視です。

取り込み先

ローカルエンドポイントの POST /v1/telemetry は、デバイスの publishTo0(local_only)または 2(both)のとき、読み取りを raiznet_private.db に保存します。publishTo: 1(公開のみ)のデバイスがここにポストすると、検証され受理されますが何も保存されません。

both のデバイスは、各エンドポイントへ 別々のリクエスト を送ります — 1つは公開、1つはローカル — それぞれその宛先のフィールド処分に従って組み立てられます。

リモートアクセス

LAN外からローカルデータを読むには、プライベートオーバーレイネットワーク(Tailscale、WireGuard)でサーバーの 127.0.0.1:3001 に到達するか、フィールドを公開ネットワーク向けに encrypted とマークしてアプリで復号してください(プライバシーモデル を参照)。


計画中: 所有者認証

所有者のユーザー鍵によるチャレンジ・レスポンス認証は設計済みですが まだ未実装 です。

  1. クライアントが GET /v1/auth/challenge を呼ぶ → 32バイトの乱数を受け取る。
  2. クライアントがチャレンジをユーザー秘密鍵で署名する。
  3. クライアントが署名を POST /v1/auth/verify に送る → セッショントークンを受け取る。

計画中: 統合ビュー

ローカルエンドポイントは最終的に raiznet_public.db + raiznet_private.db(device_pubkey, seq) で統合し、所有者がデバイスごとに1つの連続シリーズを見られるようにします。暗号化フィールドはローカル復号のため cipher + nonce として返されます。今日、各エンドポイントは自身のデータベースのみを返します。