Подключить документы S3 и секреты OpenBao к backend
Новые исходные учебные документы могут храниться в SeaweedFS S3, а TOTP, HMAC-ключ квитанций и учётные данные S3 — в OpenBao KV v2. Включение явное через SOSLCT_INTEGRATIONS_FILE; прежний режим с файловыми секретами и PostgreSQL сохраняется. Скачивание преподавателем и обучаемым проходит существующие проверки прав, читает точный VersionId и проверяет размер/SHA-256. Миграция 008 сохраняет старые bytea и защищает ссылки от изменения; номер 007 оставлен ветке адаптации.
MR построен поверх !16 и направлен в codex/oss-infrastructure-pilot, чтобы отдельно ревьюить интеграцию приложения. Четыре коммита разделяют S3, OpenBao, конфигурацию и Docker-проверку. Beads: soslct-a2e.11.
Проверено локально на Linux:
- 56 backend unit-тестов и 113 тестов с настоящим PostgreSQL 17.11 — прошли.
- 8 групп backend HTTP + SeaweedFS + OpenBao + PostgreSQL — прошли за 35,634 с, очистка подтверждена: TOTP, версии/права, перезапуск, идемпотентность, sealed/отозванный Bao-токен, замена token-file, отказ S3 и повтор после восстановления без частичного успеха в SQL.
- Установка по wheel-хешам, pip check, сборка исходного пакета и 56 unit-тестов после распаковки, документационные проверки — прошли.
- Независимое ревью: обнаруженное расширение HTTP allowlist исправлено; обязательных замечаний не осталось.
Настройка и перенос секретов · Результаты и протокол с хешами.
Ограничения: S3 PUT и PostgreSQL commit не образуют общую транзакцию — при откате возможны объекты без ссылки, автоматической очистки нет. S3-ключи перечитываются после перезапуска backend. PDF отчётов/сертификатов остаются в PostgreSQL. Согласованное резервирование БД/S3/OpenBao, целевой стенд, HA и промышленный транспорт не подтверждены; прежний product checkpoint новый профиль не покрывает. Локальный успех не является приёмкой SP01 или полным R1. 29.09.2026 пользователь поручил приёмку Maintainer rylengim после независимого ревью и успешного обязательного CI; отдельное ожидание владельца не требуется. Актуальный ed470ab8 повторно сопоставлен с проверенной реализацией, новых замечаний нет. Draft снят. Слияние ожидает устранения провала обязательного pipeline #10938. Согласованное локальное восстановление проверено отдельным MR !18; границы результатов этого MR сохраняются.