IncidentRelay 2.5#
Документ описывает кандидата в релиз. Локальные проверки не заменяют Linux/Python матрицу CI.
Изменения#
изменений без перезапуска IR в разделе Администрирование → Системные настройки. См. настройки Change Intelligence.
операционными комментариями, root cause и resolution summary.
источником. Комментарии AlertGroup остаются техническими. Затронутые сервисы содержат инструкции, ссылки, доступные зависимости и агрегированное влияние.
атомарно с событиями и аудитом. При 409 интерфейс сохраняет редактируемый текст для согласования с обновлённой записью.
восстановление зависших попыток и подавление дублей. Гарантия — at least once.
- Глобальный администратор может менять приём событий и фоновую обработку
- Incident владеет commander/responders, stakeholders, снимком ServiceOwner,
- Workspace объединяет операционную и доступную техническую историю с автором и
- Изменения Incident защищены
row_version; участники и responder меняются - Доставка сохраняется по событию/каналу/адресату, имеет ограниченные повторы,
PATCH /api/incidents/<id> принимает root_cause и resolution_summary (nullable, до 10000 символов) вместе с актуальным row_version. OpenAPI описывает payload, ответы collaboration, ограничения и конфликты. В PATCH значение null оставляет поле без изменений; пустая строка очищает root_cause или resolution_summary.
Решение о совместимости#
Текущий код удаляет /api/alert-groups/<id>/responders и /api/alert-groups/<id>/stakeholders, включая item routes. Миграция 2.5 заменяет их хранилище данными Incident. Клиенты должны использовать соответствующие /api/incidents/<incident_id>/... и настоящие ID Incident. Автоматического alias или forwarding старых ID нет.
Согласовано для 2.5: удаление является breaking change API и хранилища. Прежний срок 2.9 для responder/stakeholder routes и storage больше не применяется. Локальный архитектурный roadmap обновлён в соответствии с этим решением.
Записи без однозначного Incident намеренно пропускаются. Храните проверенную резервную копию: в новых таблицах их не будет. См. миграцию и откат.
Выпускные проверки#
В отдельной БД с явно заданным INCIDENTRELAY_CONFIG_FILE:
python -m pip install -r requirements.txt -r requirements-dev.txt
python -m compileall -q app manage.py run.py
python manage.py migrate
python -m app.check_schema
python -m app.check_templates
python tools/check_duplicate_tests.py
pytest --cov=app --cov-branch --cov-fail-under=50
Повторите миграции, проверку схемы и тесты на PostgreSQL 16. Включите PostgreSQL каталог, исключённый настройкой по умолчанию:
pytest tests -o 'norecursedirs=.git .venv .tmp __pycache__'
Проверьте обновление настоящей схемы 2.4 с однозначными связями, отсутствующими и неоднозначными связями, а также дублями. Сверьте счётчики, технические комментарии, новые вставки после сохранённых ID и повторный no-op migrate. Одних unit fixtures для этой репетиции недостаточно.
Для браузерных проверок установите Node, Playwright и Chromium:
INCIDENTRELAY_BROWSER_TESTS=1 pytest tests/ux/test_incident_workspace_browser.py
Проверяются добавление/удаление, комментарии, сохранение текста при 409, навигация, повторное открытие, read-only пользователь, языки, узкий экран и UTC/DST. POSIX multiprocess metrics и Linux entrypoint должны проходить на Linux: пропуск или import shim на Windows не подтверждают их работоспособность.
Условия выпуска: зелёные SQLite/PostgreSQL проверки, поддерживаемая Python-матрица, успешная репетиция обновления.