Artifact 82fb8b9ac3e54b2046980469be6fb13ed7f7b3122b83bc8400822aafc35fc10f:
- File
backend/.env.example
— part of check-in
[1821522f51]
at
2026-10-23 05:51:23
on branch trunk
— RBAC 权限与多仓数据隔离
- 新增用户、角色、权限点、用户角色、用户授权仓库、登录会话、审计日志表(008_rbac) - 预设五个角色(超级管理员、仓库主管、制单/调度员、打包复核员、库内作业员),按角色限制登录终端 - 账号密码登录,PBKDF2-SHA256 加盐存储,令牌只存哈希,会话按配置过期,连续输错锁定 - 首个超级管理员从 SWIFTFLOW_ADMIN_USERNAME / SWIFTFLOW_ADMIN_PASSWORD 创建,仅在用户表为空时生效 - 除健康检查与登录外所有接口需登录并校验权限点 - 订单、采购单、库位、库存、批次码按授权仓库过滤;收货、上架、出库只能在当前作业仓库进行 - 用户管理、角色查询、审计日志接口;同步、库位、上架、收货、出库写操作记录审计 (user: pluto size: 1356)
# 复制为 backend/.env 后填写。正式环境更换账号时只改这里,不要写进代码。 QL361_USERNAME= QL361_PASSWORD= QL361_BASE_URL=https://22beta.ql361.com/v_22beta/api.cc QL361_ORDER_BEGIN_DATE=2024-01-01 # 订单轮询最短 300 秒。低于这个值会被抬回 300,避免打到来肯被封。 QL361_ORDER_POLL_SECONDS=300 # 任意两次发往来肯(登录、翻页、查明细)的最小间隔,最短 1000 毫秒。 QL361_REQUEST_GAP_MS=2000 # sqlite 或 postgres。当前开发用 sqlite,安装 PostgreSQL 后改为 postgres 并填写 DATABASE_URL。 DATABASE_DRIVER=sqlite DATABASE_PATH=data/swiftflow.sqlite DATABASE_URL=postgres://swiftflow:swiftflow@127.0.0.1:5432/swiftflow SWIFTFLOW_PORT=8080 # 库存只采集这些仓库,逗号分隔,可填仓库编码、助记码或名称。默认总仓。 # 未列入的仓库(如 C2、D3、门店)只保留名称用于显示,不同步其库存和出入库单据。 SWIFTFLOW_STOCK_WAREHOUSES=总仓 # 首个超级管理员。仅在用户表为空时创建一次,之后改这里不会再生效;密码至少 8 位。 SWIFTFLOW_ADMIN_USERNAME= SWIFTFLOW_ADMIN_PASSWORD= # 登录令牌有效小时数(1–720)。 SWIFTFLOW_SESSION_HOURS=12 # 连续输错密码多少次后锁定,锁定多少分钟。 SWIFTFLOW_MAX_FAILED_LOGINS=5 SWIFTFLOW_LOCKOUT_MINUTES=15