数字组织与数据
隐藏执行数据
隐藏执行数据之后,打开这条执行仍能看到成功还是失败、用了哪几个节点、花了多久。节点真正处理过的输入和输出不再直接摊在记录里。
隐藏执行数据是做什么的
隐藏执行数据用来挡住执行记录里的输入和输出。执行记录本来会留下每个节点的输入和输出,方便排查。记录里一旦有客户资料、令牌或金额,能打开这条数字组织的人就都能看见。
以前只能整段关掉执行历史,连成功失败都没了。隐藏执行数据之后,状态、耗时和节点名字还在,节点处理过的内容不再直接显示。这里说的是打开记录时看不见,不是加密存放,也不是不让节点继续把数据交给下一步。
实例上的这项设置需要套餐包含数据隐藏。没有的时候,安全设置里会提示升级。
在一条数字组织里启用隐藏执行数据
改这一条的设置,需要启用或关闭数据隐藏的权限。实例所有者和项目管理员默认有。
- 打开这条数字组织,点右上角三个点,进入 Settings。
- 找到 Redact production execution data。线上触发的运行走这一项,包括 Webhook、定时,以及组织处于激活状态时的其他触发。选 Redact 才隐藏。Default - Do not redact 表示不隐藏。
- Redact manual execution data 管你在编辑器里点执行的那些运行。只有生产运行也设为隐藏时,这一项才能打开。
使用终端用户凭证时,生产执行数据始终隐藏,不能为了调试把它打开。
让整个实例都按最低标准隐藏
实例所有者和实例管理员可以不依赖每一条数字组织自己的开关。打开 Settings,进入 Security,找到 Data redaction。打开 Enforce data redaction,再选范围。
- Production executions(推荐):每条数字组织的生产运行都隐藏。手动运行仍按那一条自己的设置。线上数据被挡住,调试时还能看见测试数据。
- Manual and production executions:生产和手动都隐藏。测试数据也敏感时用这个。
- Manual executions:只强制手动运行。
强制是在有人读取执行数据时生效的。某条数字组织自己没打开隐藏,只要它落在强制范围内,打开记录时一样会被隐藏。
单条设置不能比实例的最低标准更松。界面上相关开关会锁住,公开 API 也会拒绝写成更松的策略。单条仍可以比最低标准更严。
强制开着的时候,新建的数字组织会带上这个最低标准。已经存在的那些,保存着的自己的设置不会被改写。之后如果关掉强制,它们回到各自原来的设置。强制期间,读取时仍按最低标准隐藏。
有管理数据隐藏权限的人,不能把某条数字组织调得低于这个最低标准。关掉实例强制之后,他们可以再改各条自己的设置。
隐藏之后记录里还剩什么
执行视图里,原来的数据表会换成 Data redacted。你仍看得到节点名字、成功或失败、耗时,以及这张图的结构。
- 每个节点的输入和输出 json 会被换成空对象。
- binary 里的文件和图片会被拿掉。
- 节点作者标明的敏感字段(sensitiveOutputFields)始终隐藏。就算有人有权临时查看,这些字段也不会被揭开。Webhook 和表单触发上,授权头和 Cookie 就属于这类字段。
- 错误信息只留下错误类型,以及接口错误时的 HTTP 状态码。具体报错句子不留下,避免句子里带出数据。
临时查看被隐藏的数据
这次执行如果用了动态凭证(运行时才解析出来的终端用户凭证),查看会被拒绝,跟你有没有权限无关。被隐藏的执行也不能再钉回编辑器里当固定数据。
审计里会记下查看成功、查看被拒绝,以及有人改了实例强制策略。这些事件可以送到你们已经在用的日志流。
- 打开这条执行。
- 在被隐藏的数据区域点 Reveal data。
- 确认对话框会说明:这次查看会记入审计,只在确实需要时查看,无必要的查看可能违反你们自己的规定。
- 确认之后,这一次执行的数据在当前会话里可见。
隐藏执行数据管不到的地方
- Code 节点里的 console.log 不会被隐藏。手动运行时出现在编辑器的日志面板。生产运行时进服务器标准输出,以及你们接到上面的日志系统。
- 节点之间该传的数据照传。隐藏只影响人打开执行记录时看见什么,不影响这条数字组织把数据发到外部系统。
- 返回给调用方的 Webhook 响应是原始内容,不是隐藏过的版本。
- 发出去的请求头,包括鉴权头,不会因为隐藏执行数据而被改掉。
- 不能按字段挑选着隐藏。一次隐藏的是这个节点的整份输入和输出。唯一的例外是节点声明的敏感字段,那些始终隐藏。
- 数据库里的执行数据不会被改写或加密。隐藏发生在通过接口把数据给人看的时候。能直接读数据库的人仍能读到原文。
- 实例强制是这条实例的策略,不会跟着源码管理推到另一条实例。推过去的数字组织在那边是否隐藏,看那边的策略。
常见问题
Duaer 的隐藏执行数据会隐藏什么,还会留下什么?
在 Duaer 中,隐藏执行数据会把每个节点的输入和输出 json 换成空对象,去掉 binary 里的文件,并只保留错误类型和接口错误的 HTTP 状态码。执行记录仍显示节点名称、成功或失败、耗时和数字组织的结构。节点作者标明的敏感字段始终隐藏,有权临时查看的人也看不到这些字段。
在 Duaer 里,一条数字组织和整个实例的隐藏执行数据有什么区别?
一条 Duaer 数字组织可以在 Settings 里分别设置 Redact production execution data 和 Redact manual execution data。手动运行只有在生产运行也隐藏时才能隐藏。实例管理员可以在 Settings 的 Security 里打开 Enforce data redaction,规定生产运行、手动运行,或两者都作为最低标准。单条数字组织不能比这个最低标准更松。
Duaer 的隐藏执行数据不管哪些内容?
Duaer 的隐藏执行数据不管 Code 节点的 console.log、节点之间仍在传递的数据、返回给调用方的 Webhook 响应,以及发出去的鉴权头。隐藏执行数据也不是按字段挑选隐藏,不是加密数据库里的执行数据,实例强制也不会跟着源码管理带到另一条实例。
同组