From 9007f0ff45178b7535c2a38b6e38d44628c3210d Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Fri, 14 Aug 2026 12:07:50 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=A1=A5=E5=85=85=20Sense=20=E8=BA=AB?= =?UTF-8?q?=E4=BB=BD=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=8E=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=20(#64)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Local-Development-and-Verification.-.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Local-Development-and-Verification.-.md b/Local-Development-and-Verification.-.md index de0d801..ee6e682 100644 --- a/Local-Development-and-Verification.-.md +++ b/Local-Development-and-Verification.-.md @@ -106,7 +106,7 @@ pnpm --version ## Sense 本地构建与验证 -Sense 后端与前端已由工单 #61 从冻结源码建立。先确认 Go 1.26.5、Node 22.22.1 和 pnpm 9.15.1,再执行: +Sense 后端与前端已从冻结源码建立。先确认 Go 1.26.5、Node 22.22.1 和 pnpm 9.15.1,再执行: ```powershell cd Sense/server @@ -121,7 +121,28 @@ corepack pnpm@9.15.1 test:unit corepack pnpm@9.15.1 build:prod ``` -数据库固定为 PostgreSQL。复制 `Sense/server/config/settings.yml` 到仓库外,填写连接串和至少 32 个字符的随机 JWT 密钥;仓库模板本身不可直接启动生产服务,也不包含默认管理员。迁移和启动命令分别为 `sense migrate -c <配置路径>` 与 `sense server -c <配置路径>`。详细来源与安全约束见 `Sense/LICENSES/SOURCES.md` 和 `Sense/README.md`. +数据库固定为 PostgreSQL。复制 `Sense/server/config/settings.yml` 到仓库外,填写连接串和至少 32 个字符的随机 JWT 密钥;仓库模板本身不可直接启动生产服务。首次运行先执行 `sense migrate -c <配置路径>`,再通过只存在于当前进程的高熵令牌启动服务并创建首位管理员: + +```powershell +$env:SENSE_BOOTSTRAP_TOKEN = Read-Host "输入至少 32 个字符的一次性初始化令牌" +sense server -c <配置路径> + +# 在另一个 PowerShell 中输入相同令牌;不要把真实值写入脚本或命令历史 +$bootstrapToken = Read-Host "输入一次性初始化令牌" +$bootstrapBody = @{ + username = "admin" + password = Read-Host "输入至少 6 个字符的管理员密码" + nickname = "系统管理员" +} | ConvertTo-Json +Invoke-RestMethod -Method Post -Uri "http://127.0.0.1:<端口>/api/v1/bootstrap" -Headers @{ "X-Sense-Bootstrap-Token" = $bootstrapToken } -ContentType "application/json" -Body $bootstrapBody +Remove-Variable bootstrapToken, bootstrapBody +``` + +初始化成功后停止服务,从启动环境中执行 `Remove-Item Env:SENSE_BOOTSTRAP_TOKEN`,再按正常生产方式启动。已有任一用户时初始化接口会拒绝请求。生产登录需要先调用验证码接口并提交验证码;自动化集成验证不得通过关闭生产安全约束来冒充生产结果。 + +身份回归至少覆盖:admin 可管理账户及查看审计;implementation_operator 只能查看实施所需日志和字典支撑数据;site_admin 可维护账户并读取角色、部门、岗位、字典,但不能修改角色或菜单;viewer 不能访问管理接口。还要验证配置/接口管理路由返回 404、短密码被拒绝、6 位全小写密码可用,以及登录/登出/改密/拒绝审计中不含密码、令牌、Cookie 或验证码。身份审计直接写入 PostgreSQL,不依赖通用操作日志数据库开关。 + +详细来源与安全约束见 `Sense/LICENSES/SOURCES.md` 和 `Sense/README.md`。