oto/agent-ui/definition/views/index.md

132 lines
9.1 KiB
Markdown

---
ui_doc_type: views-index
views:
- overview
- runners
- pipelines
- executions
- artifacts
- agent
- settings
---
# View Definitions
## View Tree
| View ID | Status | Evidence | Description |
|---------|--------|----------|-------------|
| `overview` | 계획 | `OtoConsoleOverview` + Jenkins IA gate | Control Plane endpoint, connection, authentication reference overview. 필수: 통합 header/breadcrumb/action(`Dashboard` root)이 shell/header에 존재한다. Jenkins IA gate 미충족, 후속 구현 대기. |
| `runners` | 구현됨 | `OtoRunnersSurface` + Jenkins IA executions/ops gate | runner registry state and self-update action surface. Nodes/Agents 목록 구조와 node 상태/현재 작업/연결 메시지 primitive가 widget 테스트로 확인됨. |
| `pipelines` | 구현됨 | `OtoJobsSurface` + Jenkins IA shell/jobs gate | pipeline/job queue list and create job action surface. Dashboard job table density, `New Item` 생성 entry, job context `Status`/`Build History`/`Stages` primitive가 widget 테스트로 확인됨. |
| `executions` | 구현됨 | `OtoExecutionsSurface` + Jenkins IA executions/ops gate | execution list, detail expansion, write actions, log/artifact preview. `Pipeline Overview`/`Stage Graph`, `Console Output`, `Artifacts`, `Build History` run context primitive가 widget 테스트로 확인됨. |
| `artifacts` | 구현됨 | `OtoArtifactsSurface` + Jenkins reference baseline | artifact event list. Jenkins artifact browser-style list 반영 |
| `agent` | 구현됨 | `OtoAgentPanel` | embeddable agent-shell panel for OTO capabilities |
| `settings` | 구현됨 | `OtoConsoleShell` Manage OTO fallback + Jenkins IA executions/ops gate | runtime endpoint and browser policy details. `Manage OTO` 관리 category grouping과 `System`/`Security`/`Browser policy` primitive가 widget 테스트로 확인됨. |
## Required Visible Primitives
후속 구현(02/03)이 widget 테스트로 확인해야 할 view별 required visible primitive와 메뉴 매핑 target이다. label은 후속 test assertion의 고정 기준 문자열이다.
| View | Required visible primitives | Global menu target | Context menu target |
|------|-----------------------------|--------------------|---------------------|
| `overview` | 통합 header, breadcrumb, `Dashboard` root | `Dashboard` | 없음 |
| `pipelines` | `New Item`, job table row, `Status` | `New Item`, `Jobs` | Job: `Status`, `Build History`, `Stages` |
| `executions` | `Build History`, `Pipeline Overview`, `Stage Graph`, `Console Output` | `Build History` | Run: `Pipeline Overview`, `Console Output`, `Artifacts`, `Build History` |
| `runners` | `Nodes` 목록, node status | `Nodes` | 없음 |
| `artifacts` | `Artifacts` 목록 row | `Artifacts` | Run: `Artifacts` |
| `settings` | `Manage OTO` category grouping | `Manage OTO` | 없음 |
## Navigation
- `overview` -> `runners`: rail navigation
- `overview` -> `pipelines`: rail navigation
- `overview` -> `executions`: rail navigation
- `overview` -> `artifacts`: rail navigation
- `overview` -> `agent`: rail navigation
- `overview` -> `settings`: rail navigation
- `pipelines` -> `executions`: job execution id tap
- `executions` -> `artifacts`: "View Artifacts Tab" action
## Jenkins Left Menu Reference
Jenkins의 좌측 메뉴는 하나의 고정 global sidebar가 아니라 화면 컨텍스트별 task/action list다. OTO의 현재 60px rail은 Jenkins Dashboard 수준의 주요 destination 일부만 축약한 것이며, job/run 페이지의 세부 좌측 task menu는 아직 별도 contextual menu로 구현되어 있지 않다.
사용자 결정(2026-07-03): OTO Control Plane은 Jenkins 메뉴 모델 중 OTO에 바로 적용 가능한 항목만 1차 적용한다. Core 계약이나 source of truth가 없는 Jenkins 항목은 메뉴 자리를 만들지 않고 `제외/후순위`로 명시한다.
### 1차 적용 Global Menu
| Order | Jenkins menu model | OTO menu target | Target behavior |
|-------|--------------------|-----------------|-----------------|
| 1 | Dashboard / view root | `overview` | Control Plane dashboard/home으로 이동한다. |
| 2 | `New Item` | `pipelines` + `job-create-form` | 새 job/pipeline 생성 entry로 노출한다. |
| 3 | Jobs / item list | `pipelines` | job 목록과 selected job status/context로 이동한다. |
| 4 | `Build History` | `executions` | execution history와 selected run context로 이동한다. |
| 5 | Nodes/Agents | `runners` | OTO runner/node 목록으로 이동한다. |
| 6 | `Artifacts` | `artifacts` | 실행 산출물 목록으로 이동한다. |
| 7 | `Manage Jenkins` | `settings` / Manage OTO | endpoint, policy, node/runtime 관리 category로 이동한다. |
| 8 | OTO-specific Agent | `agent` | Jenkins parity 대상은 아니지만 OTO agent surface로 유지한다. |
### 1차 적용 Job Context Menu
| Order | Jenkins job menu model | OTO target | Target behavior |
|-------|------------------------|------------|-----------------|
| 1 | `Status` | `pipelines` job status/detail | selected job 상태와 최근 execution link를 보여준다. |
| 2 | `Build History` | `executions` filtered/context list | selected job의 execution history로 연결한다. |
| 3 | `Stages` / `Full Stage View` | `executions` stage graph | selected execution의 Pipeline Overview/Stage Graph로 연결한다. |
### 1차 적용 Run/Build Context Menu
| Order | Jenkins run menu model | OTO target | Target behavior |
|-------|------------------------|------------|-----------------|
| 1 | `Pipeline Overview` / stage detail | `executions` stage graph | Pipeline Graph View 스타일 primary region으로 연결한다. |
| 2 | `Console Output` | `log-preview` | selected execution log preview/full log로 연결한다. |
| 3 | `Artifacts` | `artifacts`, execution detail artifacts | selected execution artifacts와 global Artifacts view로 연결한다. |
| 4 | `Build History` | `executions` list | selected run 주변 history/context list로 둔다. |
### 제외/후순위 Menu Items
| Jenkins menu item | Decision | Reason |
|-------------------|----------|--------|
| `People` | 제외 | OTO 현재 범위에 user directory가 없다. |
| `Changes` | 제외 | SCM change set source가 없다. |
| `Build Now` | 후순위 | 기존 job 재실행/dispatch 계약이 명확해진 뒤 적용한다. |
| `Configure` | 후순위 | job configuration surface가 생긴 뒤 적용한다. |
| `Replay` | 후순위 | replay contract가 없다. |
| `Pipeline Syntax` | 후순위 | OTO YAML/runner command authoring surface와 별도다. |
## Common States
- loading
- empty
- error
- permission-denied
## Common Permissions
- operator/admin: write action submit 가능 여부를 제어하는 최소 역할 후보. 현재 SDD 기준은 단일 역할과 표시 가능한 token reference다.
## Jenkins Reference Mapping
| OTO View | Jenkins Reference | Structural Acceptance |
|----------|-------------------|-----------------------|
| `overview` | Dashboard, controller monitors, header status | Core/API 상태와 주요 진입점을 통합 header/breadcrumb 아래에서 스캔한다. |
| `runners` | Nodes and Clouds, agents list | runner를 Jenkins Nodes/Agents 목록 구조로 상태, 현재 작업, 연결 메시지 중심으로 목록화한다. |
| `pipelines` | Dashboard jobs, New Item, job page | Dashboard job table density의 pipeline/job 목록, `New Item` create action, 연결된 execution 이동을 갖춘다. |
| `executions` | Build/run detail, Build History, Console Output, Pipeline Graph View | 실행 목록에서 run detail로 확장하고 `Pipeline Overview`/`Stage Graph`, `Console Output`, `Build History`, artifact preview를 함께 갖춘다. Stage graph는 Jenkins IA gate 필수 항목이다. |
| `artifacts` | Build artifacts, workspace/artifact browser | artifact name/path를 빌드 산출물 목록처럼 스캔한다. 다운로드/브라우징은 후속 후보로 둔다. |
| `settings` | Manage Jenkins | endpoint, policy, local runtime preference를 `Manage OTO` 관리 category grouping으로 둔다. |
| `agent` | 없음 | OTO 전용 agent-shell 확장 표면이며 Jenkins parity 대상에서 제외한다. |
## Structural Layout Gate
- Jenkins `2.516+`의 통합 header/breadcrumb/action 모델은 OTO view header와 action 영역의 필수 구조이며, 러프 참조가 아니라 Jenkins IA gate 항목이다.
- 메뉴 구조는 Jenkins 기준 중 OTO에 적용 가능한 항목만 맞춘다. Dashboard-level left menu는 global navigation으로, job/run left task list는 page-local contextual menu로 분리해 구현한다.
- 현재 OTO 구현의 60px rail은 Jenkins Dashboard-level destination만 부분 대응하므로 Jenkins IA gate를 만족하지 못한다. 위 메뉴 계약을 만족하려면 코드 재작업이 필요하다.
- Pipeline execution 상세는 Blue Ocean보다 Pipeline Graph View를 active reference로 삼으며 `Pipeline Overview`/`Stage Graph`는 필수다.
- pixel, spacing, color token, exact component parity는 이번 화면정의서 범위에서 제외한다.
- Jenkins IA gate primitive가 코드와 widget 테스트로 확인된 대상 view만 status를 `구현됨`으로 승격한다. 미충족 상태에서는 `계획`으로 두고 설명에 미충족 사유를 남긴다.
## Open Questions
- 없음