DataHub Data Access Workflows:用集中化审批工作流统一管理数据访问请求

发布时间:2026/9/17 19:40:30

DataHub Data Access Workflows:用集中化审批工作流统一管理数据访问请求 DataHub Data Access Workflows用集中化审批工作流统一管理数据访问请求【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub本文围绕 DataHub Cloud 的Data Access Workflows访问工作流功能展开它允许组织为所有数据访问请求建立集中化的审批流程通过自定义表单字段、入口点和多步审批链在合规可控的前提下简化申请与审批体验。读完本文你将掌握如何通过upsertActionWorkflowGraphQL mutation 以编程方式创建工作流、如何理解字段类型与动态审批人路由的完整配置、如何在 Task Center 中完成审批以及如何借助 DataHub Actions 框架监听工作流事件实现自动化的访问开通。说明Access Workflows 目前处于Private Beta阶段需要联系 DataHub 团队为你的实例开启该功能。核心能力概览Data Access Workflows 提供三类核心能力创建审批工作流Create Approval Workflows设计带自定义字段、入口点和多步审批流程的访问申请工作流。你可以限定用户可针对哪些类型的资产发起申请如数据集、仪表盘并为审批人配置路由规则。全员知情Keep Everyone in the Loop当有待审批请求或你提交的请求被批准/驳回时通过邮件或 Slack 接收通知所有打开状态的请求可以直接在 Task Center 中跟踪。实时、事件驱动集成Realtime, Event-Oriented Integration通过 DataHub Actions Framework 监听访问请求被创建/被审批时发出的事件实现实时自动开通访问权限。典型使用场景集中化访问申请针对表和仪表盘或更高层级的分组如 Domain、Data Product、Database发起访问申请——全部通过统一界面完成审计日志在一处查看全部访问请求的历史以便随时间审计授权记录、维持合规档案动态审批路由基于资产所有权或组织结构自动把请求路由给合适的审批人数据访问治理对敏感数据集实施受控访问配合合适的审批链和组织策略。典型角色角色职责Data Platform Administrators配置并管理工作流定义Data Stewards审批自己域Domain内的访问请求Data Consumers提交自己所需数据集的访问申请Integration Engineers基于工作流事件搭建自动化开通流程前置条件与权限要求前置条件Access Workflows 功能需由 DataHub 团队开启Private Beta具备 GraphQL API 访问权限的 DataHub 实例创建 workflow definition 所需的管理权限已配置的通知渠道Email/Slack用于工作流通知——此项默认启用。所需权限创建工作流Platform Admin或拥有Manage Workflows权限的用户提交请求任何已认证用户受工作流可见性规则约束审批请求被工作流定义指定为 reviewer 的用户配置通知各用户可自行配置自己的通知偏好。创建一个 Access Workflow每个 Access Workflow 可配置三个核心部分Form Fields表单字段定义访问申请中需要从用户那里收集哪些数据完全自主控制哪些字段必填、哪些选填以匹配组织需求Form Entry Points表单入口点精确指定工作流在哪里被激活——可以显示在首页也可以显示在特定资产 profile 页Approval Chain审批链指定有权审核并最终批准的个人或群组。审批人可以静态指定也可以动态解析为所选资产的 owner、Domain owner 或 Data Product owner。目前工作流的创建必须通过 GraphQL API 使用upsertActionWorkflowmutation 完成。下面是一个使用 DataHub Python 客户端创建基础数据集审批工作流的完整示例Python 客户端的入口为 DataHubGraphfrom datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph # Initialize DataHub client config DatahubClientConfig( serverhttp://your-datahub-instance, tokenYOUR_ACCESS_TOKEN ) graph DataHubGraph(config) # GraphQL mutation for creating an approval workflow CREATE_WORKFLOW_MUTATION mutation upsertActionWorkflow($input: UpsertActionWorkflowInput!) { upsertActionWorkflow(input: $input) { urn } } workflow_definition { name: Dataset Access Request, description: Request access to sensitive datasets, category: ACCESS, trigger: { type: FORM_SUBMITTED, form: { entityTypes: [DATASET], # Limit to dataset entities, but can apply to many types. entrypoints: [ { type: HOME, # Display on Home Page label: Request Dataset Access # Home Page CTA }, { type: ENTITY_PROFILE, # Display on Entity Profile Page label: Request Access # Entity Profile Page CTA } ], fields: [ { id: business_justification, name: Business Justification, description: Please explain why you need access to this dataset, valueType: RICH_TEXT, cardinality: SINGLE, required: True }, { id: access_duration, name: Access Duration, description: How long do you need access?, valueType: STRING, allowedValues: [ {stringValue: 30_DAYS}, {stringValue: 90_DAYS}, {stringValue: PERMANENT} ], cardinality: SINGLE, required: False }, # Create a conditionally visible field. Only visible based on previous field answer. { id: permanent_access_justification, name: Permanent Access Justification, description: Since youve requested permanent access, please provide additional justification for why this is necessary, valueType: RICH_TEXT, cardinality: SINGLE, required: True, condition: { type: SINGLE_FIELD_VALUE, singleFieldValueCondition: { field: access_duration, values: [PERMANENT], condition: EQUAL, negated: False } } } ] } }, steps: [ { id: data_steward_review, type: APPROVAL, description: Data steward review and approval, actors: { userUrns: [urn:li:corpuser:data.steward], groupUrns: [], roleUrns: [], dynamicAssignment: { type: ENTITY_OWNERS } } } ] } # Workflow definition workflow_input { input: workflow_definition } # Execute the mutation try: result graph.execute_graphql( queryCREATE_WORKFLOW_MUTATION, variablesworkflow_input ) print(fWorkflow created successfully: {result[upsertActionWorkflow][urn]}) print(fWorkflow name: {result[upsertActionWorkflow][name]}) except Exception as e: print(fError creating workflow: {e})该示例中的几个关键配置点值得注意entityTypes: [DATASET]将工作流限定在数据集实体上也可以应用于多种实体类型如果省略entityTypes字段则创建的是不依赖具体实体上下文的通用工作流。条件字段permanent_access_justification字段通过conditionSINGLE_FIELD_VALUE条件检查access_duration是否EQUAL于PERMANENTnegated: False实现仅在用户选择永久访问时才显示的条件可见性。静态 动态审批人混合actors中同时给出静态的userUrnsurn:li:corpuser:data.steward和dynamicAssignment: { type: ENTITY_OWNERS }即审批请求同时路由给指定用户和所申请实体的 owner。工作流核心概念速查入口点Entry Points——定义用户可以从哪里发起工作流HOME工作流对全体用户显示在首页ENTITY_PROFILE工作流显示在实体详情页。字段类型Field Types——表单字段支持的类型类型说明STRING单行文本输入RICH_TEXT多行富文本输入支持格式URN实体引用用户、群组、数据集等可配置实体类型DATE日期/时间值以毫秒级 epoch 时间戳表示NUMBER数值输入整数或浮点字段基数Field Cardinality——控制字段接受单值还是多值SINGLE仅接受一个值MULTIPLE接受多个值。审批人解析Assignee Resolution——配置谁审批工作流请求静态分配Static Assignment指定具体用户、群组、角色进行审批userUrns指定审批用户groupUrns指定审批群组roleUrns指定 DataHub 角色审批。动态分配Dynamic Assignment基于实体上下文自动解析审批人ENTITY_OWNERS分配给被申请实体的 ownerENTITY_DOMAIN_OWNERS分配给该实体所属 Domain 的 ownerENTITY_DATA_PRODUCT_OWNERS分配给该实体所属 Data Product 的 owner可选的 ownership type 过滤如 Technical Owner、Business Owner——文档 FAQ 中该过滤字段写作ownershipTypeUrns概念一节中表述为按 ownership types 过滤。类别CategoriesACCESS访问类工作流CUSTOM自定义工作流携带用户定义的customCategory字符串例如用于建模数据创建请求这类场景。提交访问工作流请求工作流创建完成后用户即可提交 Workflow Request 表单来触发审批流程。根据为该工作流配置的入口点用户可以从以下位置发起Home Page首页Entity Profile实体 profile 页。创建审批请求时用户只需为所有必填字段提供回答完成后点击Submit提交即可。提交后你的在途请求可在TasksRequestsMy Requests中随时查看。审批访问工作流请求被指定为 reviewer 的用户通过Task Center管理请求进入 Task Center从左侧导航栏点击 Tasks点击 Requests 标签页。审批一个请求查看请求详情在任一待处理请求上点击 View Details可以看到——申请人信息Requestor information所申请的实体Selected entity表单提交的答案Submitted form responses。做出决定对每个请求可以——Accept批准访问请求Reject拒绝请求可附可选评论。添加评论为你的决定提供上下文说明帮助申请人理解结果。配置工作流通知为及时掌握工作流动态可配置如下通知进入SettingsMy Notifications找到Workflow Notifications区域按以下场景启用通知Pending Reviews当你有待审批的请求时通知你Request Updates当你提交的请求被批准或拒绝时通知你。访问开通响应审批工作流事件通过 DataHub Actions 框架参见 DataHub Actions 文档监听工作流事件可以自动化访问开通。事件类型DataHub 在工作流生命周期的关键节点发出事件Approval Workflow Request Create Event工作流请求表单被提交时Approval Workflow Request Step Complete中间审批步骤完成时Approval Workflow Request Complete工作流请求被完全批准或拒绝时。各事件的 JSON 格式可参考 Entity Change Events 事件文档。搭建事件集成创建一个监听工作流事件的 DataHub Actions 自定义 listener即可触发自定义的访问开通动作。下面的配置演示了如何过滤出工作流表单请求生命周期事件并先打印出来该示例基于仓库内 hello_world 动作示例 的动作类型name: access-workflow-provisioner-action datahub: server: your-datahub-server token: your-access-token source: type: datahub-cloud # Add filter to filter down to just access request lifecycle events. filter: event_type: EntityChangeEvent_v1 event: entityType: actionRequest category: LIFECYCLE operation: COMPLETED # OR CREATE OR MODIFY parameters: actionRequestType: WORKFLOW_FORM_REQUEST action: type: hello_world config: {}过滤条件的含义是只接收entityType: actionRequest、category: LIFECYCLE的事件operation取COMPLETED也可改为CREATE或MODIFY以覆盖请求创建/修改时机并限定actionRequestType: WORKFLOW_FORM_REQUEST确保只匹配工作流表单请求的生命周期事件。在实际场景中这个 action 应当执行真正开通访问权限的动作例如把用户加入指定的 LDAP 群组为用户分配某个 Snowflake 角色生成一条授予 S3 bucket 访问权限的 AWS IAM policy。构建自定义 action 的完整方法参见 Developing an Action 指南。GraphQL API 速查工作流相关的核心 mutationMutation用途upsertActionWorkflow创建或更新工作流定义createActionWorkflowFormRequest提交工作流请求reviewActionWorkflowFormRequest审批工作流请求deleteActionWorkflow删除工作流定义完整的 schema 类型与文档可在你实例的 GraphiQLhttps://your-datahub-instance.acryl.io/api/graphiql中查看Mutation类型下的相关定义。FAQ如何为我的组织启用 Approval WorkflowsApproval Workflows 目前处于 Private Beta。请联系 DataHub 团队为你的实例申请开启该功能。能否创建不依赖实体上下文的工作流可以。在工作流定义中省略entityTypes字段即可创建不需要具体实体上下文的通用工作流。如何配置动态审批人解析在 workflow step 的actors部分使用dynamicAssignment字段。可用类型包括ENTITY_OWNERS路由到被申请实体的 ownerENTITY_DOMAIN_OWNERS路由到该实体所属 Domain 的 ownerENTITY_DATA_PRODUCT_OWNERS路由到该实体所属 Data Product 的 owner。可选地使用ownershipTypeUrns字段按具体 ownership type 过滤。工作流表单支持哪些字段类型支持STRING单行文本、RICH_TEXT多行富文本、URN实体引用可按实体类型配置、DATE毫秒级 epoch 时间戳、NUMBER整数或浮点数。每个字段都可通过cardinality属性配置为单值或多值。可以创建自定义工作流类别吗可以。使用CUSTOM类别并提供customCategory字符串即可在标准ACCESS类别之外对相关工作流进行分组。审批人不可用时怎么办可以在单个步骤中配置多个审批人提高每个步骤至少有人可审批的概率。创建之后可以修改工作流吗可以。使用现有 workflow URN 调用upsertActionWorkflowmutation 更新定义。注意变更只影响新请求不影响已存在的请求。如何处理需要多步审批的请求在工作流配置中定义多个 step。每个 step 可以有不同的审批人和审批要求。用户可以取消自己的请求吗目前请求取消通过审批流程管理。如有需要用户可联系其审批人撤回请求。【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/17 19:40:30

