ZY Action PlatformP2 LightFoundry

P2 LightFoundry — 本体论驱动的企业数据操作系统

对标 Palantir Foundry。核心资产是 Object / Link / Action 本体 + 指标语义层 + Action 唯一写路径;是全矩阵的语义层地基(AIP 的准确率来自 Foundry 的口径)。V5 补齐数据域 / 协作域 / 语义互操作 / 生态工程。服务端口 18081

本体四层 + 版本管理 数据集/质量画像/同步 SQL 工作台 + 编辑态叠加 Notebook/报表/Fusion/流规则 ValueType/函数/MCP/打标 市场/代码仓库/统一搜索

本体四层(Object / Property / Link / Action)

products/foundry/ontology/(models/repository/service/version/impact/yaml/validate)实现本体论引擎完整版:

要素说明关键字段/语义
Object Type稳定标识 api_name + 内部自增 id(对外 rid 语义),主表 + ≤3 补充表、主键列(可复合)api_name / base_table / pk_columns(JSON) / supplementary_sources / object_type_group
Property映射列或计算属性,约束体系 + 同义词 + PII/列级安全标记constraints(JSON: unique/format/range/enum) / is_primary_key / synonyms / is_pii / column_security
Link Type方向(directed/bidirectional/undirected)、基数(1:1/1:N/N:M)、Link 自身属性、N:M 用独立 join 数据集direction / cardinality / join_dataset(JSON) / link_properties(JSON)
Action Type类型化参数 Schema + 提交前校验 + 编辑类型(create/modify/delete/link)+ 逐动作授权 + 强制审计 + 回写声明param_schema(JSON) / validation_rules(JSON) / edit_type / write_back_config(JSON) / idempotency_key_field

可选骨架:Interfaces(对象多态,属性集合匹配 + 统一查询展开)、Shared Property(跨对象复用属性定义)。

版本管理(状态机 / 冲突检测 / 审批)

  • 快照式版本:改动产生新版本快照(不可变历史),ontology_versionssnapshot + base_version(main 基线)+ change_diff(新增/修改/删除的属性、链接、动作 JSON)。
  • 状态机draft → review → merged + 回滚;draft/review 带 base_version。
  • 冲突检测:merge 时聚合 main 自 base_version 后所有版本的 change_diff,同 kind + 同 api_name 且 op 均为 modify/delete → 真冲突阻塞需人工解决;禁止以单版本 diff 判定(防漏检多版本累计修改)。
  • 审批策略approval_policy(最少批准人数 / 禁自我批准 / per-resource reviewer);受保护资源(requires_approval)未过审不得 merged。
  • 影响分析:合入前计算受影响的指标/报表/Agent 检索,merge 返回影响对象列表与 build 建议(POST /ontology/objects/:id/impact)。
克制原则:不做真全局分支(用"草稿快照 + 变更 diff + 审批策略"浓缩);不做规则引擎嵌套。

YAML 声明式导入导出

本体定义可用 YAML 导出/导入(ontology/yaml.go),随 Apollo bundle 分发(契约④)。对象/属性/关系/动作一律用稳定 api_name/rid 引用(不用内部自增 id),字段命名参考 dbt MetricFlow / OSI。导入时两遍扫描解析 link 目标。

  • GET /ontology/objects/:id/export?format=yaml — 导出(Gotham 图 seed、Apollo ontology_yaml 组件的生产者)。
  • POST /ontology/objects/import — 导入(api_name/rid 引用)。

指标语义层(entity / dimension / measure / metric)

products/foundry/metric/ 对齐 dbt MetricFlow / OSI 四层:

要点
Entitymetric_entities决定 grain 的键;每个语义模型恰好一个 is_primary_entity + primary_time_dimension(必填)
Dimensionmetric_dimensionscategorical | time;time 带 granularity(day/month/quarter/year);单数命名
Measuremetric_measures聚合 sum/count/avg/min/max;计数用 expr:1 + agg:sum
Metricmetric_definitions类型分级 simple → ratio → derived → cumulative;口径在指标里算而非预聚合(防口径漂移)

聚合查询 POST /metrics/query(按指标名+维度+粒度),对象级权限在查询层生效;demo seed:customer/order/product + total_gmv/aov 指标。

语义查询 / 防注入 / OOL / SemanticSearch

