다크모드
Portal·채널 Frontend 계약
제품 경계
Console, Staff Portal, Customer Portal, Community, 브랜드 사이트는 독립된 정보 구조와 UI를 갖는다. Console 뷰를 iframe으로 재사용하지 않는다.
표시 계약
Frontend는 backend이 반환한 검증 상태만 표시한다.
| 상태 | 표시 | 허용되는 의미 |
|---|---|---|
available | 사용 중 | 도메인, Identity, API, 권한 검증 완료 |
prototype | Prototype | UX 검증용이며 실제 연동 미완료 |
ready | 연결 준비 | 정보 등록 후 검증·활성화 전 |
planned | 계획 | 제품 계획만 존재 |
degraded | 일부 장애 | 운영 채널의 일부 헬스체크 실패 |
suspended | 중지 | 관리자·계약·보안 사유로 사용 중지 |
available은 현재 사이트가 열린다는 이유만으로 표시하면 안 된다.
화면 구조
- 요약: 전체·사용 중·Prototype·준비·계획 수
- 검색: 채널명, 도메인, 사용자, 목적
- 상세: 인증, 권한 범위, 데이터 계약, 다음 작업
- 상세: 데이터 책임자, source of truth, 허용 노출, 노출 금지
- 공통 계약: Identity, 권한, API·이벤트, 동의·개인정보, 감사 이력
- 전환 Prototype: 콘텐츠·계산기·템플릿 → Leyve Free → 사업자 인증 → Office → 데이터 → 팀원 → 상품 → 90일 혜택
- 브랜드 문의 seam: 선택 동의·연락처가 모두 있을 때만 CRM 전달 후보 표시
390px 뷰포트에서 카드는 1단으로 적층하고 검색과 필터는 키보드로 조작 가능해야 한다.
통합 위치
- 권장 라우트:
/headquarters/channels - 권장 메뉴:
Company 관리 → Portal·채널 관리 - 페이지:
src/views/headquarters/channels/IndexView.vue - 카탈로그:
src/composables/portalChannels.js - 퍼널 정책:
src/composables/communityGrowthFunnel.js
Community 퍼널은 기존 /headquarters/channels 페이지에 포함한다. 현재는 채널 계약과 전환 정책을 함께 검증하는 목적이므로 신규 라우트가 필요하지 않다. 콘텐츠 운영·성과 분석이 독립 제품 화면으로 커질 때 /headquarters/channels/community 분리를 검토한다.
Prototype 상태 규칙
- 체크와 문의 입력은 component local state만 사용하고 새로고침 후 보존하지 않는다.
- 실제 회원·Company·Office·팀원·구독을 생성한 것처럼 성공 메시지를 표시하지 않는다.
- 90일 혜택은 화면에서
신청 가능까지만 표시하고 발급 완료로 표시하지 않는다. - 문의 payload preview는 이름·연락처·문의 유형·목적만 허용한다.
- Community 공개 활동과 ERP 원본을 같은 client store에 합치지 않는다.
남은 운영 구현
- backend channel registry 연결
- Community CMS·회원·혜택 발급 API와 별도 저장소 연결
- CRM consent receipt와 lead-candidate API 연결
- 도메인 소유 검증과 TLS 헬스체크
- OIDC/OAuth client와 redirect URI 관리
- webhook 서명·재시도·dead-letter 현황
- 역할·Office 범위 미리보기
- 상태 변경 승인과 감사 로그