- 作用域:
api/及其子目录。 - 下述路径默认相对
api/。
- 做后端实现、接口、状态流转、分层边界时:使用
backend-development。 - 做质量评估、回归审计时:使用
qa-evaluation。 - 后端实现判断、新增资源模板和回归门禁不在本文件展开,分别由上述 skill 承载。
按 api/ 目录树顺序阅读和维护:
apps/api-server是 Axum HTTP API 宿主,负责 public / console / runtime route、middleware、response、OpenAPI、loader、policy、inventory、infra bootstrap、route mount 与 boot assembly。apps/plugin-runner是 RuntimeExtension 运行宿主,不承载控制面业务逻辑。crates/access-control放权限目录、内建角色、权限校验。crates/control-plane放业务 service、状态写入口、审计入口、repository trait 与外部端口。crates/domain放领域模型、作用域语义、稳定核心对象。crates/observability放日志、trace 与可观测性基础能力。crates/orchestration-runtime放编排编译、绑定运行时、执行引擎、预览执行器。crates/plugin-framework放插件 manifest / schema / contribution / registry / package 边界。crates/publish-gateway放发布网关边界。crates/runtime-core放 runtime registry、runtime CRUD 核心和 slot engine。crates/runtime-profile放运行目标、locale、profile fingerprint 与插件运行环境快照。crates/storage-durable放平台主存储边界、主存储启动入口与健康检查入口;宿主只消费这里暴露的稳定入口。crates/storage-durable/postgres是storage-postgrescrate,放 PostgreSQL repository impl、查询、事务、migrations、存储层 mapper。crates/storage-ephemeral放非持久 session store、短期协同原语与 ephemeral backend 适配。crates/storage-object放业务文件对象存储 driver 边界;内建local与rustfsdriver。plugins是插件源码工作区和包工作区;host-extensions、sets、templates、packages、installed的生命周期以api/plugins/README.md为准。target是构建产物目录,不手工修改。- 模块级与单元测试放到对应
src/_tests;应用宿主级健康检查、启动冒烟、跨 crate 集成验证放到tests/。 - 同一目录文件接近
15个时收纳子目录;单文件接近1500行时拆职责。
apps/api-server/src/routes是协议层:参数解析、上下文提取、调用 service / action、响应与错误映射、OpenAPI 暴露。- API DTO 字段名优先跟领域模型 / 持久化语义一致;不要为了前端展示创建新的语义别名字段。
apps/api-server/src/middleware是请求链路约束层。crates/control-plane是业务边界;关键写动作从命名明确的 service command 或Resource Action Kernelaction 进入。crates/control-plane/src/ports定义 repository trait 与外部端口。crates/storage-durable/postgres/src/**/*_repository.rs和crates/storage-ephemeral/src/*是存储或短期协同端口实现。- actor / scope 过滤型查询属于持久化查询职责;状态流转、权限决策、审计写入属于
control-plane。 crates/storage-durable/postgres/src/mappers是存储模型与领域模型转换层。- 主仓 durable 后端官方支持 PostgreSQL;外部数据库、SaaS、API 数据源走 runtime extension。
- 业务文件二进制走
storage-object;插件安装包和业务文件属于不同存储域。 - 默认本地业务文件根目录是
api/storage;rustfsdriver 内建但不默认启用。 file_storages是root/system资源;workspace创建和消费可见file_tables。- 存储配置与文件表存储绑定归
root/system管理。 - 文件记录保存实际
storage_id;文件表改绑只影响后续新上传。 - session 显式持有
tenant_id与current_workspace_id。 - 登录结果、session 读取与请求中间件继续向下传递
current_workspace_id。 - 单个请求链路落在一个显式
workspace上下文。 root/system与业务workspace是不同命名面;外部接口与业务语义统一使用workspace。- 数据建模定义的
scope_kind是workspace或system;system使用SYSTEM_SCOPE_ID。 - runtime 物理 scope 列统一使用
scope_id;不使用team/appalias,也不使用team_id/app_id表示 scope。 - Application 领域统一使用
application_id;不新增app_id缩写。 Boot Core负责启动、加载、deployment policy、root/system bootstrap、extension inventory、health/reconcile。HostExtension是 system/root 级可信 host 模块,可定义、替换、增强 host contract;v1 是 trusted native in-process、boot-time activated、restart-scoped。RuntimeExtension实现已注册 runtime slot,例如model_provider、data_source、file_processor。CapabilityPlugin贡献 workspace 用户显式选择的能力,例如 canvas node、tool、trigger、publisher。provider、data source、file processor不是插件主类型,分别是 runtime slot 或 host capability。storage-durable、storage-ephemeral、storage-object是 host contract / implementation kind。storage-ephemeral、cache-store、distributed-lock、event-bus、task-queue、rate-limit-store是宿主基础设施 contract;Redis、NATS、RabbitMQ 等实现是 HostExtension provider。API_EPHEMERAL_BACKEND=redis不是目标架构;Core 不通过 env 分支直接选择 Redis session store。- data-source runtime extension 负责配置校验、连接测试、catalog/schema 发现、预览读取和导入快照输出;权限、secret、preview session、import job 与落盘由宿主和
data-source-platform编排。