feat(memory-bank): update active context and progress documentation
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 25s
CI / web (push) Successful in 30s
CI / go (push) Successful in 54s
CI / bird2 (push) Successful in 14s
CI / release (push) Successful in 3m43s
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 25s
CI / web (push) Successful in 30s
CI / go (push) Successful in 54s
CI / bird2 (push) Successful in 14s
CI / release (push) Successful in 3m43s
Обновлены разделы активного контекста и прогресса для задачи `settings-ui-and-runtime-logs`. Упрощено отображение статуса завершённых фаз и добавлены ссылки на архив. Уточнены следующие шаги и активные задачи, улучшая ясность и доступность информации. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
# TASK ARCHIVE: settings-ui-and-runtime-logs
|
||||
|
||||
## METADATA
|
||||
|
||||
| Поле | Значение |
|
||||
|------|----------|
|
||||
| **Task ID** | `settings-ui-and-runtime-logs` |
|
||||
| **Complexity** | Level 4 |
|
||||
| **VAN** | 2026-06-12 |
|
||||
| **PLAN** | 2026-06-12 |
|
||||
| **BUILD complete** | 2026-06-12 |
|
||||
| **REFLECT** | 2026-06-12 |
|
||||
| **ARCHIVE** | 2026-06-12 |
|
||||
|
||||
---
|
||||
|
||||
## SUMMARY
|
||||
|
||||
Два связанных улучшения control plane:
|
||||
|
||||
1. **Tenant settings UI** — единый модуль `/tenant-settings` (BIRD, ревизии, custom KV); `/settings` только для браузера.
|
||||
2. **Runtime logs** — API и UI для файлов `*.log` от sidecar `stack-runtime-logs`: list, tail, sync cleanup, audit в БД; FS только на `evobgp-all` с volume.
|
||||
|
||||
---
|
||||
|
||||
## REQUIREMENTS (resolved)
|
||||
|
||||
| # | Решение |
|
||||
|---|---------|
|
||||
| `/settings` vs tenant | Раздельные модули |
|
||||
| Cleanup | Синхронный HTTP, не jobs |
|
||||
| FS API | Только `evobgp-all` + mount |
|
||||
| Audit | `runtime_log_cleanup_audit` в postgres/sqlite |
|
||||
|
||||
---
|
||||
|
||||
## IMPLEMENTATION
|
||||
|
||||
### Backend
|
||||
|
||||
| Компонент | Путь |
|
||||
|-----------|------|
|
||||
| OpenAPI tag `RuntimeLogs` | `docs/openapi.yaml` |
|
||||
| Миграция 000026 | `migrations/postgres/`, `migrations/sqlite/` |
|
||||
| Store | `internal/store/runtime_logs.go`, `memory_runtime_logs.go`, `postgres_runtime_logs.go` |
|
||||
| FS layer | `internal/runtimelogs/` (config, safe, list, tail, cleanup) |
|
||||
| HTTP | `internal/httpapi/routes_runtime_logs.go`, `server.go` wiring |
|
||||
| Config/docs | `internal/config/config.go`, `docs/access.md` |
|
||||
|
||||
**API paths:** `GET/DELETE /v1/runtime-logs/files`, `GET .../files/{filename}`, `GET /v1/runtime-logs/cleanup-audit`
|
||||
|
||||
### Deploy
|
||||
|
||||
| Файл | Изменение |
|
||||
|------|-----------|
|
||||
| `deploy/compose/stack.microvps-full.yaml` | env + mount на `evobgp-all`, `EVOBGP_RUNTIME_LOGS_HOST_DIR` |
|
||||
| `deploy/compose/docker-compose.microvps-full.yaml` | overlay mount/env |
|
||||
| `deploy/compose/docker-compose.production.example.yaml` | полный prod example для `/opt/evobgp` |
|
||||
| `deploy/compose/.env.production.example` | host dir для runtime-logs |
|
||||
| `docs/quickstart.md` | секция runtime logs |
|
||||
| `.gitignore` | `deploy/compose/runtime-logs/` |
|
||||
|
||||
### Web UI
|
||||
|
||||
| Область | Путь |
|
||||
|---------|------|
|
||||
| Tenant settings | `web/src/routes/tenant-settings/`, `web/src/lib/components/tenant-settings/*` |
|
||||
| Nav «Параметры» | `web/src/lib/ui/app/layout/nav.ts` |
|
||||
| Operations | убран tab `system`, редирект `?tab=system` |
|
||||
| Network | `NetworkBirdSettingsSummaryCard.svelte` |
|
||||
| Runtime logs UI | `web/src/lib/runtime-logs/runtime-logs-api.ts`, `RuntimeLogsTab.svelte` |
|
||||
| Monitoring | `?tab=runtime-logs`, URL sync |
|
||||
|
||||
**Удалено:** `OperationsSystemSettingsTab.svelte`, `BirdSettingsForm.svelte`
|
||||
|
||||
### Docs (Phase 7)
|
||||
|
||||
- `docs/api.md` — RuntimeLogs
|
||||
- `docs/manual.md` — Web UI tenant-settings + monitoring runtime logs
|
||||
|
||||
---
|
||||
|
||||
## TESTING
|
||||
|
||||
| Gate | Результат |
|
||||
|------|-----------|
|
||||
| `go test ./... -count=1` | pass |
|
||||
| `scripts/lint-go.ps1` | pass |
|
||||
| `go test ./internal/httpapi/... -run RuntimeLogs` | pass |
|
||||
| `go test ./internal/runtimelogs/...` | pass |
|
||||
| `npx @redocly/cli lint docs/openapi.yaml` | pass |
|
||||
| `npm run check && npm run lint` | pass |
|
||||
| E2E manual prod | **не выполнен** (чеклист в tasks Phase 7) |
|
||||
|
||||
---
|
||||
|
||||
## LESSONS LEARNED
|
||||
|
||||
См. [reflection-settings-ui-and-runtime-logs.md](../reflection/reflection-settings-ui-and-runtime-logs.md).
|
||||
|
||||
Кратко: deploy mount обязателен для FS API; audit не зависит от FS; production compose example критичен; phased BUILD + creative снижают риск откатов.
|
||||
|
||||
---
|
||||
|
||||
## POST-DEPLOY (оператор)
|
||||
|
||||
1. Обновить `/opt/evobgp/docker-compose.yaml` (или скопировать `docker-compose.production.example.yaml`).
|
||||
2. `mkdir -p /opt/evobgp/runtime-logs`
|
||||
3. `docker compose pull evobgp-all evobgp-web && docker compose up -d evobgp-all`
|
||||
4. E2E: list → tail → truncate → audit row; `/tenant-settings` PATCH.
|
||||
|
||||
---
|
||||
|
||||
## REFERENCES
|
||||
|
||||
| Документ | Путь |
|
||||
|----------|------|
|
||||
| Reflection | `memory-bank/reflection/reflection-settings-ui-and-runtime-logs.md` |
|
||||
| CP-1 Tenant UI | `memory-bank/creative/creative-tenant-settings-ui.md` |
|
||||
| CP-2 Runtime logs UI | `memory-bank/creative/creative-runtime-logs-ui.md` |
|
||||
| CP-3 Cleanup | `memory-bank/creative/creative-runtime-logs-cleanup.md` |
|
||||
| CP-4 Path safety | `memory-bank/creative/creative-runtime-logs-path-safety.md` |
|
||||
| HTTP contract | `docs/openapi.yaml` (tag RuntimeLogs) |
|
||||
| Access / env | `docs/access.md` |
|
||||
Reference in New Issue
Block a user