可核实的事实
出处是仓库中的文件路径。部署时的具体地域取决于当时的环境变量,不在代码里。
数据库
业务数据存放在 PostgreSQL。生产部署由 docker-compose 中的 db 服务承载,连接串来自 DATABASE_URL 环境变量,仓库不写死主机或地域。
出处:
docker-compose.yml (db service), .env.example (DATABASE_URL)文件存储
上传文件默认存在本地(FILE_STORAGE_PROVIDER 缺省为 local)。切换到 S3 兼容存储时,桶、地域与密钥全部来自环境变量(S3_BUCKET、S3_REGION、S3_ACCESS_KEY_ID),代码不内置地域。
出处:
src/lib/s3-storage.ts (REQUIRED_KEYS, resolveFileStorageProvider)密码
密码使用 bcrypt 哈希,盐轮数为 12。明文密码不入库。
出处:
src/lib/auth.ts (SALT_ROUNDS = 12, hashPassword)传输加密
对外公布的传输加密标准为 TLS 1.2 及以上,写在数据处理协议模板中。
出处:
src/app/trust-center/dpa/page.tsx, src/app/legal/dpa/download/route.ts访问码
生产环境不开放自助注册。注册必须提供管理员发放的访问码或组织邀请;未提供时接口返回 ACCESS_CODE_REQUIRED。访问码的创建与作废都会写入审计日志。
出处:
src/lib/registration-mode.ts (registrationMode), src/app/api/auth/register/route.ts, src/services/access-code-service.ts审计日志
审计日志记录操作、对象、操作者、IP 哈希与时间(AuditLog 模型)。它不是不可变的:超过保留期的记录会被清理任务删除,用户清空本人数据时也会删除其名下的记录。
出处:
prisma/schema.prisma (model AuditLog), src/services/audit-service.ts (cleanup), src/app/api/user/clear-data/route.ts供应商链接
工厂通过邀请链接提交数据,链接即凭证:服务端校验令牌、有效期与状态,并限流。组织侧的管理接口仍要求登录。
出处:
src/middleware.ts (PUBLIC_PATHS: /supplier, /api/supplier-portal)