много всего и тестовые данные
This commit is contained in:
@@ -63,18 +63,22 @@
|
||||
|
||||
**Файлы:**
|
||||
|
||||
- `backend/src/main/resources/db/migration/V1__init.sql:21-24,38-42,85-92,221-265`
|
||||
- `docs/README.md:45-54`
|
||||
- `backend/src/main/resources/db/migration/V2__test_data.sql`
|
||||
- `docs/README.md`
|
||||
|
||||
**Проблема:** V1 создаёт администратора с публично документированным коротким паролем, а также несколько тестовых пользователей с одинаковым известным паролем. Эта же миграция запускается для tenant-БД, добавленных в production, и одновременно добавляет демонстрационные кафедры, группы и другие данные.
|
||||
**Проблема:** схема и данные разделены: V1 теперь не содержит доменных записей, однако
|
||||
`V2__test_data.sql` всё равно автоматически применяется общим Flyway location ко всем tenant-БД.
|
||||
V2 создаёт администратора с публично документированным коротким паролем, несколько известных
|
||||
demo-пользователей и большой демонстрационный набор. Пароли 150 массовых преподавателей случайны
|
||||
и непубличны, но это не устраняет риск доступного администратора и загрязнения production-БД.
|
||||
|
||||
**Риск:** немедленный административный доступ к свежему tenant, если пароль не сменили вручную; загрязнение production-БД тестовыми сущностями.
|
||||
|
||||
**Как исправить:**
|
||||
|
||||
- Не менять V1. Добавить новую миграцию `V3__disable_demo_accounts.sql`, которая архивирует/удаляет демонстрационные аккаунты и данные там, где они не были явно сохранены.
|
||||
- Исключать `V2__test_data.sql` из production Flyway locations либо включать её только явным
|
||||
dev/test-профилем.
|
||||
- Создавать первого администратора отдельной bootstrap-процедурой с одноразовым случайным секретом.
|
||||
- Разнести demo/dev seed и обязательную production-схему.
|
||||
- Ротировать пароли уже созданных tenant-БД.
|
||||
|
||||
## Высокий приоритет
|
||||
|
||||
Reference in New Issue
Block a user