阅读时间:1 分钟
0 字

项目结构 ​

仓库采用 Monorepo。顶层目录表示不同交付物和所有权;只有 apps/ 与 services/ 下的应用或服务是部署候选,packages/ 是共享代码,contracts/ 是机器可读契约。

text
ontology-platform/
├── apps/
│   ├── ontology-console/          # React + shadcn/ui 管理端(待开发)
│   └── ontology-docs/             # VitePress 文档站(已运行)
├── services/
│   ├── ontology-api/              # REST / OpenAPI 入口
│   ├── ontology-registry/         # 模型草稿、校验和版本发布
│   ├── ontology-runtime/          # 语义查询与跨源读取
│   ├── ontology-integration/      # 连接器、CDC、ETL 和虚拟化
│   ├── ontology-actions/          # 规则、审批、回写和补偿
│   ├── ontology-policy/           # RBAC、ABAC、ReBAC 决策
│   ├── ontology-mcp/              # MCP 与 Tool Registry
│   ├── ontology-control-plane/    # 租户、订阅、配额和计费
│   └── ontology-lineage/          # 血缘、证据和执行事件
├── packages/
│   ├── ontology-core/             # 公共元模型类型与不变量
│   ├── ontology-connector-spi/    # 连接器接口和能力声明
│   ├── ontology-connectors/       # JDBC、HTTP、CDC 适配器
│   ├── ontology-event-model/      # 从事件契约生成的类型
│   ├── ontology-auth-context/     # 租户、主体和委托上下文
│   ├── ontology-evidence-model/   # 证据引用和血缘事件类型
│   └── ontology-observability/    # 追踪、指标和日志适配
├── contracts/
│   ├── openapi/                   # REST API 定义
│   ├── events/                    # 领域与执行事件
│   ├── schemas/                   # 元模型和交换 Schema
│   └── mcp/                       # MCP 工具输入输出 Schema
├── infra/
│   ├── local/                     # 本地依赖环境
│   ├── deploy/                    # 部署清单
│   ├── migrations/                # 迁移组织入口
│   └── observability/             # 采集、面板和告警
├── tests/
│   ├── contract/                  # 契约兼容性
│   ├── integration/               # 服务与依赖集成
│   ├── e2e/                       # 读取、回写和证据闭环
│   └── fixtures/                  # 模拟数据源和数据
├── docs/                          # 对外文档唯一正文
└── .agents/                       # 项目内 Codex 工作流程

为什么共享包不与 Console 同级 ​

apps/ontology-console/ 是可构建和部署的前端应用;packages/ontology-connector-spi/ 是后端服务编译时依赖,不独立运行。它们位于不同顶层目录,目的是区分部署单元与共享库,而不是表示重要性差异。

服务内部结构 ​

Java 服务采用一致结构:应用入口、领域、用例、端口和基础设施适配器分层。具体包名在实现前通过 ADR 固化,避免空目录先绑定错误设计。

text
services/ontology-runtime/
├── pom.xml
└── src/
    ├── main/
    │   ├── java/.../
    │   │   ├── application/       # 用例与编排
    │   │   ├── domain/            # 领域模型与规则
    │   │   ├── ports/             # 入站与出站接口
    │   │   └── adapters/          # HTTP、数据库、消息和连接器适配
    │   └── resources/
    └── test/java/.../

依赖规则 ​

  • 服务不能直接依赖另一个服务的实现或数据库。
  • packages/ 只放稳定的跨服务类型和接口,不承载共享业务状态。
  • 对外和跨服务类型从 contracts/ 生成,生成物不得手工修改。
  • 迁移脚本由数据所有者服务维护,infra/migrations/ 只负责部署顺序和入口。
  • docs/ 解释行为和架构;实现 README 说明如何构建和维护对应代码。