Files
foka-ci/docs/.meta/templates/design-template.md
hurole d22fdc9618 feat: 实现环境变量预设功能 & 移除稀疏检出
## 后端改动
- 添加 Project.envPresets 字段(JSON 格式)
- 移除 Deployment.env 字段,统一使用 envVars
- 更新部署 DTO,支持 envVars (Record<string, string>)
- pipeline-runner 支持解析并注入 envVars 到环境
- 移除稀疏检出模板和相关环境变量
- 优化代码格式(Biome lint & format)

## 前端改动
- 新增 EnvPresetsEditor 组件(支持单选/多选/输入框类型)
- 项目创建/编辑界面集成环境预设编辑器
- 部署界面基于预设动态生成环境变量表单
- 移除稀疏检出表单项
- 项目详情页添加环境变量预设配置 tab
- 优化部署界面布局(基本参数 & 环境变量分区)

## 文档
- 添加完整文档目录结构(docs/)
- 创建设计文档 design-0005(部署流程重构)
- 添加 API 文档、架构设计文档等

## 数据库
- 执行 prisma db push 同步 schema 变更
2026-01-03 22:59:20 +08:00

117 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 设计文档模板
summary: 记录一个功能/模块的设计方案、权衡与落地计划(建议配套 ADR
owners:
- team: <team>
reviewers:
- <name-or-team>
status: draft
date: 2026-01-03
version: 0.1.0
related:
- adr: docs/architecture/adr-xxxx-<slug>.md
- pr: <link>
- issue: <link>
---
# 设计文档:<标题>
## 1. 背景Context
- 当前问题是什么?为什么现在要做?
- 相关现状:已有模块/接口/数据模型(附链接)
- 约束:技术栈、部署方式、团队边界、时间/人力
## 2. 目标Goals
- [ ] 目标 1可验证
- [ ] 目标 2可验证
## 3. 非目标Non-goals
- 不做什么(防止范围膨胀)
## 4. 需求与范围Requirements & Scope
- 用户/角色谁会用例如管理员、开发者、CI runner
- 功能需求:
- R1:
- R2:
- 非功能需求:性能、可用性、可维护性、可观测性
## 5. 方案概览High-level Design
- 用 5-10 行描述整体方案(模块、数据流、调用链)
- 关键选择:为什么选这个方案?
## 6. 详细设计Detailed Design
### 6.1 接口/API 设计
- 新增/变更端点(路径、方法、权限、请求/响应示例)
- 错误码与错误语义(与 `BusinessError` 对齐)
### 6.2 数据模型/数据库
- Prisma model 变更(字段、索引、迁移策略)
- 数据一致性与幂等策略(例如:重试/重复提交)
### 6.3 任务/队列/异步处理(如有)
- 队列模型:入队、出队、并发、重试、死信/失败处理
- 状态机:状态枚举与迁移
### 6.4 配置与环境变量
- 新增 env默认值、是否敏感、是否需要重启
### 6.5 可观测性
- 日志关键日志点、traceId/requestId如有
- 指标:成功率、延迟、队列长度、失败原因分布
- 告警P0/P1 触发条件
### 6.6 安全与权限
- 认证是否要求登录session
- 授权:角色/资源权限(项目级、流水线级)
- 数据安全敏感信息、token、日志脱敏
## 7. 影响与权衡Trade-offs
- 性能影响
- 运维影响
- 对现有接口/调用方的影响
- 技术债与后续演进
## 8. 兼容性与迁移Compatibility & Migration
- 是否 breaking change
- 迁移步骤DB、配置、数据回填
- 回滚策略
## 9. 测试计划Test Plan
- 单测:覆盖哪些模块
- 集成测试:关键链路(如:创建部署 -> 入队 -> 执行 -> 状态更新)
- 手工验证:步骤清单
## 10. 发布计划Rollout Plan
- 分阶段:灰度/开关/逐步放量(如有)
- 监控指标与验收标准
## 11. 备选方案Alternatives Considered
- 方案 A为什么不用
- 方案 B为什么不用
## 12. 风险与开放问题Risks & Open Questions
- 风险 1
- 问题 1需要谁来决定/何时决定)
## 13. 附录Appendix
- 相关链接控制器、DTO、Prisma schema、PR 等