PostgreSQL persistence and verified Docker Compose for DDS
Файловый прототип ДДС сохранял состояние только через один локальный процесс. Добавлен PostgreSQL-адаптер с транзакциями, миграциями и отдельными таблицами событий, результатов команд и отчётов. Независимые соединения согласуют запись; повтор команды и версии сохраняются после перезапуска. Импорт переносит файловый снимок атомарно только в пустую БД, не меняя источник.
Добавлены dev Docker Compose, проверка доступа из профиля Windows, изоляция секретов от build context и фиксированные PyPI-хеши зависимостей. HTTP/UI используют /research/v1. Это промежуточная работа soslct-arz: полный API v6, постоянные сессии, production deploy/rollback и SP01 остаются вне готовности этого MR.
Ветка обновлена от main b016f942 после слияния !7 (merged)–!9 (merged) и направлена в main; унаследованы исправления паролей и восстановления CSRF. PostgreSQL-интеграция теперь автоматическая и обязательная. Новый обязательный test:research-compose собирает настоящий образ приложения, выполняет миграции и инициализацию, проверяет healthcheck, HTTP-учебный цикл и сохранность отчёта после перезапуска БД и приложения. Тест использует собственные временные ресурсы и удаляет только их. Выпуск документационного пакета зависит от успешного завершения обеих проверок.
Локально прошли documentation validate, компиляция Python и Compose config --quiet. Docker engine в текущем Windows-профиле недоступен, поэтому контейнерные проверки выполняет GitLab runner. Pipeline https://git.digital08.ru/arkadiy/SOSLCT/-/pipelines/10234 на cede138e: все 7 обязательных jobs PASS, PostgreSQL 15/15, Compose smoke PASS включая сборку, HTTP-сценарий, перезапуск и очистку. Исторические 15/15 тестов на PostgreSQL без Docker не подменяют этот прогон. Инструкция: experiments/dds_pg/README.md. Успешный CI не означает продуктовую приёмку.