查询与 Driver 引擎

ObjectQL

ObjectStack 内部的基础设施查询引擎

ObjectQL 是 ObjectStack 使用的内部查询引擎与 Driver 契约。它帮助 ObjectStack 应用读取和搜索异构数据源,同时由 ObjectOS 执行身份、权限、审计和 AI 工具边界。它是开发平台和运行平台的基础设施,不是产品中心。

ObjectQL 做什么

面向 ObjectStack 应用和 ObjectOS 运行时执行的可移植数据访问。

统一查询形态

过滤、排序、分页、关联展开、聚合和投影都表达为结构化查询元数据,而不是分散在各个路由里的 SQL 字符串。

Driver 契约

Driver 把 ObjectQL 操作翻译为原生 SQL、MongoDB pipeline、电子表格读取、SaaS API 调用或企业专有协议,同时保持对象契约稳定。

权限感知执行

ObjectOS 在每个 ObjectQL 支撑的操作周围执行租户隔离、行级规则、字段脱敏、审计和 AI 身份。

AI 工具可读

结构化查询让 REST API、ObjectUI 视图、SDK 与 MCP 工具可以暴露安全数据访问,而不是把原始 SQL 交给 AI。

查询层

ObjectQL 留在基础设施层

它描述数据访问意图,由 Driver 翻译到原生系统,再由 ObjectOS 包住权限与审计。

01 请求

视图、API、SDK 或 MCP 工具发起结构化查询

02 查询契约

ObjectQL 表达过滤、分页、关联与投影

03 Driver

翻译到 SQL、文档库、电子表格或 SaaS API

04 治理

ObjectOS 执行租户、字段、行级权限与审计

从可移植查询到原生执行

ObjectQL 描述意图;每个 Driver 用数据源自己的语言执行。

ObjectQL 查询

await objectql.find('customer', {
  where: {
    industry: { eq: 'manufacturing' },
    annualRevenue: { gte: 10000000 }
  },
  sort: [{ field: 'updatedAt', direction: 'desc' }],
  expand: ['accountManager'],
  limit: 50
});

Driver 执行

// PostgreSQL driver
SELECT * FROM customers
WHERE industry = $1 AND annual_revenue >= $2
ORDER BY updated_at DESC
LIMIT 50;

// MongoDB driver
db.customers.aggregate([...]);

// Excel driver
读取 workbook 行,应用过滤,返回 typed records

ObjectQL 放在哪里

当 ObjectStack 应用需要跨数据源的可移植、受治理数据访问时使用 ObjectQL。

企业异构数据联邦

把 Postgres、MongoDB、Excel 与遗留系统挂载到同一个查询契约背后,让应用通过一致对象元数据读取。

自定义 Driver 开发

为专有数据库、SaaS API、主机系统或文件格式实现 Driver,让 ObjectStack 以受治理对象方式暴露它。

AI 数据访问边界

向 Agent 暴露权限感知的列表、搜索、聚合与查找工具,同时保留请求归因和审计轨迹。