# 采购服务 启动前必须显式设置下列环境变量;服务不提供默认管理员账号、密码或会话密钥。 | 变量 | 要求 | | --- | --- | | `CMBUYER_ADMIN_USERNAME` | 非空管理员账号。 | | `CMBUYER_ADMIN_PASSWORD_BCRYPT` | 非空 bcrypt 密码哈希,不接受明文密码。 | | `CMBUYER_SESSION_SECRET` | 至少 32 字节的会话签名密钥。 | | `CMBUYER_COOKIE_SECURE` | 可选;存在时只能精确为 `true` 或 `false`。HTTPS 部署应设为 `true`。 | | `CMBUYER_DATABASE_SOURCE` | 已迁移 SQLite 的显式 data source。 | | `CMBUYER_AUTHORIZATION_TTL` | 一次性授权的正 Go duration,例如 `10m`。 | | `CMBUYER_MAX_TASK_QUANTITY` | 每条任务允许的正整数数量上限。 | | `CMBUYER_MAX_TOTAL_PRICE` | 每条任务允许的规范正数总价上限,例如 `999.99`。 | 示例仅展示变量名,不提供可运行凭据: ```powershell $env:CMBUYER_ADMIN_USERNAME = '<管理员账号>' $env:CMBUYER_ADMIN_PASSWORD_BCRYPT = '' $env:CMBUYER_SESSION_SECRET = '<至少 32 字节的随机密钥>' $env:CMBUYER_COOKIE_SECURE = 'true' $env:CMBUYER_DATABASE_SOURCE = '' $env:CMBUYER_AUTHORIZATION_TTL = '10m' $env:CMBUYER_MAX_TASK_QUANTITY = '99' $env:CMBUYER_MAX_TOTAL_PRICE = '999.99' go run ./cmd/migrate -database $env:CMBUYER_DATABASE_SOURCE up go run ./cmd/server ``` 采购服务会话仅保存在当前进程内;进程重启后既有登录会话会安全失效。 管理员的“开始采购(只创建待付款订单)”只签发一次性授权并创建待付款订单的资格;服务不会自动付款,也不包含任何支付操作。