chore: 准备后端开源安全状态
This commit is contained in:
@@ -40,12 +40,11 @@ pnpm prisma:seed
|
||||
- 如需紧急跳过迁移,可在服务器环境中设置 `PRISMA_MIGRATE_DEPLOY_ENABLED=false`,但不能在存在 schema 变更的版本长期使用该开关。
|
||||
- 新增表或字段时必须提交新的 `prisma/migrations/<timestamp>_<name>/migration.sql`,不要再用手工 SQL 直接改生产库。
|
||||
|
||||
## 内置账号
|
||||
## 账号初始化
|
||||
|
||||
- 超级管理员账号:`zhanxi`
|
||||
- 本地开发默认超级管理员初始密码:`zx123456@`。
|
||||
- 生产环境必须通过服务器环境变量 `SUPER_ADMIN_INITIAL_PASSWORD` 提供超级管理员初始密码;未配置时服务会拒绝使用公开默认密码初始化。
|
||||
- 普通成员初始密码:`111111`
|
||||
- 超级管理员初始密码必须通过环境变量 `SUPER_ADMIN_INITIAL_PASSWORD` 提供;源码不保存固定默认口令。
|
||||
- 普通成员创建或重置密码时,后端会生成一次性临时密码并仅在本次接口响应中返回给超级管理员。
|
||||
|
||||
超级管理员初始化配置集中在 `src/auth/auth.constants.ts`、`prisma/seed.js` 和服务器环境变量。服务启动和种子数据只负责确保超级管理员账号存在并保持最高权限;如果超级管理员已修改密码,后续初始化不会覆盖密码。
|
||||
|
||||
@@ -55,7 +54,7 @@ pnpm prisma:seed
|
||||
pnpm reset:super-admin-password
|
||||
```
|
||||
|
||||
该命令面向已构建的服务器部署目录,会自动读取当前目录的 `.env.production`。生产环境必须临时设置 `SUPER_ADMIN_RESET_PASSWORD` 后执行命令,脚本不会输出明文密码。本地开发未设置该变量时仍可回退到开发默认密码,源码调试可先执行 `pnpm build`,或使用 `pnpm reset:super-admin-password:dev`。
|
||||
该命令面向已构建的服务器部署目录,会自动读取当前目录的 `.env.production`。执行前必须临时设置 `SUPER_ADMIN_RESET_PASSWORD`,脚本不会输出明文密码。源码调试可先执行 `pnpm build`,或使用 `pnpm reset:super-admin-password:dev`。
|
||||
|
||||
## 关键接口
|
||||
|
||||
@@ -64,9 +63,9 @@ pnpm reset:super-admin-password
|
||||
- `POST /auth/change-password`:修改当前登录账号密码。
|
||||
- `POST /auth/forgot-password`:普通成员忘记密码,通知超级管理员处理。
|
||||
- `GET /members`:超级管理员查询成员列表和项目权限。
|
||||
- `POST /members`:超级管理员创建普通成员,初始密码固定为 `111111`。
|
||||
- `POST /members`:超级管理员创建普通成员,返回一次性临时密码。
|
||||
- `PATCH /members/:id/permissions`:超级管理员更新普通成员项目权限。
|
||||
- `POST /members/:id/reset-password`:超级管理员将普通成员密码重置为 `111111`。
|
||||
- `POST /members/:id/reset-password`:超级管理员为普通成员生成一次性临时密码。
|
||||
- `PATCH /members/:id/status`:超级管理员启用或禁用普通成员。
|
||||
- `GET /messages`:超级管理员查询消息通知。
|
||||
- `POST /messages/:id/handled`:超级管理员将消息标记为已处理。
|
||||
@@ -109,8 +108,8 @@ pnpm reset:super-admin-password
|
||||
|
||||
- `AUTH_TOKEN_SECRET`:登录 token 签名密钥。
|
||||
- `AUTH_TOKEN_TTL_SECONDS`:登录 token 有效期,默认 43200 秒。
|
||||
- `SUPER_ADMIN_INITIAL_PASSWORD`:生产环境必填的超级管理员初始化密码;本地开发不设置时才使用默认值。
|
||||
- `SUPER_ADMIN_RESET_PASSWORD`:服务器重置脚本使用的一次性超级管理员重置密码;生产环境执行重置时必填。
|
||||
- `SUPER_ADMIN_INITIAL_PASSWORD`:超级管理员初始化密码,服务启动或执行种子数据时必填。
|
||||
- `SUPER_ADMIN_RESET_PASSWORD`:服务器重置脚本使用的一次性超级管理员重置密码,执行重置时必填。
|
||||
- `SECRET_ENCRYPTION_KEY`:服务端密钥加密密钥,生产环境保存 Agent 密钥时必须配置。
|
||||
- `DATABASE_URL`:MySQL 连接地址。
|
||||
- `USE_DATABASE_READS`:是否启用 Prisma 数据读写。
|
||||
@@ -134,3 +133,7 @@ Agent 不是通用聊天入口,只支持运维工作流:
|
||||
- 事故复盘草稿
|
||||
|
||||
普通成员使用 Agent 时必须绑定自己有权限访问的项目。Agent 调用只读,不会触发发布、修改 Jenkins、修改 Gitea 或暴露密钥。
|
||||
|
||||
## 开源许可
|
||||
|
||||
本仓库使用 MIT License。提交公开仓库前请确认 `.env`、部署密钥和真实第三方 token 未进入 Git 历史或提交内容。
|
||||
|
||||
Reference in New Issue
Block a user