Flower Authz · Platform Matrix
Flower는 빌드(테마) × 플랫폼 × 조직 역할에 따라 메뉴·탭·필터 노출이 갈린다. 기능 TC와 별도로 노출/차단 매트릭스를 실행한다.
관련: bug-fix-verify 사이드이펙트 #3 · flower-api-leak
입력 패턴
권한 매트릭스 / 플랫폼 미노출 확인
기능: Ad requests | Device 타겟팅 | …
기대: test-plan의 In/Out (예: FLOWER만, SKB·UPLUS 미노출)
계정: 역할별 (없으면 요청 — 추측 로그인 금지)
축 (최소)
| 축 | 예시 (QA 탐색) |
|---|---|
| 서버/빌드 | flower-qa-campaign-web.anypoint.tv (FLOWER_QA) |
| 플랫폼 스위치 | 헤더 Platform: … (data-testid=dropdown-toggle — 필터용 토글과 구분: Platform: 접두 버튼) |
| 플랫폼 예 | SKB, QA, 1QA_Platform, REDS, TI, ADBUDDY, UPLUS(있으면) … |
| 역할 | Platform / Admin(access.select_org) / CP / Agency 등 — 설계에 있는 것만 |
| 표면 | 사이드 메뉴, 화면 내 탭, 필터 옵션, 직접 URL |
Workflow
기대 매트릭스 표 작성 (설계·test-plan만)
- 행: 역할 또는 플랫폼
- 열: 메뉴 / 탭 / 필터 / URL
- 셀: 노출 | 숨김 | 진입차단 | 확인 필요
계정·플랫폼별로 로그인/스위치
- Admin은 플랫폼 드롭다운으로 전환 후 URL
platformId기록 - 비밀번호 변경 안내 모달(
Password change advised)이 뜨면 OK로 닫고 진행
- Admin은 플랫폼 드롭다운으로 전환 후 URL
메뉴 스캔 (전체 트리)
- 정본 35 leaf: menu-map.md
- 섹션: Dashboard · Direct IO(8) · Programmatic(6) · Analytics(7) · Settings(6) · Resources(4) · System(3)
- 티켓 범위만 볼 때도 같은 섹션의 형제 메뉴는 노출 여부만이라도 스팟
- 먼저 flower-menu-smoke로 전수 로드를 돌린 뒤, Fail/의심만 이 매트릭스로 깊게
화면 내 가드
- Ad requests 탭 예: Overview / Time series / Placement / Geography / Custom… — Device 탭 HOLD면 없어야 함
- Inventory 탭 예: Overview / Time series / Contents / Area (Device는 제공 플랫폼만)
- 셋탑(SKB 등)에서 Device UI·탭·필터 누수 여부
URL 우회
- 숨김 대상 URL을 직접 진입 (예:
/ad-requests,/campaigns/view/{id}) - 기대: 리다이렉트 / 403 / empty 가드 / 메뉴만 숨기고 화면은 열리는지 → 설계 기준으로 판정
- “메뉴만 없고 화면은 됨”이면 Fail 후보 + flower-api-leak 병행
- 숨김 대상 URL을 직접 진입 (예:
결과 표 + 스크린샷
- 셀마다 Pass/Fail/Blocked
- Fail는 bug-report (중분류=화면명)
매트릭스 템플릿
| 역할/플랫폼 | 메뉴 Ad Request | Device 탭/필터 | URL /ad-requests | 비고 |
|-------------|-----------------|----------------|------------------|------|
| Admin × 1QA_Platform | | | | |
| Admin × SKB | | | | |
| CP | | | | |
탐색에서 본 함정
- Admin 계정은 플랫폼을 SKB로 둔 채
/ad-requests에 들어갈 수 있음 → “메뉴 존재”와 “해당 플랫폼 데이터/허용”을 섞지 말 것 Platform: QA는 placement 없음 → empty ≠ 권한 차단- Ad Request 데이터 시드는 1QA_Platform + 2026-07-01~07-21 (그 외 empty는 데이터 이슈)
- 드롭다운
data-testid=dropdown-toggle가 플랫폼·CP·Placement에 중복 → role/name으로 Platform만 집기
하지 말 것
- 설계에 없는 역할/플랫폼을 임의로 Fail 처리
- 비밀번호를 스킬·티켓·레포에 저장
- 단일 계정 한 바퀴만 하고 “권한 검증 완료” 선언