中国移动前端开发工程师(RN原生化方向)职位深度解析与面试指南

中国移动通信有限公司在线营销服务中心 开发工程师 (前端,RN原生化方向) 职位信息 岗位职责: 1、负责中国移动APP爱购商城系统RN原生开发,建立一套代码多端发布的前端框架体系,覆盖客户端RN、端外H5、微信小程序等多端场景,制定前端代码开发规范,搭建可扩展、多端适配的…

2026/9/17 19:40:30

基于Matlab的光场相机重聚焦算法实现与应用

简介:基于Matlab的光场相机重聚焦算法演示方案,适合正在学习计算摄影、光场成像或数字重聚焦的本科生、研究生及图像处理爱好者。方案围绕光场记录空间中光线方向与辐射强度这一核心思想,演示了如何在完成拍摄后通过计算光学传输模型自由调整…

2026/9/17 20:30:34

城市智慧排水信息化管控平台建设:从感知接入到内涝预警联动

简介:这份PPT资源面向城市水务管理、市政信息化建设及智慧城市解决方案从业人员,围绕城市智慧排水信息化管控平台的建设方案展开。内容涵盖平台建设目标与意义、核心技术选型、主要功能设计与实施路径等模块,可帮助读者理解如何借助物联网、3…

2026/9/17 20:25:34

