docs(memory-bank): add creative phase CP-2 runtime logs UI
Решение: вкладка «Файловые логи» в Monitoring с подвкладками files и audit. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Creative: Runtime Logs UI (CP-2)
|
||||
|
||||
📌 **CREATIVE PHASE START: Runtime Logs Web UI**
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
## 1️⃣ PROBLEM
|
||||
|
||||
**Description:** Оператору нужен просмотр файлов runtime-логов (`*.log` из sidecar `stack-runtime-logs`), tail/preview и sync-очистка с audit. API будет доступен только на `evobgp-all` с volume; UI должен корректно показывать `503` и направлять к документации.
|
||||
|
||||
**Requirements:**
|
||||
- Список файлов: имя, размер, mtime
|
||||
- Preview (tail) в dialog или panel
|
||||
- Cleanup с ConfirmDialog (operator)
|
||||
- Просмотр cleanup audit (viewer+)
|
||||
- Empty/unavailable state при `503`
|
||||
|
||||
**Constraints:**
|
||||
- Не смешивать с PostgreSQL maintenance logs (уже tab `postgres` в Monitoring)
|
||||
- `AppDataTable`, `ScrollPreBlock`, `ConfirmDialog`
|
||||
- Sync DELETE — UI ждёт ответ, показывает spinner на кнопке
|
||||
|
||||
## 2️⃣ OPTIONS
|
||||
|
||||
| Option | Описание |
|
||||
|--------|----------|
|
||||
| **A** | Новая вкладка **«Файловые логи»** в `/monitoring` (`?tab=runtime-logs`) |
|
||||
| **B** | Отдельный route `/runtime-logs` в mainNav |
|
||||
| **C** | Секция в Operations (рядом с jobs) |
|
||||
| **D** | Подвкладка внутри Monitoring → PostgreSQL |
|
||||
|
||||
## 3️⃣ ANALYSIS
|
||||
|
||||
| Criterion | A Monitoring tab | B Own route | C Operations | D Under Postgres |
|
||||
|-----------|------------------|-------------|--------------|------------------|
|
||||
| Логическая группировка | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐ |
|
||||
| Переиспользование Monitoring layout | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| Не перегружать nav | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| Рядом с infra observability | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
|
||||
| Реализация (diff) | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
|
||||
|
||||
**Key insights:**
|
||||
- Monitoring уже = health + Postgres; файловые логи — ещё один «операционный» источник диагностики.
|
||||
- Отдельный route раздувает nav (8+ пунктов mainNav).
|
||||
- Operations семантически про ревизии/jobs, не raw FS.
|
||||
|
||||
## 4️⃣ DECISION
|
||||
|
||||
**Selected: Option A** — вкладка в Monitoring.
|
||||
|
||||
**Structure:**
|
||||
|
||||
```
|
||||
/monitoring
|
||||
├─ system (существует)
|
||||
├─ postgres (существует)
|
||||
└─ runtime-logs (новая)
|
||||
```
|
||||
|
||||
**Внутри вкладки `runtime-logs` — nested Tabs:**
|
||||
|
||||
| Sub-tab | Содержание |
|
||||
|---------|------------|
|
||||
| `files` | AppDataTable файлов + actions: Просмотр / Очистить |
|
||||
| `audit` | Таблица cleanup audit (`GET /v1/runtime-logs/cleanup-audit`) |
|
||||
|
||||
**Unavailable (`503`):** `EmptyState` с текстом: «Файловые логи доступны только на evobgp-all с примонтированным каталогом runtime-logs» + ссылка на docs.
|
||||
|
||||
**Preview:** `Dialog` + `ScrollPreBlock`, загрузка `GET .../files/{name}?lines=200` (лимиты из CP-3).
|
||||
|
||||
**Cleanup:** `ConfirmDialog` — текст с именем файла и размером; `DELETE ?mode=truncate` по умолчанию; опция «Удалить файл» в dropdown для operator.
|
||||
|
||||
**Rationale:** минимум nav-churn, консистентность с postgres monitoring, один URL `/monitoring?tab=runtime-logs`.
|
||||
|
||||
## 5️⃣ IMPLEMENTATION NOTES
|
||||
|
||||
- `web/src/lib/components/monitoring/RuntimeLogsTab.svelte`
|
||||
- `web/src/lib/runtime-logs/runtime-logs-api.ts`
|
||||
- `monitoring/+page.svelte`: `TabsTrigger value="runtime-logs"` label «Файловые логи»
|
||||
- Parse `?tab=` включить `runtime-logs`
|
||||
- Иконка вкладки: `FileText` или `HardDrive` (уже импортирован в monitoring)
|
||||
- KPI сверху (опционально): суммарный размер, число файлов — из list response
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📌 **CREATIVE PHASE END: Runtime Logs UI**
|
||||
@@ -318,7 +318,7 @@ graph TD
|
||||
## Creative Phases Required
|
||||
|
||||
- [x] **CP-1 uiux** — `creative-tenant-settings-ui.md` ✅ Tabs `/tenant-settings`, nav «Параметры»
|
||||
- [ ] **CP-2 uiux** — `creative-runtime-logs-ui.md`
|
||||
- [x] **CP-2 uiux** — `creative-runtime-logs-ui.md` ✅ Monitoring tab `runtime-logs` + sub-tabs files/audit
|
||||
- [ ] **CP-3 algorithm** — `creative-runtime-logs-cleanup.md` (truncate default vs delete)
|
||||
- [ ] **CP-4 architecture** — `creative-runtime-logs-path-safety.md`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user