Skip to content

服务运行机制

数据墙DBW 是一个配置驱动的运行时引擎。它读取 JSON 配置文件,连接数据源,将数据库对象映射为实体,然后根据配置启用 REST、GraphQL 和 MCP 能力。整个过程不产生代码文件,不修改数据库结构。

启动流程

当执行 dab start 或容器启动时,引擎按以下顺序完成初始化:

  1. 加载配置:读取 JSON 配置文件,解析 $schemadata-sourceruntimeentities 等顶层字段。
  2. 连接数据库:根据 data-source 中的连接信息建立数据库连接池。
  3. 构建实体模型:根据 entitiesautoentities 配置,将数据库对象映射为内部实体模型。
  4. 启用能力:根据 runtime 配置启动 REST 端点、GraphQL 端点、MCP 服务、缓存、健康检查等模块。
  5. 进入监听:服务就绪,开始接收流量。

请求处理生命周期

请求进入运行时后,无论来自 REST、GraphQL 还是 MCP,都经过统一的处理链:

  1. 协议解析:识别请求的协议类型和目标实体。
  2. 身份识别:从请求头(JWT Token、X-MS-API-ROLE 等)提取身份信息,确定当前请求的角色。
  3. 权限检查:验证该角色在目标实体上是否有执行当前操作的权限。
  4. 字段与策略应用:根据权限配置,过滤不可见字段,追加行级数据策略。
  5. 查询生成:将 API 请求参数(筛选、排序、分页)转换为数据库查询语句。
  6. 数据库执行:执行查询或存储过程调用。
  7. 响应格式化:按协议格式(JSON、GraphQL 响应体)返回结果。

REST、GraphQL、MCP 共享步骤 2-5 的权限和策略引擎,确保多协议间安全规则一致。

运行时配置

runtime 配置块控制服务的全局行为:

配置区域控制内容
pagination默认和最大分页大小
restREST 端点启用、路径前缀、请求体校验
graphqlGraphQL 启用、路径、内省、查询深度限制
host运行模式(开发/生产)、CORS、响应大小限制
cache全局缓存开关和默认 TTL
mcpMCP 服务启用和工具开关
telemetry日志级别和遥测配置
health全局健康检查配置

大多数设置都有合理的默认值,最小配置只需要 data-sourceentities,不写 runtime 也能正常运行。

数据墙DBW 产品文档与开发指南。