Files
onGuard24/CHANGELOG.md
Alexandr f275260b0d
Some checks failed
CI / test (push) Successful in 6m10s
Deploy / deploy (push) Failing after 42s
v1.6.0: Docker, docker-compose, Forgejo CI/CD и откат по тегу
- Dockerfile + entrypoint (alembic + uvicorn), compose с healthcheck
- .gitea/workflows: ci (pytest), deploy (SSH + compose по тегу v*)
- docs/CICD.md: секреты, pvestandt9, ручной откат через workflow_dispatch

Made-with: Cursor
2026-04-03 09:11:52 +03:00

6.5 KiB
Raw Permalink Blame History

Changelog

Формат: семантическое версионирование MAJOR.MINOR.PATCH. Git-теги v1.0.0, v1.1.0 и т.д. — см. docs/VERSIONING.md.

[1.6.0] — 2026-04-03

Docker-образ, docker-compose.yml, CI/CD Forgejo/Gitea Actions.

Добавлено

  • Dockerfile, docker-compose.yml, deploy/entrypoint.shalembic upgrade + uvicorn (отключение: SKIP_ALEMBIC=1).
  • .gitea/workflows/ci.yml — pytest на push в main и PR.
  • .gitea/workflows/deploy.yml — деплой по пушу тега v* или вручную; откат = тот же workflow с ref = старый тег.
  • docs/CICD.md — секреты, подготовка root@pvestandt9, порядок релиза и отката.

[1.5.0] — 2026-04-03

IRM-ядро: инциденты, задачи, эскалации, миграция БД, документация.

Добавлено

  • Документация: docs/IRM.md — матрица функций IRM и что настраивать в Grafana.
  • Alembic 002_irm_core: таблицы incidents, tasks, escalation_policies.
  • Модули: incidents (API + UI, авто-создание из alert.received при наличии БД), tasks, escalations.
  • register_module_events(bus, pool) — подписки получают пул PostgreSQL.
  • Тесты: tests/test_irm_modules.py, обновлены тесты навигации.

[1.4.1] — 2026-04-03

Исправлено

  • Alembic: к URL с postgresql+psycopg добавляется client_encoding=utf8, чтобы alembic upgrade head не падал с TypeError: ... bytes-like object при некоторых настройках кодировки на стороне PostgreSQL/psycopg3.

[1.4.0] — 2026-04-03

Правое меню «Разделы» на главной и на страницах модулей, пункты из MODULE_MOUNTS (title + ui_router).

  • nav_rail_html, wrap_module_html_page, общие стили APP_SHELL_CSS в modules/ui_support.py.
  • Модуль schedules в реестре переименован для примера: title = «Календарь дежурств».

[1.3.0] — 2026-04-03

Веб-UI модулей с главной страницы и изоляция ошибок превью.

Добавлено

  • ModuleMount: поля slug, title, опционально ui_router, render_home_fragment.
  • /ui/modules/<slug>/ — монтирование ui_router каждого модуля (полные HTML-страницы, не в OpenAPI).
  • Главная /: секция «Модули» с карточками; фрагменты через ui_support.safe_fragment (падение одного модуля не ломает страницу).
  • Примеры в schedules, contacts, statusboard; тесты tests/test_root_ui.py.

[1.2.0] — 2026-04-03

Модульная разработка без правок main.py на каждый новый роутер.

Добавлено

  • onguard24/modules/registry.py — единый список MODULE_MOUNTS (роутер, префикс URL, register_events). Подключение роутеров в create_app() циклом.
  • У каждого модуля (schedules, contacts, statusboard) функция register_events(EventBus) — заготовка подписки на alert.received.
  • app.state.event_bus: при старте создаётся InMemoryEventBus, вызывается register_module_events.
  • Ingress Grafana: INSERT … RETURNING id, затем publish_alert_received с ссылкой на строку ingress_events.
  • Документация: docs/MODULES.md.

[1.1.0] — 2026-04-03

Инфраструктура разработки и задел под домен IRM.

Добавлено

  • Миграции: Alembic (alembic.ini, alembic/env.py, ревизии в alembic/versions/). Начальная схема: таблица ingress_events (как раньше в коде). Команда: alembic upgrade head. DDL при старте приложения убран — только пул asyncpg.
  • Тесты: pytest, pytest-asyncio, моки интеграций; тесты API: /health, /api/v1/status, POST /api/v1/ingress/grafana (в т.ч. секрет webhook). Установка: pip install -e ".[dev]".
  • Домен (задел): пакет onguard24/domain/ — сущности Alert, Incident, эскалация; EventBus / InMemoryEventBus, протокол Module для подписки на события. Описание: docs/DOMAIN.md.

Зависимости

  • Прод: sqlalchemy, alembic, psycopg[binary] (для CLI миграций).
  • Dev (optional): pytest, pytest-asyncio, respx.

Тег в репозитории (после публикации): v1.1.0.

[1.0.0] — 2026-04-03

Первый зафиксированный релиз каркаса (scaffold).

Что входит

  • Backend: FastAPI, uvicorn, конфиг из .env (путь к .env от корня репозитория).
  • БД: PostgreSQL через asyncpg, пул, миграция ingress_events (сырой SQL в onguard24/db.py).
  • Ingress: POST /api/v1/ingress/grafana — сохранение JSON алерта в БД; опционально X-OnGuard-Secret + GRAFANA_WEBHOOK_SECRET.
  • Статус: GET /, GET /api/v1/status — проверки database, Vault, Grafana (SA token), Forgejo (PAT + fallback без read:user).
  • Модули-заглушки: schedules, contacts, statusboard под префиксом /api/v1/modules/....
  • Фронт: Vite + React в web/ (прокси на API).
  • Документация: README, .env.example, docs/ARCHITECTURE.md.

Не входит (следующие версии)

  • Alembic / полноценные миграции.
  • Авторизация публичных API (кроме секрета webhook).
  • Бизнес-логика IRM (эскалации, дежурства, светофор) — только заготовки модулей.

Тег в репозитории: v1.0.0.