36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
|
|
# Контекст для доработок (агент / разработчик)
|
|||
|
|
|
|||
|
|
Кратко, что нужно знать перед изменениями в репозитории **onGuard24**.
|
|||
|
|
|
|||
|
|
## Продукт
|
|||
|
|
|
|||
|
|
- **onGuard24** — сервис класса **IRM** (дежурства, эскалации, инциденты), модульный монолит.
|
|||
|
|
- **v1.0.0** — только каркас: API, БД, webhook Grafana, заглушки модулей, страница статусов.
|
|||
|
|
|
|||
|
|
## Стек
|
|||
|
|
|
|||
|
|
- Python **≥3.11**, **FastAPI**, **asyncpg**, **httpx**, **pydantic-settings**.
|
|||
|
|
- Фронт опционально: **Vite + React** в `web/`.
|
|||
|
|
|
|||
|
|
## Правила
|
|||
|
|
|
|||
|
|
1. **Секреты** — только `.env` (gitignore). В репо — `.env.example` без значений.
|
|||
|
|
2. **Версия** — синхронизировать: `pyproject.toml`, `onguard24/__init__.py`, тег git, `CHANGELOG.md`.
|
|||
|
|
3. **Новые модули** — пакет `onguard24/modules/`, роутер подключать в `main.py` с префиксом `/api/v1/modules/<имя>`.
|
|||
|
|
4. **Миграции БД** — пока правки в `onguard24/db.py` (константа SQL); не ломать таблицу `ingress_events` без миграционного плана.
|
|||
|
|
5. **Статус интеграций** — логика в `status_snapshot.py` и `integrations/*`.
|
|||
|
|
|
|||
|
|
## Точки входа в код
|
|||
|
|
|
|||
|
|
| Задача | Файл |
|
|||
|
|
|--------|------|
|
|||
|
|
| Новый эндпоинт | `main.py` или `modules/*.py` |
|
|||
|
|
| Настройки | `config.py` |
|
|||
|
|
| Webhook Grafana | `ingress/grafana.py` |
|
|||
|
|
| Проверка Vault/Grafana/Forgejo | `status_snapshot.py`, `integrations/` |
|
|||
|
|
| HTML главной | `root_html.py` |
|
|||
|
|
|
|||
|
|
## Откат
|
|||
|
|
|
|||
|
|
См. [VERSIONING.md](VERSIONING.md). Теги `v1.0.0`, `v1.1.0`, …
|