https://www.keeper-direct.ceo/keeper-out/admin → 200
https://www.keeper-direct.ceo/keeper-out/admin/leads/<id> → 200
$ git log origin/main --oneline | head -10
4ab6eb4 Merge staging: keeper-out admin lead detail P1.5+P2 (4 sections) ← ★ NEW
9af91f7 feat(keeper-out/admin): lead detail 메모 추가 폼 (visits POST 재사용)
2c434d1 feat(keeper-out/admin): lead detail P2 — 방문/점주/매장마스터 3섹션
26f3214 feat(keeper-out/admin): GET endpoint에 visit_logs/place/owner embed + other_leads
7d45dae refactor(keeper-out/admin): root layout에서 마케팅 헤더 격리
e8f22ed feat(keeper-out/admin): lead detail view P1 (8섹션)
dc4d9a0 feat(keeper-out/admin): lead GET endpoint with PostgREST embed
dbba9d1 feat(keeper-out): /diagnose pain_points·pain_note 백엔드 처리
d279bb0 Merge staging: /diagnose 외 키퍼 오렌지 환원 (자동님 5/5 정정)
a1da85d revert(design): /diagnose 외 전영역 키퍼 오렌지 톤 환원
| # | 섹션 | 상태 |
|---|---|---|
| 1 | Hero (요약 + status pipeline) | LIVE |
| 2 | 고객 (ceo·phone·naver_place_id) | LIVE |
| 3 | 현재 보안 (5 stat 카드) | LIVE |
| 4 | ★ Pain Points + 영업분기 매핑 | LIVE |
| 5 | 사진 갤러리 | LIVE |
| 6 | 영업자 1·2·3 카드 (read-only) | LIVE |
| 7 | 지급/인센티브 + 합계 | LIVE |
| 8 | 이벤트 타임라인 | LIVE |
| 9 | 방문 로그 (visit_logs) | LIVE |
| 10 | 점주 다른 매장 | LIVE |
| 11 | 매장 마스터 (폐업률·우선순위) | LIVE |
| 13 | 방문 메모 추가 폼 | LIVE |
Production에 라이브됐지만 라우트 가드 / RBAC / IP 화이트리스트 등 접근 통제가 하나도 없습니다. URL만 알면 누구나 접근 가능. 노출되는 데이터:
memory keeper-out 데이터 격리 정책 룰
"영업/원가/인센 비공개 사수"와 직접 충돌.
링크 추적/내부 공유 시 즉시 데이터 유출 가능.
ADMIN_PASSWORD + middleware basic auth. 30분. 영업원에게 비번 1개 공유. 단 비번 유출 시 무용.navigator.geolocation GPS 자동 박기 추가. 이미 visits POST는
photo_urls/gps 받음 — UI만 만들면 됨.
/admin/* + outbound-recorder BFF + Flutter app.
keeper-direct 영역 안에서 P3까지 마무리한 후 다음 단계 결정.
제 강력 추천: RBAC + agent name 묶어서 1 라운드. 둘 다 production 데이터 정합성 직결.
또는 자동님 직접 우선순위 (예: "RBAC + 배정 폼"). RBAC 옵션 A/B/C 중에서도 선택 명시.
/keeper-out/admin/* 가드 zero — production 노출, RBAC 시급