검증 결과

Server MVP Blueprint

ExportPass 서버 MVP 전환 설계

localStorage 실험을 고객별 서버 저장 제품으로 바꾸기 위한 데이터 모델, API 경계, 보안 기준, 구현 순서를 한 장으로 고정합니다.

이번 MVP

4개

다음 단계

2개

모델

7개

API

7개

Build Gate

파일럿 1곳이 나오면 바로 서버 MVP 착수

초기 매출을 만들기 위한 범위는 고객 계정, 제품 데이터룸, 증빙 파일, 공개 QR 페이지다. 결제 자동화와 AI 판정은 매출 신호 뒤로 미룬다.

Operating API

읽기 전용 route 확인

실제 `/api/exportpass` wrapper를 호출합니다. mock role header 없이 status와 공개 share 응답만 확인합니다.

mode

-

status

-

resource

-

최근 운영 route 호출

0 logs

아직 호출 기록이 없습니다.

Mock API Console

서버 API 흐름 체험

DB를 건드리지 않고 `/api/exportpass/mock` Route Handler를 호출합니다. 역할을 바꿔 권한 실패와 성공 흐름을 바로 확인할 수 있습니다.

Mock products

0 items

먼저 제품 목록을 조회하세요.

Selected requirement

선택된 requirement가 없습니다.

최근 호출

0 logs

아직 API 호출 기록이 없습니다.

MVP 범위 고정

팔 수 있는 최소 제품에 필요한 것만 이번 범위에 넣었습니다.

상태영역항목이유
이번 MVP고객 계정조직 워크스페이스, 사용자 권한, 고객사별 제품 분리유료 Pilot 5를 받으려면 고객별 데이터 격리가 먼저 필요
이번 MVP제품 데이터룸제품, 규정, 요구항목, 증빙 상태 저장현재 localStorage 작업 화면을 서버 저장 구조로 전환하는 핵심
이번 MVP증빙 파일파일 메타데이터, 업로드 서명 URL, 공개/비공개 구분바이어 제출 패키지에서 가장 민감한 영역
이번 MVP공개 QR 페이지share slug, 공개 필드만 노출, 만료/비활성화DPP/Battery Passport 구매자 확인 화면의 첫 매출 명분
다음 단계결제Stripe/정기구독 자동 결제초기 Pilot 5는 수기 세금계산서나 별도 계약으로 충분
다음 단계AI 자동 판정문서 OCR, 규정 적합성 자동 판정오판 위험이 있어 초기에는 체크리스트와 누락 진단 중심
제외법률 보증규제 적합 최종 보증 문구초기 제품은 법률 자문이 아니라 제출자료 정리 도구로 포지셔닝

Step 1

Phase 0. Pilot 5 계약 전

1일

고객 1곳 확정
제품 3~5개 목록
공개/비공개 필드 기준 합의
수기 업로드 자료 샘플 수령

Step 2

Phase 1. 서버 저장 골격

3~4일

워크스페이스/제품/요구항목 DB
auth() 기반 소유권 검사
제품 목록/상세/수정 API
감사 로그 최소 기록

Step 3

Phase 2. 증빙과 제출 패키지

3~5일

파일 업로드 서명 URL
증빙 메타데이터
바이어 제출 Markdown/PDF 초안
공개 QR slug

Step 4

Phase 3. 파일럿 운영

1~2주

고객 제품 5개 입력
누락 진단 리포트
바이어 공개 페이지 공유
유료 전환 판단

데이터 모델 초안

실제 Prisma 마이그레이션은 만들지 않았고, 적용 전 리뷰할 설계안입니다.

ExportPassWorkspace

고객 조직 단위 데이터 격리

idnameownerUserIdplancreatedAt

ownerUserId 또는 멤버십으로 접근

ExportPassMember

워크스페이스 멤버와 역할

workspaceIduserIdrole

workspace admin만 초대/삭제

ExportPassProduct

수출 제품 데이터룸의 중심 엔티티

workspaceIdnamemodelNohsCodeexportMarketstatus

workspace 단위

ExportPassRequirement

CBAM/DPP/Battery Passport 요구항목과 상태

productIdregulationlabelstatusownerTeamnote

product의 workspace 상속

ExportPassEvidence

증빙 파일 메타데이터와 공개 범위

requirementIdfileNamestorageKeyvisibilitychecksumuploadedBy

private 기본값, public 명시 시에만 공개

ExportPassPublicShare

QR/바이어 공개 페이지

productIdslugisActiveexpiresAtpublicFields

workspace admin만 발급/폐기

ExportPassAuditEvent

민감 데이터 변경 이력

workspaceIdactorUserIdactiontargetTypetargetIdcreatedAt

admin 조회

API 경계

모든 변경 요청은 auth(), 소유권 확인, Zod body 검증을 통과해야 합니다.

GET

/api/exportpass/workspaces/current

현재 사용자의 워크스페이스와 권한 조회

auth() + membership

POST

/api/exportpass/products

제품 데이터룸 생성

auth() + workspace member + Zod body

exportPassProductCreateSchema

PATCH

/api/exportpass/products/[id]

제품 기본 정보와 상태 수정

auth() + product ownership + Zod body

exportPassProductPatchSchema

POST

/api/exportpass/products/[id]/requirements

규정 요구항목 추가

auth() + product ownership + Zod body

exportPassRequirementCreateSchema

POST

/api/exportpass/evidence/sign

증빙 파일 업로드용 서명 URL 발급

auth() + requirement ownership + MIME/size validation

exportPassEvidenceSignRequestSchema

POST

/api/exportpass/public-shares

QR 공개 페이지 slug 발급

auth() + workspace admin + public field allowlist

exportPassPublicShareCreateSchema

GET

/exportpass/share/[slug]

바이어용 공개 제품 페이지

active share + public fields only