# openSDLP
**Repository Path**: yqy19970129/open-sdlp
## Basic Information
- **Project Name**: openSDLP
- **Description**: 智能体安全开发与治理平台
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-08-15
- **Last Updated**: 2026-10-19
## Categories & Tags
**Categories**: ai
**Tags**: None
## README
# OpenSDLP · AI 研发与安全自主交付工作台
OpenSDLP 将项目管理、需求设计、智能体开发、构建扫描与审批发布连接在一个工作台中。团队确定目标与授权范围,AI 按任务依赖推进工作;关键设计、代码 Review 和生产审批由有权成员决定,执行结果关联到实际提交、报告与工件。
[本地启动](docs/getting-started.md) · [数据库初始化](docs/database-initialization.md) · [项目自主交付](docs/agent-auto-workflow.md) · [集群安装](deploy/kubernetes/README.md) · [文档索引](docs/README.md)
## 核心能力
| 能力 | 工作方式 |
| --- | --- |
| 项目与需求 | 管理项目成员、仓库和资产,建立需求基线、验收条目与开发任务的关联。 |
| 账号与权限 | 为真实登录账号设置平台角色、启用状态和项目成员权限;智能体角色单独管理。 |
| 专家讨论与设计 | 多智能体围绕需求、架构、开发与安全展开讨论,形成可追溯的设计工件和 Review 待办。 |
| 项目自主交付 | Agent Auto 根据目标规划任务、按依赖派发、核对成果并组织整改,支持暂停和人工接管。 |
| 开发智能体接入 | 通过 Argo 在集群中运行 OpenCode / OpenClaw,或接入外部开发客户端、使用手动 Agent 交付。 |
| 项目工作流 | 可视化或 YAML 编辑项目流水线,固定源码提交,执行检查、镜像构建、扫描与推送。 |
| 安全分析 | 提供 STRIDE 威胁建模、代码质量与漏洞分析、SBOM、策略评估及发现整改;实际工具按项目配置接入。 |
| 审批、发布与追溯 | 关联代码 Review、构建、测试环境、生产审批和发布记录,追溯准确提交、镜像摘要、原始报告及审计。 |
平台使用 AgentScope、FastAPI、SQLAlchemy / PostgreSQL 与 Vue 3 / Element Plus。SonarQube、Argo Workflows、Trivy、NVD、OPA 通过 MCP 工具层接入;Cosign 等供应链检查按实际工作流配置启用。
## 从需求到交付
项目可选择手动协作或 AI 自主推进。自主交付依据项目策略、当前授权及真实执行回执推进,主要链路如下:
```mermaid
flowchart LR
A[项目目标与需求] --> B[专家讨论与澄清]
B --> C[设计与范围 Review]
C --> D[任务计划与依赖]
D --> E[Argo 容器开发
OpenCode / OpenClaw]
D --> F[外部客户端或手动 Agent]
E --> G[固定候选提交与独立检查]
F --> G
G --> H[代码 Review]
H --> I[合入、构建与安全扫描]
I --> J[测试环境与业务验证]
J --> K[生产审批]
K --> L[发布与观测]
```
项目管理员配置允许修改的路径、执行方式、任务与整改次数、时限及用量预留。Token 预留用于调度,不等同于模型供应商的实际用量硬上限。范围歧义和关键设计进入 Review;代码与生产审批保留人工关口,生产回滚也需要审批。
容器开发须使用固定版本、镜像摘要和通过真实验证的 Runner 配置。派发、开发完成、独立检查、Review、构建和发布分别记录;失败与整改保留历史证据。详见[自主交付指南](docs/agent-auto-workflow.md)、[Runner 指南](integrations/agent-runner/README.md)和[开发交付接入](integrations/dev-delivery/README.md)。源码更新不表示已部署的服务或 Runner 镜像已完成升级和验证。
容器开发的代码先由 Runner 在本地创建最终提交和 Git bundle,再由平台核验交付包、推送任务隔离分支并创建 PR。代码 Review 通过后才允许合并,构建使用已核验的最终合并提交。Argo 运行成功、平台收到交付、远端推送、PR 和合并是不同阶段;执行在归档前失败时不会产生可导入的代码提交,平台不会把该任务标记为已合并。
导入阶段的工件挂载故障可由管理员核对旧失败、全部容器停止、许可到期及远端分支后,在原期限与预算内显式恢复一次同提交导入。保留失败和未知历史,不重新调用模型;来源漂移、未知活动执行或候选检查失败继续阻塞,详见[候选导入恢复](docs/agent-auto-workflow.md#候选导入基础设施恢复)。
候选导入、检查、PR 和经批准的合并在等待外部服务时释放数据库连接,写入前后以短事务核对当前来源、权限与准确 Review;单次网络读取失败不会成为执行成功或重新授权的依据。
Gitee 项目使用自主交付时,需要在交付设置中选择项目候选验证工作流及实际构建集群。[Node 候选独立验证模板](integrations/build-templates/candidate-verification/README.md)运行前端依赖安装、类型检查、测试、构建及 Trivy 扫描,保留原始报告。平台按本轮任务、固定候选提交和实际工作流身份核对报告,要求项通过后才创建 PR。新安装会渲染共享模板;已有环境须正常登记或复制项目副本,并在交付设置中绑定。
执行期间可在 Argo 主容器日志查看 OpenCode 的工具调用、命令输出、检查结果和退出原因;实时日志经脱敏处理,原始捕获工件保留完整性和中断标记。v1.10.31 Runner 源码在实时正文达到 2,000,000 字节上限时立即尝试提示,之后按有限预算显示粗粒度进度;完整过程须核对 `agent-events.jsonl` 与最终工件清单。已有镜像须另行构建、扫描与验证,具体日志范围见 [Runner 指南](integrations/agent-runner/README.md)。
## 本地快速启动
### 环境准备
- Python 3.11+。
- Node.js 22.x(至少 22.13)或 24+,以及 npm;当前锁定的前端依赖须满足各包的 `engines` 要求。
- PostgreSQL 用于正式部署;SQLite 保留兼容支持。
- 容器开发、构建和发布另需已接入的 Kubernetes / Argo 环境;本地页面启动不要求先安装这些外部服务。
新环境先获取明确发行标签的代码,下面以 `v1.10.30` 为例;日常开发使用 `develop` 分支。首次初始化需要版本中包含 `src/db/initialization.py` 和完整 `alembic/`,不要仅按仓库默认分支判断功能是否可用。以下为 Windows PowerShell 示例,已有代码及虚拟环境或 Conda 环境可直接在对应仓库根目录使用:
```powershell
git clone --branch v1.10.30 --depth 1 https://gitee.com/yqy19970129/open-sdlp.git open-sdlp
cd open-sdlp
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
npm --prefix frontend ci
```
Linux / macOS 使用 `source .venv/bin/activate` 激活环境,其余安装命令相同。
### 首次安装:自动建表
Git 中已包含 [`src/db/`](src/db/) 的表模型、[`alembic/versions/`](alembic/versions/) 的版本迁移和 [`src/db/initialization.py`](src/db/initialization.py) 的统一初始化入口。目前有 **80 张业务表**,另有迁移版本表 `alembic_version`。运行数据库和业务备份保存在私有运行目录,不作为安装种子提交到 Git;新环境无需复制现有数据库或手工逐张建表。
源码生产部署先准备可连接的专用空 PostgreSQL 数据库与建表权限,再按[数据库初始化指南](docs/database-initialization.md)设置私有连接文件、`OPEN_SDLP_ENV=production`、`AUTH_ENABLED=true`、固定 `AUTH_SECRET`、有效 `RBAC_CREDENTIAL_KEY` 及私有管理员密码文件。初始化和随后启动的 API 使用同一份私有配置;`--profile production` 仅指定本次初始化模式,不会永久切换 API 的环境模式。从仓库根目录执行:
```sh
python -B -m src.db.initialization --profile production --admin-password-file runtime/private/initial-admin-password.txt --report runtime/artifacts/database-initialization/first-install.json
```
命令自动执行结构迁移、建表、创建首次管理员、补齐默认配置,并输出实际表与数据计数报告;成功后再启动下方 API。它负责应用表,不安装 PostgreSQL 服务或创建目标数据库。Kubernetes 安装的 `initialize` 初始化容器会在主应用启动前自动执行同一流程,失败时阻止主应用启动,无需另行手工运行建表命令。
API 启动时也会创建缺失表,但不会据此登记迁移版本或升级已有列、索引和约束,不能代替完整首次初始化。重复安装或已知版本补缺先核对目标库,再显式使用 `--allow-existing`;已有账号密码、配置和业务数据保留。旧库迁移、备份和恢复见[PostgreSQL 指南](docs/postgresql.md),私有连接和凭据不写入源码。
### 启动前后端
在已激活 Python 环境的终端中启动后端:
```sh
python -B -m src.api.main
```
另开终端启动前端:
```sh
cd frontend
npm run dev
```
前端为 ,后端为 ,API 文档为 。前端固定使用 5173,端口占用时直接报错;请求统一通过 `/api` 代理到后端。
也可使用 `scripts/dev/` 中的启动和停止脚本,环境选择与参数见[本地启动指南](docs/getting-started.md)。构建、缓存和运行数据默认位于 `runtime/`,布局与目录覆盖见[运行文件说明](docs/runtime-layout.md)。
### 配置模型与集成
管理员登录后,在「系统设置 → 模型配置」中填写实际服务地址、模型和凭据,通过测试调用后保存。网页运行时使用统一模型配置;`configs/model_config.json` 仅用于旧演示入口。详细设置见[统一模型配置](docs/MODEL_CONFIGURATION.md)。
在项目中登记 Git 仓库、配置成员与交付策略;按需接入 MCP 服务、Argo、Runner 以及测试 / 生产环境。可先使用手动交付,再开启 Agent Auto。项目工作流可从共享模板创建,或由智能体分析固定提交的源码后生成,执行前仍可查看和修改完整配置。
为已有账号授权时,进入「管理 → 权限管理 → 账号授权」,选择真实账号,再分别设置平台权限与项目权限。原 Agent 绑定位于「智能体角色」,用于配置智能体权限。操作规则、权限变化和旧 Token 的生效边界见[账号授权指南](docs/account-permissions.md)。
## 开发与验证
后端测试:
```sh
python -B -m pytest tests/
```
前端类型检查、测试与生产构建:
```sh
npm --prefix frontend run type-check
npm --prefix frontend test -- --run
npm --prefix frontend run build
```
前端构建默认输出到 `runtime/build/frontend/`。基础演示使用 `python -B examples/demo.py`,用途与边界见[示例说明](examples/README.md);实际集成能力以配置和真实执行结果为准。
OpenSDLP 平台自身统一由 Codex 开发和维护,开发约定见 [AGENTS.md](AGENTS.md)。租户项目可选择 Codex、Claude Code、Qoder、WorkBuddy、Cursor、Trae 等开发智能体,接入资源与平台开发环境相互独立。
## 目录与文档
| 位置 | 内容 |
| --- | --- |
| `src/domains/delivery/` | 开发任务、自主交付、项目工作流与环境发布的后端实现。 |
| `frontend/src/domains/delivery/` | 对应的交付页面、API 和业务组件。 |
| `src/agents/`、`src/workflows/`、`src/llm/` | 智能体、编排和模型适配。 |
| `src/api/`、`src/db/`、`src/services/` | API、认证、持久化与共享服务。 |
| `alembic/`、`alembic.ini` | 版本化数据库结构迁移,供统一初始化与数据库升级使用。 |
| `mcp_servers/` | 外部安全与工作流工具的 MCP 连接层。 |
| `integrations/`、`deploy/` | Agent 接入、Runner、CI 工具及集群安装资源。 |
| `configs/` | 配置代码、工作流和产品技能的初始模板。 |
| `runtime/` | 不提交的运行数据、日志、缓存、临时文件和构建产物。 |
| `tests/`、`frontend/` | 后端测试及前端应用与测试。 |
- [全部文档与版本说明](docs/README.md)
- [需求基线流程](docs/requirement-baseline-workflow.md)
- [项目自主交付](docs/agent-auto-workflow.md)
- [项目工作流与构建扫描](docs/project-workflows.md)
- [集群、环境与发布审批](docs/cluster-environment-deployment.md)
- [生命周期工件中心](docs/lifecycle-artifact-center.md)
- [产品技能模板](configs/skills/README.md)
- [仓库目录职责](docs/repository-layout.md)
## 许可证与贡献
本项目使用 [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html "Apache License 2.0"),完整条款见 [LICENSE](LICENSE)。欢迎通过 Issue 反馈问题或提交 Pull Request;提交前请阅读 [AGENTS.md](AGENTS.md),并完成与改动范围相关的验证。