6. Отчёты в S3, находки и статусы в БД
Суть этапа
Результаты живут независимо от контейнера. Агент и пользователь могут получать их частями, не загружая каждый раз огромный JSON.
Что сохраняем
| S3-совместимое хранилище | База данных |
|---|---|
| Полные JSON-отчёты инструментов | Задача, проект, команда и статус |
| Манифест и исходный снимок | Сводка, покрытие и ошибки |
| Артефакты проверок | Находки с устойчивыми ID и ссылками на свидетельства |
| Последующие diff и версии копии | История решений и изменений |
Отчёт содержит schemaVersion, snapshotId, идентификатор попытки, версии инструментов/правил, находки и ограничения. Свидетельства привязаны к конкретным файлам и хешам снимка. Секретные значения не включаем в обычный отчёт.
Исходный HTML, SVG и другие активные форматы не вставляем в страницу отчёта. Показываем безопасное текстовое представление и контролируем доступ к исходникам.
Как завершаем задачу
Сначала сохраняем и проверяем артефакты, затем фиксируем итоговый статус и ссылки в БД. S3 и БД не образуют одну транзакцию: нужны повторяемые шаги и сверка после сбоя. Завершённый контейнер без сохранённого результата не означает успешно завершённую проверку.
Новая проверка создаёт новую версию результата. Не стираем исходный отчёт после того, как агент подтвердил или отклонил отдельную находку.
Результат этапа
Через API/MCP доступны сводка, список находок с фильтрацией и детали выбранной находки. Удаление контейнера не приводит к потере отчёта.