Persist runtime config in app db and seed from env

This commit is contained in:
2026-04-20 15:56:10 +02:00
parent 3f7c9e43d9
commit 179aae264e
21 changed files with 921 additions and 125 deletions
+1
View File
@@ -41,6 +41,7 @@
- Pydantic schemas
- `services/`
- 业务服务层
- 当前已迁入 config page 的 DB 持久化逻辑
- `integrations/`
- 外部系统适配层
- 当前已迁入 Home Assistant outbound adapter
+13 -3
View File
@@ -34,6 +34,7 @@
- `auth_users`
- `auth_sessions`
- `app_config`
当前没有把 auth 数据和 `location` / `poo` DB 混放。
@@ -44,6 +45,14 @@
当前没有 legacy app DB,所以这一版脚本只负责初始化新库,不负责 legacy adoption。
`app_config` 现在承接运行时配置持久化。
其中:
- `.env` 负责 bootstrap / fallback
- `app_config` 表负责运行时配置覆盖
- 登录密码仍然属于认证数据,使用 Argon2 哈希,不存进 `app_config`
## 首次启动与 bootstrap
如果 auth DB 中还没有任何用户,应用启动时会要求:
@@ -89,8 +98,9 @@
当前这轮只保护了页面入口:
- `GET /admin`
- `POST /admin/change-password`
- `GET /config`
- `POST /config`
- `POST /config/change-password`
- `POST /logout`
相关流程:
@@ -98,7 +108,7 @@
- `GET /login`
- `POST /login`
未登录访问 `/admin` 时会被重定向到 `/login`
未登录访问 `/config` 时会被重定向到 `/login`
## 下一步不在本轮内