CAKE20

AI Web PaaS

Runtime·Provider·Worker

기존 사이트 API를 유지하면서 실행 위치와 외부 연동 책임을 분리하는 구조입니다.

책임 경계

  • Runtime: 사이트 전역 API, 타입, 요청 처리, 인증, storage와 가벼운 client
  • Provider: Core의 AI, Codex, MCP 브라우저, SMTP, Gmail, Telegram과 결제 실행
  • Worker: Prisma DB, DB 용량, ZIP과 XLSX parsing·serialization
  • Core: 외부 인증, 브라우저 에디터와 Provider·Worker 생명주기 관리
  • Core와 Hub: 사이트 소유권, Release, 배포와 운영 상태의 원본

날짜, 검증, HTTP helper와 요청 경로의 세션 검증처럼 가벼운 기능은 Runtime에 남깁니다.

실행 모드

  • CLI auto·local: 자동 실행하거나 재사용하는 로컬 IPC Worker와 프로젝트 PGlite
  • CLI server: Cake20 로그인 → Core 인증 → 서버 내부 Worker
  • 서버 사이트: Runtime → Core가 시작한 로컬 IPC Worker
  • Core AI·브라우저·외부 연동: Core → 로컬 IPC Provider → 승인된 실행
  • 구형 서버: Worker API가 없으면 기존 DB tunnel 또는 direct Runtime으로 대체

사이트 코드 호환성

사이트는 계속 db.user.findMany(), db.$transaction([...])와 zip.pack() 같은 Runtime API를 사용합니다. 빌드와 실행 환경이 Worker 연결을 주입하므로 일반적인 사이트 소스는 수정하지 않습니다.

  • 생성된 Prisma 호환 타입과 delegate method 이름을 유지합니다.
  • Date, BigInt, Bytes, Decimal과 JSON null 값을 전용 codec으로 보존합니다.
  • 표준 CRUD, aggregate, groupBy와 배열형 transaction을 지원합니다.
  • Interactive transaction과 raw query는 자동 변환하지 않고 계획된 마이그레이션으로 처리합니다.
  • 공개 행 데이터 API와 storage 경로는 Runtime에 남고 XLSX 처리는 Worker가 담당합니다.
  • 사용자 job·task 실행 분리는 호환성 설계 후 단계적으로 적용합니다.

접근과 인증

  • Provider와 Worker는 공개 도메인이나 서비스 포트를 만들지 않고 로컬 IPC만 사용합니다.
  • 사용자는 Provider를 선택하거나 주소·프로세스를 직접 설정하지 않습니다.
  • Core만 사이트 Release와 내부 DB 주소를 Worker에 등록할 수 있습니다.
  • 외부 CLI에는 DB 주소나 Worker 관리 Secret 대신 짧은 수명의 Core 토큰을 제공합니다.
  • Core는 토큰, 사이트와 scope를 검증하고 허용된 요청만 내부 Worker로 전달합니다.