OpenMetadata Domo Pipeline 连接器配置与使用指南:Client ID、Secret Token 与元数据提取实战

发布时间:2026/9/15 18:32:15
OpenMetadata Domo Pipeline 连接器配置与使用指南:Client ID、Secret Token 与元数据提取实战 OpenMetadata Domo Pipeline 连接器配置与使用指南Client ID、Secret Token 与元数据提取实战【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata本篇指南围绕 OpenMetadata 仓库中 Domo Pipeline 连接器的官方字段说明文档openmetadata-ui/src/main/resources/ui/public/locales/en-US/Pipeline/DomoPipeline.md展开系统讲解 Domo 数据流DataFlow/Pipeline接入 OpenMetadata 的前置要求、全部连接参数含义并结合 ingestion 侧的连接处理器、拓扑实现与单元测试说明每个配置项在源码中的实际作用。读完本文你将能够独立在 OpenMetadata 中正确填写 Domo Pipeline 服务连接信息理解元数据与运行状态Pipeline Runs的提取原理并复现连接测试与拓扑级单测。Domo Pipeline 连接器是什么Domo 是一款商业智能与数据集成平台其中的 DataFlow数据流本质上是可调度的数据处理管道。OpenMetadata 通过DomoPipeline服务类型将该类管道作为 Pipeline 实体纳入元数据目录实现管道Pipeline与任务Task实体的元数据同步管道每次执行execution / run的状态提取并映射为 OpenMetadata 的PipelineStatus通过instanceDomain拼接管道详情页的sourceUrl实现从元数据界面一键跳转到 Domo 实例。从源码结构看该连接器由三部分构成服务规格定义将元数据源与连接类绑定、连接处理器负责建连与连接测试、拓扑源实现DomopipelineSource负责提取管道与运行状态。此外连接配置 JSON Schema 定义了全部字段、默认值与必填约束。Requirements前置要求官方文档明确进行元数据摄取前必须为提供的 Client ID 至少授予data相关 scope作用域。scope 的作用范围决定了该 Client 能否访问 Domo 官方 API 中的元数据接口若 scope 缺失连接测试或摄取将因权限不足而失败。关于 Domo 侧 API 认证与 scope 的具体说明请以 Domo 开发者门户的 API Authentication 文档为准原文档中该部分为外链此处不再重复给出 URL。在 OpenMetadata 侧你需要准备的材料对应下文 Connection Details 中的五个参数Client ID、Secret Token、Access Token、API Host 与 Instance Domain。Connection Details五个连接参数详解Client IDclientIdDomo 应用的客户端标识符用于 Domo 官方 API 的认证。它必须与Secret Token一同填写二者配合用于从 Domo 官方 API 提取元数据。在 JSON Schema 中该字段为string类型属于必填项见required数组。如何获取 Client ID原文档指向 Domo 数据库连接器的 Troubleshoot 章节How to find Client ID此处不再展开。Secret TokensecretToken连接 Domo 所需的密钥令牌与 Client ID 配对使用。在 Schema 中它带有format: password标记意味着 UI 中会以密码框形式展示、传输与存储时也会按敏感信息处理。同样属于必填项。Access TokenaccessToken用于连接 Domo 实例的开发者令牌Developer Token。与上面两个参数不同它的用途是对官方 API 不支持的端点如 Cards、Pipeline Runs直接从实例自动化提取元数据。在 DomoClient 实现 中可以看到它的实际用法self.headers DEFAULT_HEADERS.copy() if self.config.accessToken: self.headers[X-DOMO-Developer-Token] self.config.accessToken.get_secret_value()即 Access Token 会以X-DOMO-Developer-Token请求头随自定义 HTTP 请求发送用于访问content/v1/cards、dataprocessing/v1/dataflows等基于实例域名的私有 API 端点。Schema 中它同样是password格式但不属于必填项——不过若缺失Pipeline Runs 状态的提取将无法工作见下文“运行状态提取”。原文档中获取 Access Token 的方法同样指向 Domo 数据库连接器的 Troubleshoot 章节Where to find Access Token。API HostapiHost连接 Domo 实例的 API 主机名默认值为api.domo.com。在 Schema 中该字段带有expose: true标记表示会在 UI 中公开显示并声明了默认值。绝大多数情况下保持默认即可。Instance DomaininstanceDomain连接 Domo 实例 UI 的完整 URL例如https://your.domo.com。Schema 中它是uri格式的必填项。它的作用在源码中有两处体现DomoClient 初始化 中clean_uri(self.config.instanceDomain)被用作自定义 REST 客户端的base_url所有私有端点请求都发往该域名DomopipelineSource.get_source_url 用它拼接管道详情页return SourceUrl( f{clean_uri(self.service_connection.instanceDomain)}/datacenter/dataflows/ f{pipeline_id}/details#history )即生成的 Source URL 形如https://your.domo.com/datacenter/dataflows/pipeline_id/details#history直接定位到该数据流的执行历史页。pipelineFilterPattern 与 supportsMetadataExtractionSchema 附加能力除 UI 文档展示的五个字段外连接 Schema 还声明了两个能力字段pipelineFilterPattern基于正则表达式的管道过滤模式用于在摄取时排除不需要的管道supportsMetadataExtraction标记该服务类型支持元数据提取。required数组最终约束为[clientId, secretToken, instanceDomain]即 Access Token 与 API Host 在创建连接时可以为空或保持默认。源码级实现连接如何建立、测试与提取连接构建与连接测试连接处理器 的DomoPipelineConnection继承自BaseConnection_get_client()通过DomoClient(connection)构建客户端任何异常都会被包装为SourceConnectionException抛出test_connection()将connection.get_pipelines()封装为名为GetPipelines的测试步骤再交由通用的test_connection_steps执行默认超时时间为THREE_MIN3 分钟。这意味着“测试连接”按钮的实际行为就是调用 Domo 的dataprocessing/v1/dataflows接口并确认能返回管道列表从而验证 Client ID、Secret Token以及实例域名的有效性。单元测试 test_connection.py 验证了该类确实继承自BaseConnection、client属性会调用DomoClient构建器以及test_connection会进入统一的测试步骤框架。管道元数据提取DomopipelineSource继承自PipelineServiceSource核心方法包括get_pipelines_list()调用self.connection.get_pipelines()即 DomoClient.get_pipelines请求dataprocessing/v1/dataflows端点并逐个 yieldyield_pipeline()以管道id作为 OpenMetadata 实体名构造CreatePipelineRequest将 Domo 的 DataFlow 建模为包含单个Task的 Pipeline并附带displayName、description、sourceUrl与创建时间yield_pipeline_lineage_details()显式注释 Lineage not implemented即该连接器当前不提取血缘。运行状态提取依赖 Access Tokenyield_pipeline_status()调用 DomoClient.get_runs请求dataprocessing/v1/dataflows/{workflow_id}/executions?limit100offset0该私有端点依赖X-DOMO-Developer-Token这正是 Access Token 的用武之地随后将每次执行的beginTime、endTime与state映射为PipelineStatus/TaskStatus。状态映射见 metadata.pySTATUS_MAP { success: StatusType.Successful.value, failure: StatusType.Failed.value, queued: StatusType.Pending.value, }未知状态如SUCCESS大写、ENABLED等会走STATUS_MAP.get(run_state.lower(), StatusType.Pending.value)兜底为 Pending。拓扑级单元测试 test_domopipeline.py 使用包含lastExecution含state: SUCCESS、时间戳的真实模拟数据验证了管道实体与状态实体的生成结果其中期望状态均为 Successful印证了上述映射逻辑。实战完整的 Domo Pipeline 摄取配置以下配置取自 test_domopipeline.py 中的完整工作流示例可直接作为metadata ingest配置文件或 UI 中“连接详情”填写的参考source: type: domopipeline serviceName: your_service_name serviceConnection: config: type: DomoPipeline clientId: your_client_id # 必填 secretToken: your_secret_token # 必填密码格式 accessToken: your_access_token # 可选用于 Pipeline Runs / Cards 等私有端点 apiHost: api.domo.com # 可选默认值 instanceDomain: https://your.domo.com # 必填 sourceConfig: config: pipelineFilterPattern: {} # 可选正则排除管道 sink: type: metadata-rest config: {} workflowConfig: openMetadataServerConfig: hostPort: http://localhost:8585/api authProvider: openmetadata securityConfig: jwtToken: your_jwt_token要点回顾type必须为DomoPipeline对应 Schema 中DomoPipelineType枚举三个必填项缺一不可否则 Schema 校验失败若需要 Pipeline 运行状态执行历史落地到 OpenMetadata务必填写accessToken因为get_runs依赖携带开发者令牌的私有端点连接测试只校验get_pipelines即 Client ID / Secret Token / 实例域名不会校验 Access Token 的有效性Access Token 的问题通常会在状态提取阶段才暴露。总结与注意事项Scope 先行Client ID 至少需要datascope否则 API 调用无权限三个必填项clientId、secretToken、instanceDomainaccessToken按需填写以启用运行状态提取apiHost默认api.domo.com安全处理Secret Token 与 Access Token 均为 password 格式OpenMetadata 会按敏感信息处理请勿明文泄露能力边界该连接器当前不支持血缘提取源码中yield_pipeline_lineage_details未实现也不提供 Cards 实体的管道级关联排错路径连接测试失败优先检查 scope 与 Client 凭据管道同步成功但无状态优先检查 Access Token 与X-DOMO-Developer-Token请求头是否生效。如需进一步了解 Schema 层面的字段定义可阅读 domoPipelineConnection.json若要深入理解提取流程可结合 metadata.py、connection.py 与 domo_client.py 一起研读。【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考