feat(bootstrap): первичная настройка инстанса и CLI-команды

- internal/bootstrap: создание инстанс-админа, главного сервера, ролей
  «Администратор» и «Пользователь» (all permissions / дефолтный набор §6.3),
  общей текстовой комнаты; повторный запуск идемпотентен
- админ получает флаг is_instance_admin и системный бейдж instance_admin
- CLI: glchat bootstrap-admin, reset-password, make-admin, remove-admin
  (работают внутри контейнера через DATA_DIR)
- auth: UserByEmail, SetPassword (отзывает сессии), RegisterAdmin (в обход
  флага регистрации — bootstrap выполняет установщик)
- тесты: создание админа и главного сервера, идемпотентность, автовступление
  нового пользователя с ролью @user
This commit is contained in:
2026-09-19 21:37:13 +03:00
parent f61751ed26
commit c0537d3c17
6 changed files with 699 additions and 0 deletions
+5
View File
@@ -118,6 +118,11 @@ linters:
- path: "internal/store/"
linters:
- gosec
# CLI печатает результат команд пользователю (AGENT.md 10.7): это не логи,
# а контракт вывода, поэтому fmt допустим только в cmd/.
- path: "^cmd/"
linters:
- forbidigo
- path: "(^|/)internal/database/sqlc/"
linters:
- revive