Skip to content

Portal·채널 Frontend 계약

제품 경계

Console, Staff Portal, Customer Portal, Community, 브랜드 사이트는 독립된 정보 구조와 UI를 갖는다. Console 뷰를 iframe으로 재사용하지 않는다.

표시 계약

Frontend는 backend이 반환한 검증 상태만 표시한다.

상태표시허용되는 의미
available사용 중도메인, Identity, API, 권한 검증 완료
prototypePrototypeUX 검증용이며 실제 연동 미완료
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 범위 미리보기
  • 상태 변경 승인과 감사 로그