85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# SDD: 운영 UI
|
|
|
|
## 위치
|
|
|
|
- Milestone: [Milestone 문서](../../../phase/operations-productization/milestones/operations-ui.md)
|
|
- Phase: [PHASE.md](../../../phase/operations-productization/PHASE.md)
|
|
|
|
## 상태
|
|
|
|
[초안]
|
|
|
|
## SDD 잠금
|
|
|
|
- 상태: 잠금
|
|
- 사용자 리뷰: [요청됨](USER_REVIEW.md)
|
|
- 잠금 항목:
|
|
- [D01] 첫 delivery surface와 우선 사용자 역할
|
|
|
|
## 문제 / 비목표
|
|
|
|
- 문제: Control Plane resource와 workflow·quality 상태를 API나 DB로 직접 조작하지 않고 권한·감사와 함께 운영할 제품 surface가 필요하다.
|
|
- 비목표:
|
|
- 별도 운영 상태 저장
|
|
- production 배포·backup·restore
|
|
- identity provider 구현
|
|
|
|
## Source of Truth
|
|
|
|
| 영역 | 기준 | 메모 |
|
|
|------|------|------|
|
|
| Roadmap | [Milestone 문서](../../../phase/operations-productization/milestones/operations-ui.md) | 운영 여정과 화면 범위 |
|
|
| API | [Control Plane Resource API SDD](../../platform-foundation/control-plane-resource-api/SDD.md) | resource lifecycle과 오류 계약 |
|
|
| Security | [Identity·권한과 감사 SDD](../multi-project-security-and-audit/SDD.md) | role, action과 audit |
|
|
| User Decision | [USER_REVIEW.md](USER_REVIEW.md) | delivery surface와 첫 역할 |
|
|
|
|
## State Machine
|
|
|
|
UI는 독립 도메인 상태를 소유하지 않는다. resource·workflow·evaluation·release 상태를 API에서 읽고, mutation은 `idle -> submitting -> succeeded | failed | conflict`의 화면 상태로만 표현한다.
|
|
|
|
## Interface Contract
|
|
|
|
- 입력: project-scoped resource query, workflow command, promotion·rollback command, revision과 audit reason
|
|
- 출력: resource·lineage·quality view model, action result와 stable error presentation
|
|
- 금지:
|
|
- UI 전용 backend 상태로 domain lifecycle을 복제하지 않는다.
|
|
- forbidden action을 단순히 숨기는 것만으로 authorization을 대체하지 않는다.
|
|
- destructive action을 stale revision·reason 없이 제출하지 않는다.
|
|
|
|
## Acceptance Scenarios
|
|
|
|
| ID | Milestone Task | Given | When | Then |
|
|
|----|----------------|-------|------|------|
|
|
| S01 | `resource-ui` | project-scoped resource | 조회·변경 | state·revision·validation 결과가 API와 일치한다 |
|
|
| S02 | `workflow-ui` | running·failed workflow | 조회·retry·cancel | step·artifact lineage와 command 결과가 표시된다 |
|
|
| S03 | `quality-ui` | evaluation과 eligible release | promotion·rollback | 비교 근거·actor reason·결과 audit가 연결된다 |
|
|
| S04 | `accessibility-state` | loading·empty·error·forbidden·conflict | 화면 전환 | 역할과 접근성 기준에 맞는 상태가 일관되게 표현된다 |
|
|
|
|
## Evidence Map
|
|
|
|
| Scenario | Required Evidence | `agent-task` 연결 | 완료 Evidence 기대 |
|
|
|----------|-------------------|------------------|---------------------------|
|
|
| S01 | resource UI contract·component test | `agent-task/m-operations-ui/...` | `resource-ui` evidence |
|
|
| S02 | workflow state·command test | `agent-task/m-operations-ui/...` | `workflow-ui` evidence |
|
|
| S03 | promotion·rollback end-to-end test | `agent-task/m-operations-ui/...` | `quality-ui` audit evidence |
|
|
| S04 | state matrix·accessibility validation | `agent-task/m-operations-ui/...` | `accessibility-state` evidence |
|
|
|
|
## Cross-repo Dependencies
|
|
|
|
- 없음
|
|
|
|
## Drift Check
|
|
|
|
- [x] Milestone 기능 Task와 Acceptance Scenario가 일치한다.
|
|
- [x] Evidence Map이 code-review/complete.log에서 검증 가능하다.
|
|
- [x] UI가 Control Plane API를 단일 source로 사용한다.
|
|
- [ ] 사용자 결정 [D01]이 해결되었다.
|
|
|
|
## 사용자 리뷰 이력
|
|
|
|
- [USER_REVIEW.md](USER_REVIEW.md) 요청 중
|
|
|
|
## 작업 컨텍스트
|
|
|
|
- 표준선: API-first UI, least privilege, stale-write protection, accessible state
|
|
- Milestone은 `[스케치]`이며 agent-ui 생성, [D01]과 승격 조건이 해소될 때까지 구현 잠금 상태를 유지한다.
|