gateways/ ディレクトリには、外部からの HTTP リクエストを受け付ける API ゲートウェイが含まれます。ゲートウェイは自身ではビジネスロジックを持たず、リクエストの認証・バリデーションを行った後、Native RPC でバックエンドサービスに処理を委譲します。
better-auth の HTTP エンドポイントを公開する認証専用ゲートウェイです。ブラウザからの認証リクエスト(ログイン・サインアップ・OAuth コールバック等)を受け付け、Proof サービスに委譲します。
| 項目 | 内容 |
|---|
| パス | gateways/door |
| 技術 | better-auth 1.4.18 |
| ドメイン(本番) | door.plfumg.com |
| ドメイン(開発) | door.plfumg.net |
| compatibility_date | 2025-11-03 |
| バインディング | サービス | 用途 |
|---|
PROOF | Proof | 認証処理の委譲 |
| 方式 | 説明 |
|---|
| メール/パスワード | 標準的なメール・パスワード認証 |
| Google OAuth | Google アカウントによるソーシャルログイン |
| Passkey (WebAuthn) | パスキーによるパスワードレス認証 |
| Anonymous | 匿名認証(顧客向け) |
| Bearer Token | API キーによるトークン認証 |
rpID: rootDomain // Relying Party ID(ドメイン)
Door は クロスサブドメイン Cookie を発行します。これにより、door.plfumg.com で認証した後、counter.plfumg.com や penthouse.plfumg.com でもセッションが有効になります。
| 環境 | Cookie ドメイン |
|---|
| 本番 | .plfumg.com |
| 開発 | .plfumg.net |
| ローカル | localhost |
外部サービス(purelovers 等)からの Webhook や API リクエストを受け付ける公開 API ゲートウェイです。
| 項目 | 内容 |
|---|
| パス | gateways/tap |
| 技術 | Hono 4.11.7 |
| ドメイン(本番) | tap.plfumg.com |
| ドメイン(開発) | tap.plfumg.net |
| compatibility_date | 2025-01-06 |
| バインディング | サービス | 用途 |
|---|
PROOF | Proof | API リクエストの認証 |
FIZZ | Fizz | チャットメッセージ送信 |
BASE | Base | 組織・店舗情報取得 |
VINTAGE | Vintage | 連絡先データ操作 |
| 種別 | バインディング名 | 用途 |
|---|
| Hyperdrive | CELLAR_HYPERDRIVE | 業務 DB への直接アクセス |
| Analytics Engine | ANALYTICS | DB オペレーション追跡(speakeasy_db_operations) |
| 機能 | 説明 |
|---|
| Webhook 受信 | purelovers からの Webhook イベント処理 |
| メッセージ送信 API | 外部サービスからのチャットメッセージ送信 |
| 連絡先 API | 外部サービスからの連絡先データ操作 |
| 認証代行 | Bearer トークン / API キーによる認証 |
外部 API リクエストは Bearer トークン または API キー で認証されます。
Authorization: Bearer <api-key>
Tap は受け取ったトークンを Proof サービスに送信してバリデーションを行います。
Tap の Public API の詳細なリファレンスドキュメントは Scalar API Reference として提供されています。
| 項目 | Gateway | App |
|---|
| 通信方式 | HTTP(外部からのリクエスト) | Remote Functions(ブラウザ↔サーバー) |
| 認証 | Bearer / Cookie / OAuth | Cookie(Door 発行のセッション) |
| 対象 | 外部サービス・認証フロー | エンドユーザー(ブラウザ) |
| サービスへの接続 | Native RPC | Native RPC |
Apps(Counter, Penthouse)は SvelteKit の Remote Functions を通じてサーバーサイドから直接 Service Binding を使用するため、ゲートウェイを経由しません(認証フロー除く)。