Skip to content

프로비저닝 완료 후 테넌트 URL 테스트 기획서

목적: www 데모 위저드 7단계에서 안내되는 테넌트 URL(https://{subdomain}.pregoi.com)을 사용자·운영자가 검증할 수 있는 방법을 요건과 시나리오로 정리한다.
코드 생성 없음 — 기획·요건·테스트 관점만 정의.

참조: tenant-onboarding-demo-www-plan.md §13(위저드 7단계), tenant-onboarding-flow.md, provision-tenant-pipeline.md.


1. 배경·검증 대상

항목내용
테넌트 URL프로비저닝 완료 시 Control Plane 콜백의 origin_url = https://{subdomain_slug}.pregoi.com (또는 subdomain_name).
노출 위치www 위저드 7단계: “테넌트가 준비되었습니다” 후 「테넌트 열기」 버튼(#origin-url-link)에 href=origin_url로 설정됨.
검증 목표해당 URL이 DNS·TLS·라우팅·Frappe 사이트까지 정상 동작하는지 확인.

2. 테스트 관점(검증 항목)

테넌트 URL을 “테스트한다”는 것을 아래 관점으로 나눈다.

관점검증 내용비고
DNS{subdomain}.pregoi.com이 올바른 CNAME/canonical로 해석되는지.dig/nslookup 또는 공개 DNS 검사.
TLSHTTPS 인증서가 유효한지, 만료·호스트명 불일치 없는지.브라우저·curl -v·openssl.
도달성GET 요청 시 2xx 또는 로그인 리다이렉트 등 “사이트 응답”이 오는지.5xx·타임아웃이 아니면 통과로 간주 가능.
Frappe 사이트해당 호스트로 Frappe 로그인/대시보드 또는 API가 동작하는지.실제 사용자 시나리오.
라우팅·KVZuplo/Worker가 hostname → origin 매핑을 올바르게 하는지.TENANT_ORIGINS KV·프록시 설정 반영 여부.

3. 테스트 수행 주체·시나리오

주체시나리오상세
최종 사용자www 7단계에서 링크 클릭 후 브라우저로 접속.「테넌트 열기」 클릭 → 새 탭/같은 탭에서 URL 이동 → 로그인 화면 또는 대시보드 확인. 수동·체감 테스트.
운영자·QAURL을 복사해 브라우저·curl·스크립트로 반복 검증.Runbook에 “프로비저닝 완료 후 확인” 절차로 문서화.
자동화(선택)CI/스크립트에서 job_id → GET /v1/jobs/:id로 origin_url 획득 후 HTTP GET·헬스체크.프로비저닝 파이프라인 후단 또는 별도 스케줄 job.

4. www 측 테스트 진입점(요건)

현행 www는 7단계에서 「테넌트 열기」 한 개 링크만 제공한다. 아래는 “URL 테스트”를 쉽게 하기 위한 기획 요건이다(구현 범위는 별도 결정).

요건설명우선순위
링크 클릭으로 테스트「테넌트 열기」를 새 탭에서 열기(target="_blank")로 하면, www 페이지는 유지한 채 테넌트 사이트만 확인 가능.높음(간단 변경)
URL 복사7단계에 “URL 복사” 버튼 또는 주소 텍스트 표시. 운영자·문서화·다른 도구에서 재사용 가능.중간
테스트 결과 안내“연결이 안 되면 DNS 전파에 수 분 걸릴 수 있습니다” 등 짧은 안내 문구.낮음
빠른 재검사7단계에 “다시 확인” 버튼 → 동일 origin_url로 재요청(HEAD/GET) 후 성공/실패 표시. (구현 시 CORS·프록시 고려.)선택
관리자 전용 “URL 검사” 페이지job_id 또는 tenant_id 입력 시 Control Plane·GET /v1/jobs/:id로 origin_url 조회 후, 서버/프록시에서 해당 URL HEAD 요청해 결과 반환. Runbook·수동 검증용.선택

5. 수동 테스트 절차(Runbook용 요약)

운영자·QA가 “생성된 URL을 테스트한다”고 할 때 따를 수 있는 순서.

  1. URL 확보

    • www 7단계에서 「테넌트 열기」 우클릭 → 링크 주소 복사, 또는
    • Control Plane: GET /v1/jobs/:job_id 응답의 origin_url 사용 (또는 D1/내부 API로 tenant_id → origin_url 조회).
  2. DNS 확인 (선택)

    • dig {subdomain}.pregoi.com 또는 nslookup {subdomain}.pregoi.com
    • CNAME이 canonical 또는 오리진으로 향하는지 확인.
  3. HTTPS 접속

    • 브라우저 주소창에 URL 입력 후 접속.
    • 기대: 로그인 페이지 또는 Frappe 대시보드(또는 302 로그인 리다이렉트).
    • 실패: 5xx, 타임아웃, 인증서 오류 → tenant-onboarding-flow §4 장애 확인 순서 참고.
  4. curl로 도달성만 확인 (선택)

    • curl -sI "https://{subdomain}.pregoi.com"
    • 2xx 또는 302면 “도달 가능”으로 간주.

6. 자동화·CI(선택 요건)

항목내용
프로비저닝 후 스모크workflow_dispatch → Ansible·콜백 완료 후, 동일 워크플로 또는 별도 job에서 origin_url로 GET/HEAD 요청. 실패 시 알림·실패 표시.
주기적 헬스체크이미 운영 중인 테넌트 목록(tenant_runtime·D1)의 origin_url을 주기적으로 GET. 5xx 비율·응답 시간 수집. (기존 모니터링·§16 연동 검토.)
데이터 소스origin_url은 GET /v1/jobs/:id(완료 후) 또는 내부 API·D1 tenant_runtime에서 조회.

7. 장애 시 확인 순서와의 연계

URL 테스트 실패 시 tenant-onboarding-flow.md §4와 연결:

  • 링크 클릭 시 5xx/타임아웃 → DNS 전파 지연, Cloudflare DNS·TENANT_ORIGINS KV 미반영, Tunnel/오리진 다운 등 순으로 확인.
  • 인증서 오류 → 해당 도메인에 대한 TLS 설정·프록시 확인.
  • 404/잘못된 페이지 → Frappe site_name·Host 헤더·Zuplo 라우팅 확인.

8. 구현 체크리스트(추후 적용 시)

  • www 7단계: 「테넌트 열기」 링크에 target="_blank" 적용 (새 탭에서 테스트).
  • www 7단계: URL 텍스트 표시 또는 “URL 복사” 버튼 (선택).
  • www 7단계 또는 Runbook: “연결이 안 되면 수 분 기다려 보세요” 등 안내 문구 (선택).
  • Runbook: “프로비저닝 완료 후 테넌트 URL 확인” 절차에 §5 수동 절차 반영 (선택).
  • 프로비저닝 파이프라인 후 origin_url 스모크 테스트 단계 (선택).
  • 관리자용 “URL 검사” 페이지 또는 API (선택).

9. 참조 문서

문서용도
tenant-onboarding-demo-www-plan.md위저드 7단계·origin_url 안내.
tenant-onboarding-flow.md장애 시 확인 순서.
provision-tenant-pipeline.md콜백·origin_url 전달.
Help