feat(web): implement schedule editor in MaintenancePoliciesTab
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Has been skipped
CI / web (push) Successful in 31s
CI / go (push) Successful in 51s
CI / bird2 (push) Successful in 15s
CI / release (push) Successful in 3m48s
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Has been skipped
CI / web (push) Successful in 31s
CI / go (push) Successful in 51s
CI / bird2 (push) Successful in 15s
CI / release (push) Successful in 3m48s
Enhanced the MaintenancePoliciesTab by integrating a schedule editor for maintenance policies. Users can now select schedule modes, input custom cron expressions, and dynamically update the schedule preview. This update improves the user interface and experience for managing maintenance schedules.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Memory Bank: Active Context
|
||||
|
||||
## Текущий фокус
|
||||
|
||||
**VAN-инициализация** — Memory Bank создан, задача не определена.
|
||||
|
||||
## Статус
|
||||
|
||||
- Memory Bank: создан и заполнен базовым контекстом проекта
|
||||
- Активная задача: отсутствует (ожидается описание от пользователя)
|
||||
|
||||
## Наблюдаемый контекст (git)
|
||||
|
||||
Незакоммиченные файлы, вероятно из предыдущей сессии:
|
||||
|
||||
- `web/src/lib/components/monitoring/MaintenancePoliciesTab.svelte`
|
||||
- `web/src/lib/maintenance/policy-schedule.ts`
|
||||
|
||||
Область: UI политик обслуживания PostgreSQL (расписание cron, пресеты, CRUD).
|
||||
|
||||
## Следующий шаг
|
||||
|
||||
Определить задачу и уровень сложности (1–4), затем маршрутизация:
|
||||
|
||||
- Level 1 → `/build`
|
||||
- Level 2–4 → `/plan`
|
||||
@@ -0,0 +1,27 @@
|
||||
# Memory Bank: Product Context
|
||||
|
||||
## Пользователи
|
||||
|
||||
- **Операторы** — CRUD модулей, пиров, ревизий, apply/rollback через API и Web UI
|
||||
- **Ноды (роль `node`)** — узкие эндпоинты: бандлы, verify, apply на спикере
|
||||
|
||||
## Основные сущности
|
||||
|
||||
- Модули префиксов (AS_PREFIXES, CDN_CIDRS, DOMAINS, IP_RANGES)
|
||||
- DoH-профили, BGP communities
|
||||
- Peers, Speakers
|
||||
- Ревизии конфигурации (preview, diff, rollback)
|
||||
- Jobs (асинхронные операции)
|
||||
- Maintenance policies (мониторинг PostgreSQL)
|
||||
|
||||
## Потоки
|
||||
|
||||
1. Ingest → Render → Publish revision → Deploy → Node pull/apply bundle
|
||||
2. Scheduler периодически ставит `module_refresh`
|
||||
3. Web UI проксирует/вызывает REST API с API-ключом
|
||||
|
||||
## Документация
|
||||
|
||||
- Обзор: `docs/overview.md`
|
||||
- Доступ и роли: `docs/access.md`
|
||||
- API: `docs/api.md`
|
||||
@@ -0,0 +1,16 @@
|
||||
# Memory Bank: Progress
|
||||
|
||||
## VAN Initialization — 2026-06-12
|
||||
|
||||
| Шаг | Статус |
|
||||
|-----|--------|
|
||||
| Platform detection | ✅ Windows / PowerShell |
|
||||
| Memory Bank structure | ✅ Создан |
|
||||
| Core files populated | ✅ Базовый контекст EvoBGP |
|
||||
| Task analysis | ⏳ Ожидает описание задачи |
|
||||
| Complexity determination | ⏳ — |
|
||||
| Route to workflow | ⏳ — |
|
||||
|
||||
## Реализация
|
||||
|
||||
_Нет активной реализации._
|
||||
@@ -0,0 +1,28 @@
|
||||
# Memory Bank: Project Brief
|
||||
|
||||
## Проект
|
||||
|
||||
**EvoBGP** — control plane для управления префиксами, модулями ingest, ревизиями конфигурации BIRD и выкладкой на BGP-спикеры.
|
||||
|
||||
## Цели
|
||||
|
||||
- Описание источников префиксов (модули: AS, CDN, DOMAINS, IP_RANGES)
|
||||
- Сборка согласованных снимков (ревизии) и генерация конфигурации BIRD
|
||||
- Доставка подписанных бандлов на BGP-спикеры (`evobgp-node`)
|
||||
- Операторский веб-интерфейс (SvelteKit) и REST API (Go)
|
||||
|
||||
## Ключевые артефакты
|
||||
|
||||
| Область | Путь |
|
||||
|---------|------|
|
||||
| HTTP-контракт | `docs/openapi.yaml` |
|
||||
| Архитектура | `docs/architecture.md` |
|
||||
| Go backend | `internal/`, `cmd/` |
|
||||
| Web UI | `web/` |
|
||||
| Деплой | `deploy/compose/` |
|
||||
|
||||
## Ограничения
|
||||
|
||||
- Persistence только через `store.Backend` (ARCH-01)
|
||||
- Долгие операции — `jobs.Registry`, ответ `202` + `job_id`
|
||||
- Web UI — shadcn-svelte / bits-ui экосистема
|
||||
@@ -0,0 +1,27 @@
|
||||
# Memory Bank: System Patterns
|
||||
|
||||
## Слои
|
||||
|
||||
- **Control plane:** `httpapi`, `store`, `repository`, `jobs`, `bundle`, `signing`, `pipeline`, `birdfmt`
|
||||
- **Data plane:** BIRD2, `evobgp-agent`, `evobgp-node`
|
||||
- **Web:** SvelteKit, shadcn-svelte (`ui/core`, `ui/patterns`, `ui/app`)
|
||||
|
||||
## Паттерны
|
||||
|
||||
| Паттерн | Реализация |
|
||||
|---------|------------|
|
||||
| Store abstraction | `store.Backend` + `repository` / `store.Memory` |
|
||||
| Async jobs | `jobs.Registry`, in-process (кроме cross-process HTTP) |
|
||||
| HTTP errors | `writeProblem` / RFC 9457 problem+json |
|
||||
| UI forms | sveltekit-superforms + Formsnap |
|
||||
| UI tables | TanStack Table + `AppDataTable` |
|
||||
|
||||
## Процессы (`cmd/`)
|
||||
|
||||
- `evobgp-api` — только API
|
||||
- `evobgp-all` — API + scheduler + ingest + render + deploy
|
||||
- Отдельные воркеры в reference Compose
|
||||
|
||||
## Источник правды
|
||||
|
||||
OpenAPI (`docs/openapi.yaml`) → код → `docs/`
|
||||
@@ -0,0 +1,32 @@
|
||||
# Memory Bank: Tasks
|
||||
|
||||
## Current Task
|
||||
|
||||
**[Не определена]** — пользователь вызвал `/van` без описания задачи.
|
||||
|
||||
## Status
|
||||
|
||||
- [x] VAN: platform detection
|
||||
- [x] VAN: Memory Bank verification & creation
|
||||
- [x] VAN: baseline project context
|
||||
- [ ] Task definition (от пользователя)
|
||||
- [ ] Complexity determination (Level 1–4)
|
||||
- [ ] Implementation plan
|
||||
- [ ] Execution
|
||||
- [ ] Documentation / reflect
|
||||
|
||||
## Candidate Context (из git, не подтверждено)
|
||||
|
||||
Возможное продолжение работы над **Maintenance Policies UI**:
|
||||
|
||||
- `MaintenancePoliciesTab.svelte` — вкладка политик в мониторинге
|
||||
- `policy-schedule.ts` — редактор cron-расписания (5-field, UTC)
|
||||
|
||||
## Requirements
|
||||
|
||||
_Ожидается формулировка задачи от пользователя._
|
||||
|
||||
Пример:
|
||||
```
|
||||
/van Доработать MaintenancePoliciesTab: валидация cron и тесты
|
||||
```
|
||||
@@ -0,0 +1,38 @@
|
||||
# Memory Bank: Tech Context
|
||||
|
||||
## Платформа разработки
|
||||
|
||||
- **OS:** Windows 10 (win32 10.0.26200)
|
||||
- **Shell:** PowerShell
|
||||
- **Пути:** `deploy\compose`, backslash на Windows
|
||||
|
||||
## Backend
|
||||
|
||||
- **Go:** 1.24 (`go.mod`)
|
||||
- **БД:** PostgreSQL (prod), SQLite (modernc, тесты)
|
||||
- **Миграции:** `migrations/postgres/`, `migrations/sqlite/` (пары .up/.down)
|
||||
- **Метрики:** Prometheus (`/metrics`)
|
||||
|
||||
## Frontend
|
||||
|
||||
- **Svelte:** ^5.54 (runes: `$state`, `$derived`, `$effect`)
|
||||
- **SvelteKit:** ^2.50
|
||||
- **Vite:** ^7.3.1
|
||||
- **UI:** shadcn-svelte, bits-ui, Tailwind v4
|
||||
- **Проверки:** `npm run check`, `npm run lint` (обязательно после правок)
|
||||
|
||||
## CI (Gitea)
|
||||
|
||||
- `go`: vet, golangci-lint, test -race, build
|
||||
- `web`: check + lint
|
||||
- `openapi`: redocly lint
|
||||
- `bird2`: `bird -p` на scenarios
|
||||
|
||||
## Локальные команды
|
||||
|
||||
```powershell
|
||||
go vet ./...
|
||||
go test ./... -race -count=1
|
||||
cd web; npm run check; npm run lint
|
||||
npx @redocly/cli lint docs/openapi.yaml
|
||||
```
|
||||
Reference in New Issue
Block a user