products/foundry/semantic/(mapper/query/search/ool):

  • 对象 → SQL 翻译引擎:对象定义(映射列 + link)→ SQL;参数白名单防注入(过滤算子/值类型白名单校验)+ link 自动 JOIN + RLS/CLS 注入 + OOL 轻量版。
  • OOL(Ontology Query Language 轻量版,语义冻结):单对象遍历式,一次只针对一个对象类型;跨对象用 traverse(对应 OQL TRAVERSE_TO)进入相邻对象再过滤;禁止点号引用related.field 不允许);过滤算子 eq/neq/lt/lte/gt/gte/is_null/contains/starts_with + and/or/not;查询最多 3 层深。
  • SemanticSearch(契约①):按文本匹配指标/对象/属性返回结构化结果(POST /ontology/semantic-search),供 AIP OAG 检索。
  • Ontology SQL:按稳定 rid/api_name 引用对象类型(列名 = 属性 api_name)。
// OOL 请求示例(对象属性过滤 → SQL 翻译)
{ "object_type": "order",                       // 按 api_name
  "filters": { "status": { "eq": "shipped" }, "amount": { "gte": 1000 } },
  "traverse": [ { "link": "purchased_by", "then_filters": { "level": { "eq": "VIP" } } } ],
  "select": ["id", "amount", "created_date"], "limit": 50 }

Action 写路径安全流水线(唯一写入口)

products/foundry/writepath/(pipeline/schema_validator/idempotency)——所有数据回写必须走 Action Type,无绕过路径(R2 红线)。

执行四模式

模式行为
VALIDATEdry run:走完整安全流水线但不落盘、不执行编辑(对应 /ontology/actions/:name/validate
RUN同步执行:事务内复核校验 → 乐观锁回写 → 编辑态落盘 → 幂等登记 → 状态更新
ASYNC异步执行长任务,立即返回 pending + operation_id,客户端轮询
VALIDATE_AND_EXECUTE先 VALIDATE 复核通过后进入 RUN 事务

安全流水线八步(与只读侧 RLS SQL 改写不同;已核实 2026-09-08)

  1. 参数 Schema 校验:按 ontology_actions.param_schema(JSON Schema)校验入参;
  2. ValidationRules 前置校验:求值动作提交前校验规则(表达式条件),失败聚合提示且失败即阻断(默认安全,规则空时零开销跳过,B7-6);
  3. 逐动作授权(RBAC):校验操作者对 Action 的执行权限;
  4. 记录级写权限:非 SQL 改写,SELECT 主键 + RLS 可见性双计数;无边界写(无 WHERE)整批拒绝;
  5. 属性级写权限三分:Read → EditProperty → EditPolicyProperty,未授权属性返回 null/隐藏值而非整行拒绝;
  6. 幂等与事务:幂等键(AIP 用 action_run_id,Swift 用 UETR)+ DB 事务包裹,重复提交返回首次结果(ACTION_IDEMPOTENT_REPLAY);
  7. 乐观并发控制:回写 SQL 带 updated_at = :expected 条件(毫秒精度,避免秒级盲区);受影响行数 = 0 → HTTP 409 + ACTION_CONFLICT + latest_state,客户端以最新状态重试。
  8. 强制审计:每个终态落底座 audit(异步队列),记录 who/when/prior state(修改前状态快照)。
HTTP 200 ≠ 成功:200 仅代表受理,成功判定以响应体 validation.result == "VALID" 为准。Action 编辑态独立持久到 ontology_edits(prior state + object_version);批量管道回灌覆盖用户编辑是反模式(禁止)。

回写事务模式(write_back_config.mode)

  • pre:先回写源系统,成功后才提交本体变更;回写失败全部本体变更回滚(伪原子,适合 Swift 结算/对账)。
  • post:先提交本体变更与编辑态,再异步副作用;副作用失败不影响已提交(适合通知/审计)。

管道构建器 + 数据质量

products/foundry/pipeline/

  • SQL 步骤管道pipeline_definitions = 数据源 + 有序 SQL 步骤(SELECT/transform)+ 目标对象映射 + 触发方式(手动/定时)。范围:单数据源内 SQL 步骤(跨源 join 不做,与单机优先一致)。
  • 输出写模式append | append_only_new | snapshot_replace | snapshot_replace_and_remove | changelog;对象类型同步优先 changelog / snapshot_replace。
  • 输出期望(质量规则挂输出):未达标不得部署,失败告警 + 隔离。规则类型:null / format / unique / referential 四类,问题跟踪(open/acknowledged/fixed)。
  • API/pipelines CRUD + /pipelines/:id/run + runs/enable/disable;/quality/rules + /quality/issues

数据血缘(四级链路 + Action 写边)

products/foundry/lineage/data_lineage 记录 上游 → 下游 边,MVP 先做四级血缘:源 → 管道 → 对象 → 指标 → 报表(字段级 P2)。

  • Action 写操作是血缘边upstream_type=action,支撑"谁在何时改了什么"回溯与审计(血缘写入点:元数据导入、管道执行、Action 执行、指标定义、报表创建)。
  • 查询 GET /lineage 支持上下行追溯;分支上移除资源破坏下游血缘时告警。

数据集 / 质量画像 / 同步(V5 数据域)

products/foundry/dataset/fd_datasets + fd_dataset_versions 版本快照,行数据动态表 ds_<safe> 列名白名单防注入):从数据源拉数建集(platform_ds)或 CSV/JSON 上传(XLSX 明确报错降级),版本发布与历史追溯、数据预览、基础画像(null 率/distinct/top5)与血缘记录;资源 URI dataset://foundry/<rid>