深入理解fork与execve:进程创建的核心机制与实战避坑

搞Linux或者macOS系统编程的人,大概没人不认识fork()。可要问到fork之后怎么把进程变成另一个程序,很多人就开始含糊了,只会说“再调用exec呗”。其实这正是问题的关键:fork()和execve()从来不是两个孤立的概念,它们是…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/17 0:03:13

WiFi密码安全测试:从原理到实战的字典暴力破解指南

1. 写在前面:我为什么要研究WiFi密码这件事先交代一下背景。我身边有不少朋友,家里的WiFi密码常年是"12345678"或者"88888888",问就是"好记"。直到有一次,隔壁邻居蹭网蹭到我家路由器后台都进不去&…

2026/9/17 0:03:13

redis-py服务控制与监控函数实战:从ping到slowlog的巡检指南

我用 redis-py 写了快五年的业务代码,坦白说,真正让我觉得这个客户端“像一个成熟工具箱”的,不是 get/set 那套基本操作,而是它那批专门做服务控制与状态监控的辅助函数。日常开发里,大家把redis.Redis(host..., deco…

2026/9/17 0:03:13

SpringBoot+Vue3实现中小企业设备管理系统开发实践

1. 项目概述与核心价值中小企业设备管理系统是制造业、服务业等领域的基础信息化工具。传统设备管理往往依赖Excel表格或纸质记录,存在数据孤岛、流程混乱、维护成本高等痛点。这套基于Java SpringBootVue3MyBatis的技术方案,通过前后端分离架构实现了设…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码