# 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),并完成与改动范围相关的验证。