模块API要点
数据集fd_datasets/fd_dataset_versions/datasets CRUD + upload + /datasets/:id/versions/publish|preview|profile平台内版本化、可寻址数据资产;软删 archived;发布版本并发冲突 409
质量画像fq_profiles/fq_scores/quality/profiles CRUD + /quality/profiles/:id/run|scores完整性/唯一性/有效性/时效性四因子 SQL 下推加权,低于阈值经 bridge 写入 pipeline quality issues 闭环
同步引擎fs_sync_targets/fs_sync_runs/sync/targets CRUD + /sync/targets/:id/run|runsfull=事务内重写;incremental=watermark 断点续传 + 冲突跳过;经 task 任务化,成功链→血缘→质量画像自动跑
数据源自管理平台 data_sources/datasources CRUD + test + import-metadatav5 起 Foundry 独立自管理(foundry_import_metadata 任务化,不再依赖 AIP)

对象化 SQL 工作台 + 编辑态聚合叠加(V5)

products/foundry/query/(translate.go/rest.go):以对象名直查的受限只读 SQL——翻译器将 FROM/JOIN 对象名替换为物理表、属性替换为物理列,注入 RLS/CLS 只读安全、强制外层 LIMIT(无则补 500、上限钳 5000)。安全模型:标识符白名单 + 关键字黑名单(DML/多语句拒绝)+ 字符串参数化。API:POST /ontology/sql/translate|execute

semantic/edit_overlay.go(B1-5):编辑态一致性——行级查询与聚合查询均正确叠加编辑态数据(LoadEditValues/HasRelevantEdits/OverlayAggregate),聚合回退为行级 + 内存聚合(上限 10000,超限 approximate 标注),保障分析口径一致(红线测试通过)。

Notebook / 块式报表 / Fusion / 流规则(V5 协作闭环)

模块API要点
Notebook/notebooks CRUD + /notebooks/:id/cells/:cid/run + /notebooks/:id/run|runs文本/SQL/图表三类单元格混排,逐块或全量运行;SQL 块复用 OntologySQL 安全翻译 + RLS/CLS + 编辑态叠加;chart 块复用引用 SQL 块结果集(不重算)
块式报表/reports CRUD + /reports/:id/run|dispatch|runs + /report-runs/:id/snapshot文本/图表/表格块编排,定时生成快照(scheduler report:<rid>)+ email/站内多渠道分发;报表与指标血缘自动记录(RecordMetricToReport)
实体消解 Fusion/fusion/projects CRUD + /fusion/projects/:id/run|matches + /fusion/matches/:id/confirm|reject规则分桶 + 相似度加权(精确/前缀/编辑距离)→ 阈值外 LLM 复核 → union-find 聚类 → survivorship 选主;结果写回原数据(in_place_edit)或输出数据集(materialize)
流事件化/stream/rules CRUD + /stream/rules/:id/test|deliveries基于 CDC watcher 事件的条件规则(condition 表达式),action 支持 webhook/notification/sync_run/quality_run/writeback(writeback 走 writepath 八步安全流水线不可绕过)
v5 安全加固:NLQ 查数执行前自动注入 RLS/CLS(注入失败拒绝执行);对象查询 visibility 在 traverse/grouped 路径同步生效;审计 ai_decision 分步细化。

ValueType / 本体函数 / MCP / 安全标记 / OWL-SHACL(V5 语义互操作)

