# SDD User Review

## 상태

해결됨

## 검토 대상

- SDD: `agent-roadmap/sdd/control-plane-product-surface/control-plane-security-audit-surface/SDD.md`
- Milestone: `agent-roadmap/phase/control-plane-product-surface/milestones/control-plane-security-audit-surface.md`

## 사용자 결정 항목

### [D01] 최소 인증/권한 범위

- 상태: 해결됨
- 결정 필요: 이 Phase에서 Control Plane write action에 적용할 최소 인증 모델과 권한 역할을 어디까지 포함할지 결정한다.
- 추천안: 이번 Milestone은 production identity provider를 붙이지 않고, operator/admin 단일 역할과 `OtoConsoleConfig.authTokenReference` 기반의 표시 가능한 token reference만 기준으로 설계한다. 실제 token 원문 저장·회전·조직/테넌트 권한은 후속 Milestone으로 분리한다.
- 대안: viewer/operator/admin 역할을 지금부터 분리하거나, production identity provider 연동을 현재 Phase 범위에 포함한다.
- 영향: 권한 실패 상태, UI disabled/error 상태, Core handler hook 위치, 테스트 범위, 후속 API/schema 필요 여부가 달라진다.
- 적용 위치:
  - SDD: `Source of Truth`, `State Machine`, `Interface Contract`, `Acceptance Scenarios`
  - Milestone: `auth-scope`, `구현 잠금`

### [D02] 감사 로그 저장 책임

- 상태: 해결됨
- 결정 필요: 감사 로그의 source of truth를 Core in-memory/event surface로 둘지, durable persistence를 현재 Milestone 범위에 포함할지 결정한다.
- 추천안: 이번 Milestone은 Core write action 결과에서 audit event 후보를 만들고 in-memory/event surface 또는 테스트 가능한 adapter 경계까지만 고정한다. durable persistence는 후속 Milestone으로 분리한다.
- 대안: file/DB 기반 durable audit storage와 retention 정책을 현재 Milestone 구현 범위로 포함한다.
- 영향: DB/schema 또는 storage contract 필요 여부, retention/삭제 정책, 완료 evidence, 운영 비용과 범위가 달라진다.
- 적용 위치:
  - SDD: `Problem / Non-goals`, `Source of Truth`, `State Machine`, `Interface Contract`, `Evidence Map`
  - Milestone: `audit-scope`, `범위 제외`, `구현 잠금`

### [D03] 감사 이벤트 노출과 마스킹 기준

- 상태: 해결됨
- 결정 필요: UI에 노출할 감사 이벤트 필드와 민감 정보 마스킹 기준을 결정한다.
- 추천안: UI에는 action, actor reference, target id, outcome, timestamp, optional reason만 노출하고 token, credential, private URL credential, raw log line, full artifact path는 노출하지 않는다. 에러 메시지는 기존 Core response를 사용하되 credential-like substring은 마스킹 대상으로 둔다.
- 대안: artifact path나 log summary 일부를 운영 편의 필드로 노출하거나, 감사 UI를 이번 Milestone에서 만들지 않고 plan/evidence만 남긴다.
- 영향: UI 표시 범위, 테스트 fixture, 문자열 검색 검증, 보안 리뷰 기준이 달라진다.
- 적용 위치:
  - SDD: `Interface Contract`, `Acceptance Scenarios`, `Evidence Map`
  - Milestone: `audit-scope`, `security-sdd`, `구현 잠금`

## 승인 항목

- [x] 위 결정 항목을 승인했다.
- [x] SDD 잠금 해제를 승인했다.

## 답변 기록

- D01: 추천안 승인. 이번 Milestone은 production identity provider를 붙이지 않고, operator/admin 단일 역할과 `OtoConsoleConfig.authTokenReference` 기반의 표시 가능한 token reference만 기준으로 설계한다.
- D02: 추천안 승인. 감사 로그는 원격 빌드 로그 원문이나 production 로그인 히스토리가 아니라, Control Plane write action의 actor/action/target/outcome/timestamp/optional reason metadata로 한정하고 Core in-memory/event surface 또는 테스트 가능한 adapter 경계까지만 이번 Milestone 범위로 둔다.
- D03: 추천안 승인. 감사 UI는 운영 판단에 필요한 action, actor reference, target id, outcome, timestamp, optional reason만 보여주고, 로그/아티팩트/토큰류 원문과 민감 error payload는 복제 노출하지 않는다.

## 해결 조건

- 모든 사용자 결정 항목의 답변이 SDD에 반영되어 있다.
- `USER_REVIEW.md`가 `user_review_N.log`로 이동되어 있다.
- 남은 잠금 항목이 없으면 SDD 상태가 `[승인됨]`이고 `SDD 잠금` 상태가 `해제`다.
