작업 설명
ADR-0022의 점진적 헥사고널 아키텍처 원칙에 따라 현재 분산된 audit 기록·조회 경계를 단계적으로 정리합니다. nodease/mbased#304은 사용자 관리에 필요한 최소한의 transaction-bound audit recorder와 safe read model만 도입하며, 이 이슈는 그 밖의 기존 audit 경로를 후속 정리합니다.
배경
현재 audit 경로에는 다음 형태가 공존합니다.
- DB mutation과 같은 transaction에 AuditLog row를 추가하는 동기 경로
- DB commit 이후 Celery task로 발행하는 비동기 경로
- ORM listener 기반 data-change audit
- Gateway service/router가 직접 audit payload를 구성하는 경로
- Admin audit 조회와 domain mutation이 서로 다른 sanitization/read model을 사용하는 경로
이 공존 자체는 과도기 예외로 허용되지만, 보안·운영 mutation에서 audit 발행 실패가 성공 응답 뒤 누락으로 이어지거나 같은 mutation이 중복 기록될 수 있습니다.
상세 작업
범위 제외
완료 조건
- 신규 보안 mutation은 audit/outbox 기록 실패 시 성공 처리되지 않습니다.
- 이관된 mutation은 canonical audit을 정확히 한 번 기록합니다.
- audit 상세 응답은 raw secret, raw payload, hidden resource를 노출하지 않습니다.
- 기존 API status/response 계약은 명시적 문서 변경 없이 바뀌지 않습니다.
- 관련 테스트와 공식 문서가 구현과 일치합니다.
2026-07-16 Permission audit 원자성 반영
최신 origin/dev @ 977d37f0의 일부 Team/User Workflow·LLM permission mutation은 DB commit 뒤 best-effort audit를 호출한다. 권한 변경 성공과 필수 감사 증거가 분리되는 실제 보안 결함이므로 우선순위를 High로 올린다.
- nodease/mbased#472를 P1 하위 이슈로 두고 permission mutation과 canonical audit insert를 같은 UoW/transaction으로 이관한다.
- 이 경계의 필수 audit는 실패를 삼키는 비동기 로깅으로 대체하지 않는다.
- Log System의 eventual projection 구조 개선은 nodease/mbased#479로 분리한다.
2026-07-17 취소 및 분해 기록
이 이슈는 단일 PR로 구현하기에 범위가 지나치게 넓어 Canceled 상태를 유지한다. 취소는 audit 개선을 포기한다는 의미가 아니라, 현재 구현 가능한 독립 경계로 분해했다는 의미다.
분해된 구현 경로
PR #490에는 이 umbrella를 자동 종료하는 Linear closing reference가 없으므로 이 기록을 구현 추적의 연결점으로 사용한다. 앞으로의 변경은 위 하위 이슈에서 진행하고 nodease/mbased#306를 다시 열거나 동일 범위의 새 umbrella 구현 PR을 만들지 않는다.
작업 설명
ADR-0022의 점진적 헥사고널 아키텍처 원칙에 따라 현재 분산된 audit 기록·조회 경계를 단계적으로 정리합니다. nodease/mbased#304은 사용자 관리에 필요한 최소한의 transaction-bound audit recorder와 safe read model만 도입하며, 이 이슈는 그 밖의 기존 audit 경로를 후속 정리합니다.
배경
현재 audit 경로에는 다음 형태가 공존합니다.
이 공존 자체는 과도기 예외로 허용되지만, 보안·운영 mutation에서 audit 발행 실패가 성공 응답 뒤 누락으로 이어지거나 같은 mutation이 중복 기록될 수 있습니다.
상세 작업
범위 제외
완료 조건
2026-07-16 Permission audit 원자성 반영
최신
origin/dev @ 977d37f0의 일부 Team/User Workflow·LLM permission mutation은 DB commit 뒤 best-effort audit를 호출한다. 권한 변경 성공과 필수 감사 증거가 분리되는 실제 보안 결함이므로 우선순위를 High로 올린다.2026-07-17 취소 및 분해 기록
이 이슈는 단일 PR로 구현하기에 범위가 지나치게 넓어 Canceled 상태를 유지한다. 취소는 audit 개선을 포기한다는 의미가 아니라, 현재 구현 가능한 독립 경계로 분해했다는 의미다.
분해된 구현 경로
audit_event_outbox, delivery worker와 Workflow correlation 기반 — dev 병합 완료PR #490에는 이 umbrella를 자동 종료하는 Linear closing reference가 없으므로 이 기록을 구현 추적의 연결점으로 사용한다. 앞으로의 변경은 위 하위 이슈에서 진행하고 nodease/mbased#306를 다시 열거나 동일 범위의 새 umbrella 구현 PR을 만들지 않는다.