REQ-010-1 完成内容: - 创建 6 个数据库表设计(datai_meta_org_config、datai_meta_task、datai_meta_job_execution、datai_meta_component、datai_meta_deploy_history、datai_meta_job_log) - 设计了合理的索引策略 - 对敏感字段进行了加密存储设计 - 表名前缀统一为 datai_meta_ - 所有表包含标准基础字段 REQ-010-2 完成内容: - 补充用户故事和细化验收标准 - 创建架构决策记录(MyBatis Plus 注解 + XML 映射文件混合方案) - 对比了 3 种备选方案 - 分析了决策对系统架构、开发流程、运维管理的影响 - 识别了技术风险、业务风险和实施风险 - 定义了回滚策略和验收标准 文档更新: - 创建 0010-database-table-design.md 架构决策记录 - 创建 0011-entity-mapper-create.md 架构决策记录 - 创建 0020-database-table-design-create.md 变更记录 - 创建 20260117-database-table-design-create.md 会话记录 - 创建 20260117-database-table-design-create-retro.md 复盘报告 - 创建 011-database-table-design-create.md 提示词文档 - 更新 REQ-010-2.md 需求文档 - 更新 docs/index.md 和 CHANGELOG.md
6.8 KiB
6.8 KiB
Prompt First 模板
输入引用
引用相关的 docs 文档链接:
Context Maps
强制列出本次 Prompt 依赖的 Canvas 文件:
- Authentication.canvas - 项目架构视觉化展示
- 相关节点: SessionManager - 会话管理器
- 相关节点: SalesforceLoginServiceImpl - 登录服务实现
- 相关节点: DataiSfLoginHistoryController - 登录历史控制器
- 相关节点: DataiSfLoginSessionController - 登录会话控制器
目标
生成代码以修复 datai-salesforce-auth 模块中的 4 个问题:
- 语法错误修复:修复 DataiSfLoginHistoryController 和 DataiSfLoginSessionController 中的多余右括号
- 密码加密方式调整:将对称加密改为不可逆的 BCrypt 哈希算法
- 敏感信息日志脱敏:对 Session ID、用户 ID 等敏感信息进行脱敏处理
- 请求频率限制:为登录接口添加请求频率限制功能
输出格式
代码示例(语言:Java)
需要生成以下文件和代码:
-
修复语法错误:
- DataiSfLoginHistoryController.java - 修复第 82 行的语法错误
- DataiSfLoginSessionController.java - 修复第 82 行的语法错误
-
密码加密方式调整:
- DataiSfLoginHistory.java - 添加 passwordHash 字段,移除 passwordEncrypted 字段
- SalesforceLoginServiceImpl.java - 使用 BCrypt 加密密码
- DataiSfLoginHistoryMapper.xml - 更新数据库映射
-
敏感信息日志脱敏:
- SalesforceLoginServiceImpl.java - 添加脱敏方法并应用到日志中
- SessionManager.java - 添加脱敏方法并应用到日志中
-
请求频率限制:
- DataISfLoginController.java - 添加 @RateLimiter 注解
- application.yml - 添加频率限制配置
约束
列出使用此提示词时的约束条件:
- 技术栈限制:必须使用 Spring Boot 3.x、MyBatis、BCrypt
- 性能要求:修复后不影响登录接口响应时间,响应时间 < 2 秒
- 安全性要求:
- 密码必须使用不可逆的哈希算法(BCrypt)
- 敏感信息在日志中必须进行脱敏处理
- Session ID 只显示前 8 位
- 请求频率限制:每分钟最多 5 次登录尝试
- 兼容性要求:修复后不影响现有功能,向后兼容
- 代码规范:遵循项目现有的代码风格和命名规范
Rule Set
具体规则:
-
语法错误修复:
- 必须移除多余的右括号
))),改为)) - 必须保持代码的其他部分不变
- 必须移除多余的右括号
-
密码加密方式调整:
- 必须使用
BCrypt.hashpw(password, BCrypt.gensalt())加密密码 - 必须使用
BCrypt.checkpw(password, hash)验证密码 - 必须将
password_encrypted字段改为password_hash - 必须更新所有相关的数据库映射和查询语句
- 必须使用
-
敏感信息日志脱敏:
- 必须创建
maskSensitiveInfo(String info)方法 - 必须对 Session ID、用户 ID 等敏感信息应用脱敏方法
- 脱敏规则:
- 如果字符串长度 <= 8,显示前 2 位 +
****** - 如果字符串长度 > 8,显示前 4 位 +
******+ 后 4 位
- 如果字符串长度 <= 8,显示前 2 位 +
- 必须更新所有记录敏感信息的日志语句
- 必须创建
-
请求频率限制:
- 必须在所有登录接口添加
@RateLimiter注解 - 必须配置频率限制为:每分钟最多 5 次登录尝试
- 必须使用 Redis 存储请求计数
- 必须在配置文件中添加频率限制相关配置
- 必须在所有登录接口添加
验收标准
定义验证输出质量的具体标准:
功能完整性
- 语法错误已修复,代码能够正常编译
- 密码加密已改为 BCrypt,无法直接解密
- 日志中敏感信息已脱敏,Session ID 只显示前 8 位
- 登录接口已添加请求频率限制,每分钟最多 5 次登录尝试
代码正确性
- 所有修改的代码符合 Java 编码规范
- 所有修改的代码符合项目代码风格
- 所有修改的代码通过编译
- 所有修改的代码通过单元测试
文档准确性
- 所有修改的代码都有清晰的注释
- 所有修改的代码都符合需求文档的要求
- 所有修改的代码都符合 ADR 文档的决策
性能指标
- 登录接口响应时间 < 2 秒
- 密码加密/验证性能无明显下降
- 日志脱敏性能无明显下降
- 请求频率限制性能无明显下降
风险
识别使用此提示词可能带来的风险:
输出质量风险
- 风险:生成的代码可能不符合项目代码风格
- 缓解措施:仔细检查生成的代码,确保符合项目规范
技术实现风险
- 风险:BCrypt 加密可能与现有代码不兼容
- 缓解措施:充分测试 BCrypt 加密和验证功能,确保与现有代码兼容
业务风险
- 风险:修改数据库表结构可能影响现有数据
- 缓解措施:创建数据库迁移脚本,确保数据迁移的正确性
时间成本风险
- 风险:修复 4 个问题可能需要较长时间
- 缓解措施:按优先级修复问题,先修复语法错误,再修复安全问题
使用记录
| 日期 | 使用场景 | 输入参数 | 输出结果 | 反馈 | 改进措施 |
|---|---|---|---|---|---|
| 2026-01-16 | datai-salesforce-auth 模块立即修复 | REQ-008, ADR-0008 | 生成修复代码 | 待评估 | 待改进 |