# Supabase セットアップ（Auth + UGC メタ DB）

インフラ方針: Cloudflare（静的・R2）＋ **Supabase（Auth / PostgreSQL）**。  
いまの PoC Node API（8782）と並行して導入し、段階的に寄せます。

## 1. プロジェクト作成（ダッシュボード · 約 3 分）

1. https://supabase.com/dashboard にログイン（GitHub 連携可）  
2. **New project**  
   - Name: `muvic-joy`（任意）  
   - Database password: **必ず保存**  
   - Region: `Northeast Asia (Tokyo)` 推奨  
3. プロビジョニング完了を待つ（1〜2 分）

## 2. 初期 SQL を流す

1. 左メニュー **SQL Editor** → New query  
2. リポジトリの次を全文貼り付けて **Run**:

`supabase/migrations/20261111000000_init_ugc_schema.sql`

内容: `profiles` / `tracks` / `remixes` / `likes` + RLS + サインアップ時プロファイル自動作成。

## 3. フロント用キーを置く

1. **Project Settings → API**  
2. `Project URL` と `anon` `public` key をコピー  
3. ローカルで:

```powershell
cd muvic-joy-platform
copy apps\web\config\supabase.example.json apps\web\config\supabase.json
```

4. `supabase.json` を編集:

```json
{
  "supabaseUrl": "https://xxxx.supabase.co",
  "supabaseAnonKey": "eyJhbGciOi...",
  "enabled": true
}
```

※ `supabase.json` は **gitignore 済み**（anon key は公開前提だが、誤って service_role を入れないこと）。

## 4. コードから使う

```js
import { getSupabase, isSupabaseEnabled } from './js/supabase_client.js';

if (await isSupabaseEnabled()) {
  const sb = await getSupabase();
  const { data } = await sb.from('tracks').select('id,title').limit(10);
}
```

`enabled: false` または未設定のあいだは **従来の 8782 PoC API のみ**で動きます。

## 5. CLI（任意）

非対話環境ではトークンが必要です:

1. https://supabase.com/dashboard/account/tokens → Access Token 発行  
2.

```powershell
$env:SUPABASE_ACCESS_TOKEN = "sbp_..."
npx supabase projects list
npx supabase link --project-ref YOUR_REF
npx supabase db push
```

## 6. まだやらないこと（次フェーズ）

| 項目 | 状態 |
|------|------|
| 既存 `login.html` → Supabase Auth 置換 | 未（PoC session 併存） |
| R2 署名 URL + tracks INSERT | 未 |
| service_role をフロントに置く | **禁止** |

## 関連

- スキーマ: `supabase/migrations/20261111000000_init_ugc_schema.sql`  
- クライアント: `apps/web/js/supabase_client.js`  
- Pages: [cloudflare-pages.md](cloudflare-pages.md)  
- GitHub: https://github.com/jo-oku/muvic-joy-platform
