199 lines
7.6 KiB
Markdown
199 lines
7.6 KiB
Markdown
---
|
|
title: 'Workspace BrowserにSettings/Admin画面のshellとnavigationを追加する'
|
|
state: 'closed'
|
|
created_at: '2026-07-02T13:59:17Z'
|
|
updated_at: '2026-07-02T14:39:02Z'
|
|
assignee: null
|
|
queued_by: 'workspace-panel'
|
|
queued_at: '2026-07-02T14:24:54Z'
|
|
---
|
|
|
|
## 背景
|
|
|
|
Workspace Browser には Worker / Runtime / Repository / Ticket などの作業 surface はあるが、Backend 設定や接続状態を扱う Settings/Admin surface はまだ無い。
|
|
|
|
今後 Runtime connections、Backend config、data store status、workspace identity などを UI から確認・編集する必要がある。これは普通に管理画面として設計する。ただし現状の Workspace Backend には user / permission / multi-user authorization が無いため、存在しない権限モデルを UI 上で fake しない。
|
|
|
|
Runtime connection 管理 UI を直接作り始めると、Settings/Admin の entry point / route / navigation / diagnostic / restart-required 表示などの共通設計と、Runtime connection config の永続化が混ざる。この Ticket では先に Settings/Admin shell と navigation だけを作り、Runtime Connections は後続 Ticket で実装する。
|
|
|
|
## 目的
|
|
|
|
- Workspace Browser に Settings/Admin surface を追加する。
|
|
- 将来の admin UI の受け皿になる route / layout / navigation を用意する。
|
|
- 現時点で存在しない user / permission / multi-user authorization を UI に出さない。
|
|
- Runtime Connections などの後続 Settings section を追加できるようにする。
|
|
- 既存の Worker Console / Sidebar UX を壊さない。
|
|
- mutation や Runtime connection 永続化は後続 Ticket に委譲する。
|
|
|
|
## 位置づけ
|
|
|
|
Settings/Admin は Workspace Backend の管理画面である。ただし v0 では権限管理を持たない。
|
|
|
|
明記する制約:
|
|
|
|
- user account は無い。
|
|
- role / permission model は無い。
|
|
- multi-user authorization は無い。
|
|
- したがって「管理者だけが操作できる」などの UI 文言や fake role を作らない。
|
|
- 現時点の操作境界は「この Backend にアクセスできること」だけである。
|
|
|
|
将来の受け皿:
|
|
|
|
- Runtime connections。
|
|
- Backend config / effective config view。
|
|
- data root / store status。
|
|
- workspace identity view。
|
|
- restart required / sanitized diagnostics。
|
|
- 将来の user / permission 管理。ただしこの Ticket では実装しない。
|
|
|
|
## UI entry point
|
|
|
|
Workspace Browser の sidebar に Settings/Admin entry point を追加する。
|
|
|
|
候補:
|
|
|
|
```text
|
|
...
|
|
SETTINGS
|
|
```
|
|
|
|
または bottom utility として:
|
|
|
|
```text
|
|
⚙ Settings
|
|
```
|
|
|
|
v0 では既存の Worker / Repository / Ticket navigation を邪魔しない位置に置く。Worker Console が主導線であることを崩さない。
|
|
|
|
## Route 設計
|
|
|
|
SvelteKit route として Settings/Admin shell を追加する。
|
|
|
|
候補:
|
|
|
|
```text
|
|
/settings
|
|
/settings/runtime-connections
|
|
/settings/backend-config
|
|
```
|
|
|
|
v0 では `/settings` が overview / placeholder を表示し、section navigation から placeholder section に遷移できるところまででよい。
|
|
|
|
Settings section の初期候補:
|
|
|
|
- Runtime Connections
|
|
- 後続 Ticket `00001KWHHRTM9` で実装する。
|
|
- v0 shell では placeholder / empty state を表示する。
|
|
- Backend Config
|
|
- `.yoi/workspace-backend.local.toml` / packaged default / effective config の表示・diff の受け皿。
|
|
- v0 shell では read-only placeholder でよい。
|
|
- Workspace Identity
|
|
- workspace id / display name / initialized state などの read-only 表示の受け皿。
|
|
|
|
## 権限モデルについての表示
|
|
|
|
Settings/Admin overview には、現在 user / permission model が無いことを簡潔に示す。
|
|
|
|
例:
|
|
|
|
```text
|
|
This Workspace Backend currently has no user or permission model. Anyone with access to this backend can change these settings.
|
|
```
|
|
|
|
日本語 UI なら:
|
|
|
|
```text
|
|
現在、この Workspace Backend にはユーザー権限モデルがありません。この Backend にアクセスできる人は設定を変更できます。
|
|
```
|
|
|
|
これは「管理画面ではない」という意味ではない。無い権限モデルをあるように見せないための注意書きである。
|
|
|
|
## Common UI patterns
|
|
|
|
Settings/Admin shell では後続 section が使う共通 pattern を用意する。
|
|
|
|
### Sanitized diagnostic
|
|
|
|
- raw path / secret / token / socket path / runtime store path を出さない方針を示す。
|
|
- v0 は reusable component でなくても、Settings shell 内の表示 pattern として定義する。
|
|
|
|
### Restart required badge
|
|
|
|
Runtime connection や backend config の変更は Backend restart が必要になる場合がある。
|
|
|
|
v0 shell では badge / callout の見た目だけ用意してよい。
|
|
|
|
```text
|
|
Restart required
|
|
```
|
|
|
|
### Save / dirty state
|
|
|
|
この Ticket では mutation を実装しないため、dirty tracking の本実装は不要。ただし後続 section が使う前提として、save/cancel area を置ける layout にする。
|
|
|
|
## Backend API との関係
|
|
|
|
この Ticket では Settings mutation API は実装しない。
|
|
|
|
後続 Ticket では API path を次のどちらかに寄せることを検討する。
|
|
|
|
```http
|
|
GET /api/settings
|
|
GET /api/settings/runtime-connections
|
|
```
|
|
|
|
または Workspace 配下であることを強調するなら:
|
|
|
|
```http
|
|
GET /api/workspace/settings
|
|
GET /api/workspace/settings/runtime-connections
|
|
```
|
|
|
|
v0 shell は既存 `/api/workspace` projection などで表示可能な範囲に留めてよい。新 API を追加する場合も read-only summary に限定する。
|
|
|
|
## 依存関係
|
|
|
|
この Ticket は Runtime connection 管理 Ticket `00001KWHHRTM9` の前提とする。Runtime connection の add/delete/test/config persistence はこの Ticket では実装しない。
|
|
|
|
## 実装要件
|
|
|
|
- Workspace Browser に Settings/Admin entry point を追加する。
|
|
- `/settings` route を追加する。
|
|
- Settings/Admin shell layout を追加する。
|
|
- Section navigation を追加する。
|
|
- Runtime Connections placeholder section を追加する。
|
|
- Backend Config placeholder section を追加する。
|
|
- Workspace Identity placeholder / read-only section を追加する。
|
|
- 現時点で user / permission model が無いことを UI に明記する。
|
|
- user / role / permission の fake UI を作らない。
|
|
- Restart required / sanitized diagnostic の表示 pattern を用意する。
|
|
- 既存 Worker Console / Sidebar navigation と衝突しない。
|
|
|
|
## 受け入れ条件
|
|
|
|
- Sidebar または bottom utility から Settings/Admin に移動できる。
|
|
- `/settings` が表示できる。
|
|
- Settings/Admin shell に「現時点で user / permission model が無い」旨の注意書きがある。
|
|
- Settings section navigation がある。
|
|
- Runtime Connections placeholder がある。
|
|
- Backend Config placeholder がある。
|
|
- Workspace Identity placeholder または read-only summary がある。
|
|
- UI 文言が fake user / role / permission model を示唆しない。
|
|
- raw path / secret / token / socket path / runtime store path を placeholder や diagnostic に表示しない。
|
|
- 既存 Worker Console / Runtime Console / Sidebar の主導線が壊れていない。
|
|
- Focused tests が Settings route rendering、navigation、permission-model disclaimer、placeholder sections を確認する。
|
|
- `cd web/workspace && deno task test` が通る。
|
|
- `cd web/workspace && deno task check` が通る。
|
|
- `git diff --check` が通る。
|
|
|
|
## 対象外
|
|
|
|
- Runtime connection add/delete/test 実装。
|
|
- `.yoi/workspace-backend.local.toml` の read-modify-write API。
|
|
- Backend config editor。
|
|
- secret store UI。
|
|
- user / permission UI。
|
|
- Runtime live register / unregister。
|
|
- Manual Coding Worker 作成 form。
|
|
- Nix packaging に関わる変更。
|