62 lines
3.5 KiB
JSON
62 lines
3.5 KiB
JSON
{
|
|
"$schema": "evidence/v1",
|
|
"id": "public-domain-readonly-browser-2026-08-31",
|
|
"title": "public 도메인 읽기 전용 브라우저 폐루프 실측 (production, 이 PC와 분리 확인)",
|
|
"date": "2026-08-31",
|
|
"operator": "agent (read-only, production DB 미접촉)",
|
|
"scope": "읽기 전용. 사용자 계정 로그인/회기·턴 생성(production DB mutation) 없음. 배포·설정 변경 없음.",
|
|
"targets": {
|
|
"public_web": "https://vignette.chanpaca.net/login",
|
|
"public_api": "https://api-vignette.chanpaca.net"
|
|
},
|
|
"method": "Playwright 1.61.1 chromium (desktop 1440x900 / mobile 390x844) + curl/HTTP 실측",
|
|
"evidence": {
|
|
"playingwright_public_login_spec": {
|
|
"spec": "e2e/auth.spec.ts :: keeps the public login screen on real Google OAuth only",
|
|
"result": "1 passed (9.1s)",
|
|
"verified": [
|
|
"GET api-vignette.chanpaca.net/auth/config -> google_oauth_configured=true, dev_login_enabled=false, allowed_email_domains=[]",
|
|
"vignette.chanpaca.net/login -> Google 로그인 버튼(.lg-obtn) 1개, dev 로그인 요소 0, 'Google OAuth is not configured' 없음",
|
|
"Google 버튼 클릭 -> accounts.google.com 이동, client_id 포함",
|
|
"redirect_uri=https%3A%2F%2Fapi-vignette.chanpaca.net%2Fauth%2Fcallback"
|
|
]
|
|
},
|
|
"production_render_probe": {
|
|
"desktop_mobile_http": [200, 200],
|
|
"has_google_button": true,
|
|
"title": "Vignette · 상담 시뮬레이션",
|
|
"heading": "실제 계정으로 들어가고, 실제 회기만 남깁니다.",
|
|
"has_logo": true,
|
|
"has_error_text_fallback": false,
|
|
"console_page_errors_beyond_expected_auth": [],
|
|
"only_401": {
|
|
"request": "GET https://api-vignette.chanpaca.net/auth/me",
|
|
"reason": "비로그인 방문자 조회로 반환되는 정상 인증 경계 401 (로그인 페이지가 미인증 상태를 판별해 Google 버튼 표시)"
|
|
}
|
|
},
|
|
"public_api_health_x3": [
|
|
"200 status=ok environment=prod db=true engine=true engine_mode=openai"
|
|
],
|
|
"serving_identity": {
|
|
"dns": ["104.21.33.204", "172.67.149.131", "2606:4700:3030::6815:21cc", "2606:4700:3030::ac43:9583"],
|
|
"header_server": "cloudflare",
|
|
"cf_ray": "a33aa06b4c5ee9e1-LAX",
|
|
"conclusion": "이 PC가 아닌 별도 호스트(Cloudflare 뒤)가 서빙. 이 PC에는 cloudflared 프로세스 없음(확인) -> 이 PC와 정식 분리 운영"
|
|
},
|
|
"this_pc_state": {
|
|
"cloudflared_process": "absent",
|
|
"local_api_8001_listener": "absent",
|
|
"scheduledTasks": { "VignettePublicRuntime": "Disabled", "VignettePublicRuntimeWatchdog": "Disabled" },
|
|
"containers": "vignette-dev-db (up, 55432)",
|
|
"note": "개발 워크스테이션 (과거 자택 public 호스트 경로의 잔여 상태). 이 PC 로컬 상태는 public 도메인 장애가 아님."
|
|
}
|
|
},
|
|
"conclusion": {
|
|
"closed_readonly": "public 도메인(production)은 별도 호스트에서 정상 서빙 중. 실브라우저 로그인 화면·Google OAuth redirect_uri·개발 로그인 차단이 읽기 전용으로 실증됨. 이 PC와 정식 분리 운영이 실측으로 확인됨.",
|
|
"open_gate": "실제 Google 계정 로그인 -> 인증 callback -> 관리자/P20 실제 회기·턴 생성(production DB mutation)은 사용자(소유자) 승인과 계정 세션(storageState)이 필요해 여전히 열린 게이트. production DB mutation 없이는 read-only로는 증명 불가."
|
|
},
|
|
"screen_captures": [
|
|
"apps/web/node_modules/.tmp/public-login-desktop.png",
|
|
"apps/web/node_modules/.tmp/public-login-mobile.png"
|
|
]
|
|
}
|