D3RO Voice — 멀티플랫폼 AI 음성 어시스턴트 (Monorepo & CI/CD)
Find a file
yunchan8804 97eb886ec3 feat(V2-2): Supabase 인프라 — 스키마 + RLS + Edge Functions 스캐폴딩
server/supabase/ 신규 디렉토리:

config.toml — Supabase CLI 설정
  - 프로젝트 ID, DB 포트, auth providers (Google/GitHub/Apple),
    edge_runtime, functions.*.verify_jwt 설정

migrations/ (PostgreSQL DDL, 시간순):
  - 20260409000001_initial_schema.sql
    12개 테이블: profiles, teams, team_members, meetings,
    meeting_memos, meeting_documents, transcripts, history,
    dictionary, memo_tags, daily_usage, subscriptions
    + 인덱스 + FK CASCADE + transcripts Realtime publication
  - 20260409000002_rls_policies.sql
    개인 전용(history/dictionary): user_id = auth.uid()
    팀 공유(meetings 등): 본인 OR team_members 조회 subquery
    daily_usage: 읽기만, 쓰기는 service_role RPC
  - 20260409000003_auth_triggers.sql
    handle_new_user — auth.users INSERT → profiles+subscriptions 자동 생성
    moddatetime — 8개 테이블 updated_at 자동 갱신
    increment_daily_usage — service_role 전용 쿼터 RPC
  - 20260409000004_storage_buckets.sql
    audio/exports/avatars 3개 버킷 + 경로 기반 접근 정책
    (파일 경로가 {user_id}/...로 시작해야 쓰기 허용)

functions/ (Deno/TypeScript Edge Functions):
  - _shared/cors.ts — CORS 헤더 + preflight 핸들러
  - _shared/auth.ts — requireUser (JWT 검증 + User 반환)
  - _shared/quota.ts — 티어별 쿼터 체크 + consume + service role client
  - stt-proxy/index.ts — Google Cloud STT 래퍼 스캐폴딩
    placeholder 응답, 실제 API 호출 코드는 주석으로 포함
  - llm-proxy/index.ts — Anthropic Messages API 래퍼 스캐폴딩
    티어별 허용 모델 정책 (free=Haiku, pro=Sonnet, team=Opus)

설계 문서:
  - docs/v2/phase-V2-2.md — 상세 설계 (스키마/RLS/Edge Functions/Realtime)
  - docs/v2/phase-V2-2-setup.md — 사용자 액션 가이드 (Supabase 계정/
    OAuth 등록/CLI/배포/검증)

apps/desktop typecheck 통과 (server/는 Deno 런타임이라 별도).
실제 Supabase 프로젝트 배포는 사용자가 phase-V2-2-setup.md 따라 수행.
2026-04-08 15:21:08 +09:00
.claude skill updated 2026-04-08 13:23:51 +09:00
.github/workflows 랜딩 페이지: D3RO 브랜드 프로모션 사이트 + GitHub Pages 배포 2026-04-05 23:55:13 +09:00
apps/desktop feat(V2-1d): packages/i18n 추출 — Electron 독립 i18n 엔진 2026-04-08 14:57:27 +09:00
docs feat(V2-2): Supabase 인프라 — 스키마 + RLS + Edge Functions 스캐폴딩 2026-04-08 15:21:08 +09:00
memory feat(V2-2): Supabase 인프라 — 스키마 + RLS + Edge Functions 스캐폴딩 2026-04-08 15:21:08 +09:00
packages feat(V2-1d): packages/i18n 추출 — Electron 독립 i18n 엔진 2026-04-08 14:57:27 +09:00
server/supabase feat(V2-2): Supabase 인프라 — 스키마 + RLS + Edge Functions 스캐폴딩 2026-04-08 15:21:08 +09:00
site 랜딩 페이지: D3RO 브랜드 프로모션 사이트 + GitHub Pages 배포 2026-04-05 23:55:13 +09:00
.editorconfig v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
.eslintrc.cjs Phase 1+2 구현: Electron 뼈대 + STT/핫키/오케스트레이터 2026-04-05 02:01:37 +09:00
.gitattributes v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
.gitignore v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
.gitlab-ci.yml Phase 7~8 구현: 테스트 + 빌드 + CI/CD + SoundEffect + AutoLaunch + UI 리디자인 2026-04-05 09:12:56 +09:00
.nvmrc v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
.prettierrc Phase 1+2 구현: Electron 뼈대 + STT/핫키/오케스트레이터 2026-04-05 02:01:37 +09:00
CHANGELOG.md v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
CLAUDE.md feat: Phase 15.5-2 — 오디오 보존 + pyannote 실제 화자 구분 2026-04-08 12:17:37 +09:00
CONTRIBUTING.md v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
LICENSE v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
package-lock.json feat(V2-1d): packages/i18n 추출 — Electron 독립 i18n 엔진 2026-04-08 14:57:27 +09:00
package.json fix(V2-1a): 루트 workspace 설정 3파일 보충 2026-04-08 14:29:40 +09:00
SECURITY.md v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가 2026-04-06 09:29:27 +09:00
tsconfig.base.json feat(V2-1a): Monorepo 구조 전환 — apps/desktop으로 V1 이동 2026-04-08 14:04:41 +09:00
tsconfig.json fix(V2-1a): 루트 workspace 설정 3파일 보충 2026-04-08 14:29:40 +09:00
turbo.json feat(V2-1a): Monorepo 구조 전환 — apps/desktop으로 V1 이동 2026-04-08 14:04:41 +09:00