diff --git a/docs/master-architecture.md b/docs/master-architecture.md index 40d0f5ad..a23b87c9 100644 --- a/docs/master-architecture.md +++ b/docs/master-architecture.md @@ -1,6 +1,6 @@ # Posimai Project — マスターアーキテクチャドキュメント -最終更新: 2026-03-28 +最終更新: 2026-03-29 対象: Claude Code / Cursor / Antigravity / Gemini / 全 AI エージェント **このドキュメントはプロジェクトの現状を一元管理します。実装の前に必ず読んでください。** @@ -59,7 +59,7 @@ ║ PostgreSQL 16 ║ ║ articles / journal_posts / users ║ ║ site_config / reading_history ║ -║ ※ auth テーブルは Supabase Auth 採用確定につき将来削除 ║ +║ ※ users/magic_link_tokens 等で VPS 自前認証を完全ホスト ║ ╚══════════════════════════════════════════════════════════╝ ╔══════════════════════════════════════════════════════════╗ @@ -77,11 +77,10 @@ ╔══════════════════════════════════════════════════════════╗ ║ 外部サービス ║ ║ ║ -║ 【認証・確定】Supabase Auth ║ -║ Magic Link(メール)+ Passkey(指紋・顔) ║ -║ → Resend をカスタム SMTP として設定 ║ -║ → 各アプリは Supabase JWT で認証 ║ -║ → VPS は JWT を検証するだけ(認証ロジックは Supabase) ║ +║ 【認証】VPS 自前システム (Magic Link + WebAuthn) ║ +║ → Supabase Auth 構築を中止し、完全セルフホスト化 ║ +║ → 各アプリは VPS JWT で全APIと通信 ║ +║ → Magic Link メール送信のみ Resend (noreply) を利用 ║ ║ ║ ║ 【稼働中】Supabase DB ║ ║ together(リアルタイム同期・稼働中) ║ @@ -129,30 +128,27 @@ | posimai-maps | maps.vercel.app | 静的 | — | マップ | | posimai-hotels | hotels.vercel.app | 静的 | — | ホテル価格 | | posimai-tech-events | tech-events.vercel.app | 静的 | RSS | IT イベント | +| posimai-atlas | atlas.vercel.app | 静的 | VPS API | インフラ構成図・監視 | | posimai-ui | ui.vercel.app | 静的 | — | 共有デザインシステム | --- -## 3. 認証フロー(確定・未実装) +## 3. 認証フロー(確定) ``` -現行(稼働中): - フロント → X-API-Key: pk_maita_xxx → VPS が検証 - ?init_key= URL → localStorage に保存 +方針(本番としてそのまま進化させる): + フロント → API Key or JWT (Magic Link) → VPS が検証 + ?init_key= URL → localStorage に保存・JWT 保有 3ユーザー(maita / partner / musume)のみ対応 + メール送信: Resend API (noreply@soar-enrich.com) + ※ Supabase Auth への移行計画は中止(完全自己ホスト化) -移行先(確定・実装待ち): - フロント → Supabase Auth → Magic Link or Passkey - → Supabase JWT 発行 - → VPS が JWT を検証 - メール送信: Resend(noreply@soar-enrich.com) - -課題: Passkey は登録ドメイン固有 - → *.posimai.soar-enrich.com ワイルドカード DNS が必要 +課題: WebAuthn (Passkey) には共通の rpID が必要 + → *.posimai.soar-enrich.com ワイルドカード DNS が必須 → Eiji への依頼待ち ``` -**実装完了まで `X-API-Key`・`?init_key=`・localStorage 認証ロジックは変更禁止。** +**自前認証化のため `X-API-Key`・`?init_key=`・localStorage ロジックは維持される。** --- @@ -162,7 +158,7 @@ |--------|--------|------| | VPS PostgreSQL | brain・journal・site・reading_history | 稼働中 | | Supabase DB | together | 稼働中 | -| Supabase DB | habit・pulse | 将来移行予定(商用化フェーズ3) | +| localStorage + VPS バックグラウンド同期 | habit・pulse | ローカルファースト(同期のみ) | | localStorage(永続・移行しない) | veil 設定・timer 設定 | 確定 | | データなし(都度処理) | diff・clean・lens・digest・think・timer 本体 | — | @@ -203,6 +199,7 @@ npm run deploy # = git push gitea main && git push github main | 2026-03-26 | API URL を `posimai.soar-enrich.com` → `api.soar-enrich.com` に分離完了 | | 2026-03-27 | 認証方式を Supabase Auth(Magic Link + Passkey)に確定 | | 2026-03-28 | 現行 auth テーブル(magic_link_tokens 等)は将来削除予定・今は放置 | +| 2026-03-29 | ベンダーロックイン回避のため Supabase 完全移行を中止。VPS 独自認証(Magic Link+Passkey)を正規方針として続行 | | 保留中 | *.posimai.soar-enrich.com ワイルドカード DNS(Eiji 依頼待ち) | | 保留中 | VPS に VOICEVOX コンテナ追加(Eiji 作業中) |