감사 로그에 블랙리스트 재설정(만료일 변경)이 안 남는다
정성윤이 09-22 수동 QA(
w5-manual-qa-full-stackQ-67) 결과로 만든 티켓이다. 담당은 «제안»이다 — 서버에 기록이 없는지, 화면이 안 그리는지 먼저 가른다.
무엇을
09-22 운영에서 블랙리스트 등록 하나를 세 번 재설정했다(18:15:55 · 18:16:31 · 18:30:21 — 만료 2027-03-21 → 2027-01-20 → 2027-01-20 → 2026-11-21). 그 항목의 「변경 이력 보기」에는 세 줄이 다 있는데, 관리자 「감사 로그」 탭에는 승인 2 · 반려 1 · 해제 2 만 있고 재설정이 0 건이다.
왜
만료일을 줄이거나 늘리는 것도 관리자 권한 행위다. 감사 로그가 「누가 무엇을 바꿨나」의 한 곳이어야 하는데 재설정만 항목 안에 숨는다.
완료 조건
- 서버: 감사 로그 API 가 재설정을 돌려주는지 확인 — 없으면 추가(이전·새 만료일 · 사유 · 처리자)
- 화면: 감사 로그에 「재설정」 줄
- 운영에서 재설정 1회 → 감사 로그에 보임
근거: 진행 기록 2026-09-22-18-seongyun Q-67.
2026-09-23 — 서버 쪽을 넘겨받아 고쳤다 (정성윤)
todo 라 아무도 손대지 않은 티켓이라 가져왔다(CLAUDE.md §4 — 진행 기록이 없는 티켓은 옮긴다). 담당은 정성윤으로 바꾼다.
- 원인: 만료 변경은
blacklist_entry_expiry_change에 제대로 쌓이고 있었다. 빠진 것은 읽는 문이다 — 등록 1건짜리(GET /hub/blacklist-entries/{id}/expiry-changes)만 있어서, 감사 로그 화면이 그걸 쓰려면 등록마다 한 번씩 물어야 했다(N+1). 그래서 화면이 아예 안 그렸다. - 고친 것:
GET /hub/blacklist-expiry-changes?limit=50— 등록을 가리지 않고 최근 순, 관리자 로그인 필수. 응답은 등록별 이력과 같은 모양(change_id·entry_id·previous_expires_at·new_expires_at·changed_by·reason·changed_at, 값은 전부 문자열)에changes배열 하나다. 자르는 일은 SQLLIMIT이 한다 — 인터랙터는 판정하지 않는다. - 포트
BlacklistPort.list_recent_expiry_changes(limit)추가 · 슬라이스 단면(입력 포트·인터랙터·프로바이더·라우터·스키마) 한 벌 · 테스트 3종(라우터 401·정렬·limit422 / 인터랙터 / 실제 DB 통합).server1,305건 초록 · 계약 5종 KEPT · 태그0.1.39.
남은 것 둘
- 화면(조서희) —
AuditLogTab.tsx는 지금requests·entries만 합쳐서 그린다. 위 문을 한 번 불러 「재설정」 줄을 같이 정렬해 넣으면 된다(action: "재설정"· 이전 → 새 만료일 · 사유 ·changed_by). - 운영 확인(정성윤) — 배포 뒤 재설정 1회 → 감사 로그에 보이는지. QA Q-67 을 그 번호만 다시 누른다.
2026-09-30 — 운영 확인 · done (정성윤)
수동 QA 2회차(_logs/2026-09-30-01-seongyun, 운영 server 0.1.43 · call-mediator 0.2.11 · call index-sR-v0E8Y) Q-67 ✅ — 감사 로그에 해제·재설정(만료 2027.3.21 → 2026.12.29 · 변경 사유)·승인·반려가 시간순으로 보였다(09-28 재시험 통과, 09-30 재확인).
서버(0.1.39 GET /hub/blacklist-expiry-changes)·화면(w6-audit-log-reset-ui, 조서희) 둘 다 운영에 있다. 완료 조건 셋 다 찼다.