> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/Duaer-Organizations/executions/execution-data-redaction.md).

# 在 Duaer 里隐藏执行数据

在 Duaer 里，控制执行记录里能否看见节点处理过的数据，用来保护敏感信息并满足合规要求。
隐藏执行数据会挡住执行记录里的输入和输出。状态、耗时和节点名字仍可见。这不是加密存放，也不阻止节点把数据交给下一步。

实例上的这项设置需要套餐包含数据隐藏。可按数字组织配置，也可在实例级强制。

## 为什么要隐藏执行数据 <a href="#why-use-execution-data-redaction" id="why-use-execution-data-redaction"></a>

以前只能整段关掉执行历史，连成功失败都没了。隐藏之后，监控还在，业务载荷不再直接摊开。

## 在一条数字组织里配置 <a href="#configure-redaction-settings" id="configure-redaction-settings"></a>

需要启用或关闭数据隐藏的权限。实例所有者和项目管理员默认有。

1. 打开数字组织。
2. 点右上角三个点，选择 Settings。
3. 找到 Redact production execution data 与 Redact manual execution data。
4. 每项选 Default - Do not redact 或 Redact，再保存。

生产运行包括 Webhook、定时，以及组织激活时的其他触发。手动运行是编辑器里点 Execute 的那些。手动隐藏只有在生产也隐藏时才能打开。使用终端用户凭证时，生产执行数据始终隐藏。

## 实例级强制 <a href="#instance-level-enforcement" id="instance-level-enforcement"></a>

实例所有者与管理员可打开 Settings → Security → Data redaction，开启 Enforce data redaction，并选范围：

- Production executions（推荐）：所有生产运行隐藏；手动仍跟各条自己的设置。
- Manual and production executions：生产和手动都隐藏。
- Manual executions：只强制手动运行。

强制在有人读取执行数据时生效。单条设置不能比实例最低标准更松；相关开关会锁住，公开 API 也会拒绝更松的策略。单条仍可比最低标准更严。新建数字组织会带上这个最低标准；已有数字组织保存的设置不会被改写，关掉强制后回到各自原来的设置。

## 隐藏之后还剩什么 <a href="#what-gets-redacted" id="what-gets-redacted"></a>

执行视图里数据表会换成 Data redacted。仍看得到节点名、成功或失败、耗时和结构。

- 每个节点的输入和输出 json 换成空对象。
- binary 里的文件和图片被拿掉。
- 节点声明的敏感字段（sensitiveOutputFields）始终隐藏，有权临时查看的人也看不到。
- 错误信息只留错误类型，以及接口错误时的 HTTP 状态码。

## 临时查看被隐藏的数据 <a href="#reveal-redacted-data" id="reveal-redacted-data"></a>

拥有 Reveal execution data（execution:reveal）的人可以针对一次执行临时查看。实例所有者和实例管理员默认有。

1. 打开该执行。
2. 在被隐藏区域选择 Reveal data。
3. 确认对话框会说明：本次查看记入审计，只在确有需要时查看。
4. 确认后，该执行数据在当前会话可见。

使用动态凭证（运行时解析的终端用户凭证）的执行无法查看。被隐藏的执行也不能钉回编辑器。审计会记录查看成功、被拒绝，以及实例强制策略变更。

## 隐藏管不到的地方 <a href="#what-redaction-doesnt-cover" id="what-redaction-doesnt-cover"></a>

- Code 节点的 console.log 不会被隐藏。
- 节点之间该传的数据照传；隐藏只影响人打开记录时看见什么。
- 返回给调用方的 Webhook 响应是原始内容。
- 发出去的鉴权头不会被改写。
- 不能按字段挑选隐藏（敏感字段声明除外）。
- 数据库里的执行数据不会被改写或加密。
- 实例强制不会跟着源码管理推到另一条实例。
## Questions

### 隐藏执行数据会藏什么、还留什么？

在 Duaer 里，输入输出 json 换成空对象，binary 被拿掉，错误只留类型和 HTTP 状态码。仍显示节点名、成败、耗时和结构。声明为敏感的字段始终隐藏。

### 单条设置和实例强制有什么区别？

在 Duaer 里，单条数字组织可在 Settings 里分别设置生产和手动隐藏。实例可在 Security 里强制最低标准；单条不能比强制更松，仍可比强制更严。

### 隐藏管不到哪些地方？

在 Duaer 里，不管 console.log、节点间仍在传的数据、Webhook 响应原文、出站鉴权头；也不是按字段挑选，不加密数据库，强制策略不随源码管理带到别的实例。

