- archive local-fs-storage-backend, sqlite-metadata-backend, storage-orphan-reconciliation, metadata-managed-jwt-secret, default-local-backends - sync specs: storage-backends, metadata-backends, storage-reconciliation, app-secrets; update photos/share-links - defaults reflected in specs: SQLite and local FS
2.2 KiB
2.2 KiB
Proposal
Why
JWT_SECRET сейчас обязателен в окружении: его нужно задавать вручную и одинаково на
всех инстансах. Хранение секрета в слое метаданных с автогенерацией убирает обязательный
секрет из env и даёт стабильное значение на инсталляцию.
What Changes
- Убрать обязательный
JWT_SECRETиз конфига и окружения. - Добавить таблицу
app_settings(key/value) в оба бэкенда метаданных (PostgreSQL и SQLite) и репозиторий чтения/создания секрета. - При старте после открытия метаданных читать секрет или генерировать его
(
crypto/rand) и сохранять; использовать дляTokenManagerи как fallback при подписи URL объектов. URL_SECRETостаётся необязательным env-оверрайдом.- Обновить
.env.example,project.md,README.md.
Capabilities
New Capabilities
app-secrets: хранение секретов приложения (JWT) в слое метаданных с автогенерацией при первом использовании.
Modified Capabilities
Impact
backend/internal/config(убратьJWTSecretи его обязательность).backend/internal/app,backend/cmd/server(порядок старта: метаданные → секрет → storage/app).backend/internal/storage(fallback-секрет для подписи URL).- Новая settings-репозиция (
internal/settings), миграции PostgreSQL и SQLite. - Тесты (контрактные, e2e),
.env.example,project.md,README.md. - Не затрагивает формат данных клиента.