85 lines
2.9 KiB
Markdown
85 lines
2.9 KiB
Markdown
---
|
|
ui_doc_type: component
|
|
component_id: console-shell
|
|
status: 구현됨
|
|
source_evidence:
|
|
- type: code
|
|
path: packages/flutter/oto_console/lib/src/oto_console_shell.dart
|
|
notes: "OtoConsoleShell Scaffold, rail, selected section content 구현"
|
|
- type: code
|
|
path: apps/client/lib/src/app/oto_client_app.dart
|
|
notes: "OtoClientApp이 OtoConsoleShell을 host MaterialApp home으로 mount"
|
|
- type: docs
|
|
path: apps/client/README.md
|
|
notes: "oto_console package의 embeddable shell 기준"
|
|
---
|
|
|
|
# Console Shell
|
|
|
|
Component ID: `console-shell`
|
|
|
|
Status: `구현됨`
|
|
|
|
## Source Evidence
|
|
|
|
| Type | Path | Notes |
|
|
|------|------|-------|
|
|
| code | `packages/flutter/oto_console/lib/src/oto_console_shell.dart` | `OtoConsoleShell` Scaffold, rail, selected section content 구현 |
|
|
| code | `apps/client/lib/src/app/oto_client_app.dart` | host `MaterialApp`이 `OtoConsoleShell`을 mount |
|
|
| docs | `apps/client/README.md` | embeddable shell 기준 |
|
|
|
|
## Purpose
|
|
|
|
Control Plane 콘솔의 전체 layout shell을 제공하고, rail navigation과 선택된 section content를 연결한다.
|
|
|
|
## Used By
|
|
|
|
- `overview`: shell content area
|
|
- `runners`: shell content area
|
|
- `pipelines`: shell content area
|
|
- `executions`: shell content area
|
|
- `artifacts`: shell content area
|
|
- `agent`: shell content area
|
|
- `settings`: shell content area
|
|
|
|
## Anatomy
|
|
|
|
- `Scaffold`
|
|
- `SafeArea`
|
|
- `console-rail`
|
|
- selected section content area
|
|
- optional fallback `section-surface`
|
|
|
|
## Jenkins Reference Alignment
|
|
|
|
- Jenkins `2.516+`의 통합 header/breadcrumb/action 모델은 future shell header 후보로 둔다.
|
|
- 현재 구현은 rail 중심 shell이므로 Jenkins classic side task list와 Blue Ocean common navigation을 절충한 OTO 운영 콘솔 shell로 본다.
|
|
- view header와 action은 각 surface 내부에 있고, shell은 navigation과 content mounting 책임만 가진다.
|
|
- global search, command palette, account/theme picker는 이번 정의 범위에서 제외한다.
|
|
|
|
## Target Layout Delta
|
|
|
|
- shell은 rail + content만이 아니라 page header/action slot을 담을 수 있는 구조를 목표로 둔다.
|
|
- breadcrumb는 이번 범위에서 제외하지만, Jenkins refreshed header처럼 current view context와 primary action을 같은 상단 영역에 둘 수 있어야 한다.
|
|
- 현재 `OtoConsoleShell` 구현은 목표 shell layout 반영이 완료되어 `구현됨` 상태다.
|
|
|
|
## Variants
|
|
|
|
- default: host가 전용 surface를 모두 넘긴 상태
|
|
- fallback: 특정 section widget이 없으면 `section-surface`를 표시
|
|
|
|
## States
|
|
|
|
- default
|
|
- selected-section
|
|
- fallback-section
|
|
- navigation-callback
|
|
|
|
## Rules
|
|
|
|
- section enum, rail button, view definition은 같은 section 집합을 말해야 한다.
|
|
- shell은 view source of truth가 아니라 view를 담는 container component다.
|
|
|
|
## Decision History
|
|
|
|
- 2026-06-24: 구현 후보 재검토 중 `OtoConsoleShell`을 별도 shell component로 보강했다.
|