能力API要点
标准值类型GET /ontology/value-typesPOST /ontology/value-types/normalize13 类冻结枚举(text/number/integer/decimal/currency/percentage/date/datetime/bool/enum/json/array),自动归一化(text+enum→enum、number+单位→currency/percentage、precision→integer/decimal),dry-run 预览 + confirm 写库
本体函数/ontology/functions CRUD + /ontology/functions/:name/test内置 13 个函数(len/abs/round/min/max/coalesce/if/ifnull/concat/upper/lower/now/date_trunc)+ 用户自定义注册,可被条件表达式与计算属性引用(递归深度 ≤5)
MCP 协议POST /api/v1/mcp(SSE 传输预留)JSON-RPC 2.0 双传输(stdio / HTTP SSE 复用 JWT),工具 5 个(search_objects/query_objects/get_metric/execute_action/get_dataset),execute_action 走 writepath 八步不可绕过、越权 403;默认关闭(foundry.mcp.enabled=false),调用全程审计
安全标记/markings + /markings/bindings + /markings/user-markings对象/列级安全标记(fg_markings)+ 用户授权矩阵(fus_user_markings);隐藏列自动叠加至列级安全(任一来源隐藏即隐藏,NULL AS col)
标准导出GET /ontology/objects/:id/export?format=owl|ttl|yamlGET /ontology/objects/:id/shaclGET /ontology/export/owlOWL/TTL(Class/DatatypeProperty/ObjectProperty/subClassOf)与 SHACL(NodeShape/PropertyShape、基数/枚举由约束推导)标准格式导出,便于外部系统互操作
写入前校验Action.ValidationRules动作执行前自定义校验规则(表达式条件),失败聚合提示且失败即阻断(默认安全);安全流水线为 8 步,此为第 2 道(见 §writepath)

组件市场 / 代码仓库 / 统一搜索 / CLI(V5 生态工程)

能力API要点
组件市场/marketplace/items CRUD + publish/install/installs组件与应用发布、一键安装与跨环境复用(object→YAML 信封、metric/dashboard/app/notebook/fusion 组包),版本 +1 历史保留、下载计数、unlisted 拒绝安装
代码仓库/coderepo/repos|files|revisions + /coderepo/macros/resolveSQL 宏定义({{macro:name}} 展开,SqlWorkbench 与 Notebook 双生效)+ 版本化代码仓库(UNIQUE(repo_id,path),版本覆盖归档,迭代展开 maxMacroDepth=5)
统一搜索GET /nexus/search?q=&scopes=&limit=多 scope 并行 + RRF 融合(1/(60+rank)),同 URI 跨 scope 累加去重;对象级可见性注入;前端顶栏全局搜索框防抖 + URI→路由映射
CLIcmd/actionctl7 子命令(login / ont export|import / dataset / task / metric query / mcp ping),token 存 ~/.actionctl(0600),JSON 输出 + --format table

HTTP API 分组(/api/v1,V5 后 100+ 路由)

分组路径
认证/auth/register|login/me
本体对象/ontology/objects CRUD
版本状态机/ontology/objects/:id/versions|drafts|rollback/ontology/drafts/:vid/review|merge
YAML / 影响分析/ontology/objects/:id/export/ontology/objects/import/ontology/objects/:id/impact
链接 / 动作/ontology/links CRUD、/ontology/actions CRUD、/ontology/actions/:name/validate|execute
语义检索 / 对象查询/ontology/semantic-search/objects/:id/query
指标语义层/metrics CRUD + query/catalog、/metrics/entities + dimensions/measures
管道 / 血缘 / 质量/pipelines + run(任务化)、/lineage/quality/rules|issues|profiles
数据集 / 同步/datasets CRUD + upload/versions/preview/profile、/sync/targets CRUD + run/runs
Ontology SQL / 协作域/ontology/sql/translate|execute/notebooks/reports/fusion/projects/stream/rules
语义互操作/ontology/value-types/ontology/functions/markings/ontology/export/owl/ontology/objects/:id/shacl/api/v1/mcp
生态工程/marketplace/items/coderepo/repos|files|revisions|macros/resolve/nexus/search
系统任务/system/tasks(Foundry 前缀差异)、/scheduler/jobs/scheduler/jobs/:name/runs
数据源 / 通知/datasources(自管理,任务化导入)、/notify/channels/notify/send

统一响应 {code:0, data:...};错误 {code, error}。demo seed:customer/order/product 本体 + GMV/AOV 指标。契约测试 TestOpenAPIContractRoutes 双向对拍 openapi spec 与 gin 路由。