CodeForge AI 是一个安全、可审计的 AI 应用生成与发布平台。它把提示词模板、模型路由、生成任务、应用版本、产物文件、修复版本、导出包、市场发布和管理审计放在同一条可追溯链路中。
平台支持两种运行路径:
| 模式 | 用途 | Provider Key |
|---|---|---|
| Rule Mode | 本地演示、CI、确定性验收 | 不需要 |
| AI_DIRECT | 连接真实模型生成应用 | 需要 |
Fresh MySQL 使用 B33__codeforge_mysql_schema.sql 作为 Baseline Migration。全新数据库不会执行 V1 迁移;已存在的历史库继续由 Flyway history 约束,不通过校验时需要人工调查。
下图来自真实 generation_task -> app_version -> generated_file -> preview token 链路。截图任务的 taskType=RULE_GENERATION 表示业务任务类型;实际模型执行来源由 model_call_log 验证为 generationSource=AI_DIRECT,Provider 由 CODEFORGE_SCREENSHOT_EXPECTED_PROVIDER 指定并核验为 providerCode,且 fallbackUsed=false。脚本解析成功事件中的 versionId 后,通过正式静态预览入口加载页面。
这不是手写 mock 页面,也不是文件浏览页截图。预览不会暴露服务端 storage path。
| 工作台 | 生成任务 |
|---|---|
![]() |
![]() |
| 产物浏览 | 应用市场 |
|---|---|
![]() |
![]() |
| 管理概览 | 模型路由 |
|---|---|
![]() |
![]() |
| 提示词版本 | 模型调用审计 |
|---|---|
![]() |
![]() |
- Prompt Template V1/V2:生成请求显式绑定模板版本,异步执行和重试保持固定版本。
- Model Gateway:支持 Rule Mode、AUTO、PIN 和 AI_DIRECT 路由。
- Model Call Audit:记录模板身份、调用状态、token、耗时和 prompt fingerprint,不存储完整系统 Prompt。
- App Version:每次生成创建独立应用版本和文件清单。
- Artifact Repair:修复历史产物时创建新版本,不覆盖源版本。
- Static Preview:通过 preview token 加载生成文件,不暴露本地存储路径。
- Export Package:导出包按 app/version/package 绑定并校验路径边界。
- Marketplace:发布条目固定
versionId,读取侧检查 archived/unpublished 状态。 - Admin:用户、Provider、Prompt、模型调用和审计日志集中治理。
| 角色 | 能力 |
|---|---|
| Anonymous | 访问公开市场页面和公开预览,不能读取私有应用 |
| User | 创建工作区、应用、生成任务、预览和导出自己的产物 |
| Editor | 维护被授权工作区和应用 |
| PLATFORM_ADMIN | 管理 Provider、Prompt Template、用户、审计和系统指标 |
flowchart LR
UI[Vue 3 Frontend] --> API[Spring Boot API]
API --> Auth[JWT and RBAC]
API --> Task[Generation Task Service]
Task --> Gateway[Model Gateway]
Gateway --> Rule[Rule Provider]
Gateway --> AI[External AI Provider]
Task --> Version[App Version Service]
Version --> Store[Artifact Storage]
Version --> Preview[Static Preview]
Version --> Export[Export Package]
API --> Market[Marketplace]
API --> Admin[Admin Audit]
API --> DB[(MySQL B33 Baseline)]
API --> Redis[(Redis)]
更多细节见 docs/architecture.md。
sequenceDiagram
participant U as User
participant API as API
participant T as Generation Task
participant G as Model Gateway
participant V as App Version
participant P as Preview
U->>API: POST /generation-tasks
API->>T: persist templateId/versionId and payload
T->>G: load pinned template version
G-->>T: generated files
T->>V: create app_version and generated_file rows
T-->>API: TASK_SUCCESS with versionId
U->>API: POST /apps/{appId}/versions/{versionId}/preview-token
U->>P: GET /static-preview/{versionId}/index.html
- 所有私有对象读取都校验 owner/workspace/app/version/package 绑定。
- Admin 权限只扩大可见性,不绕过对象边界和状态校验。
- Preview token 绑定 version,不接受 storage path。
- 导出包路径执行逐段校验、normalize 和 root boundary 检查。
- 审计日志记录动作和身份,不记录 token、secret、完整 Prompt 或本地路径。
- 未修复安全漏洞只通过 GitHub Private Vulnerability Reporting 报告。
git clone https://github.com/18307519324az/CodeForge-AI.git
cd CodeForge-AICopy-Item .env.example .env.local.env.local 已被 .gitignore 忽略。
必须修改:
MYSQL_ROOT_PASSWORDMYSQL_PASSWORDDB_PASSWORDJWT_SECRETCODEFORGE_CREDENTIAL_MASTER_KEY
无真实模型 Key 时:
CODEFORGE_FORCE_RULE_ONLY=true
AI_PROVIDER=rule使用真实模型时:
CODEFORGE_FORCE_RULE_ONLY=false
AI_PROVIDER=auto并配置对应 Provider Key。
docker compose --env-file .env.local up -d mysql redispowershell -File .\scripts\db\bootstrap-fresh-database.ps1 `
-EnvFile .env.local `
-ConfirmCreate默认只初始化已经存在的空数据库。若目标数据库不存在,脚本返回 TARGET_DATABASE_DOES_NOT_EXIST;只有显式传入 -CreateDatabase 且 .env.local 同时提供 DB_ADMIN_USERNAME 与 DB_ADMIN_PASSWORD 时,脚本才会使用管理员凭据创建数据库并授予最小权限,随后仍使用 DB_USERNAME / DB_PASSWORD 运行 Flyway。
期望输出包含:
B33_BASELINE_APPLIED
FLYWAY_VALIDATE_PASS
SCHEMA_STATUS=READY
第二次运行已初始化数据库时输出:
ALREADY_READY
SCHEMA_STATUS=READY
scripts/db/apply-local-migrations.ps1 仅用于人工确认后的 EXPERIMENTAL_LEGACY_RECOVERY,不是 Fresh DB 初始化入口。
Windows:
powershell -File .\scripts\dev-start.ps1 `
-Profile local `
-EnvFile .env.local `
-BackendPort 8150 `
-FrontendPort 5182Linux/macOS:
ENV_FILE=.env.local PROFILE=local BACKEND_PORT=8150 FRONTEND_PORT=5182 ./scripts/dev-start.sh
./scripts/dev-status.sh
./scripts/dev-stop.sh访问:
- Frontend: http://127.0.0.1:5182
- Health: http://127.0.0.1:8150/api/actuator/health
全新数据库中的第一个注册用户会获得 PLATFORM_ADMIN。
本地演示推荐 Rule Mode。真实模型需要在 .env.local 配置 Provider Key,并通过管理端 Provider Routing 控制 AUTO/PIN 策略。不要把真实 Key 写入代码、日志、Issue、截图或提交。
mvn test
Push-Location frontend
npm ci
npm run type-check
npm run test
npm run build
Pop-Location
node --test scripts/release/**/*.test.mjs
powershell -File scripts/db/bootstrap-fresh-database.Tests.ps1
powershell -File scripts/db/check-local-schema.Tests.ps1
powershell -File scripts/lib/EnvFile.Tests.ps1
bash scripts/check-compliance.sh| 路径 | 说明 |
|---|---|
src/main/java |
Spring Boot API、应用服务、领域模型、持久化 |
frontend |
Vue 3 前端 |
sql/migrations |
通用迁移 |
sql/mysql-local |
MySQL 正式增量迁移 |
sql/mysql-baseline |
Fresh MySQL B33 Baseline |
scripts/db |
schema gate、fresh bootstrap、legacy recovery |
scripts/release |
发布截图与文档 gate |
docs |
架构、产品导览、部署、排障和安全模型 |
- Docker Compose 只提供 MySQL 与 Redis 基础设施,本地后端和前端仍由脚本启动。
- 仓库不提供公开托管 demo。
- AI_DIRECT 需要用户自行配置 Provider Key。
- Rule Mode 用于确定性本地演示,不代表真实模型输出质量。
- 增强导出包签名与校验。
- 扩展 Marketplace 审核流。
- 增加更多 Provider 运行时指标。
- 提供可选的生产部署参考。
MIT License,见 LICENSE。
18307519324az









