用途:在 Salesforce 沙箱中操作 Data Mask,覆盖配置 PII 掩码策略、启动掩码作业、轮询至终态、报告掩码结果,以及中止进行中的作业。Data Mask 仅限沙箱,生产环境运行/中止 REST 接口返回 403,开始前需确认目标组织为沙箱。
主要能力与 API 面:DataMaskPolicy 为策略外壳,需通过 Tooling API 或 Metadata API 访问,不支持标准 SOQL/sobject describe;DataMaskPolicyObject 与 DataMaskPolicyField 仅通过 Tooling API 查询和插入,字段处理由 MaskingCategory 与 MaskValue 决定;DataMaskPolicyJobRun 与 DataMaskPolicyJobRunDtl 可用标准 SOQL 查询。启动作业用 POST /services/data/v67.0/platform/data-resilience/data-mask/policies/{policyId}/run,中止用 POST /services/data/v67.0/platform/data-resilience/data-mask/jobs/{jobRunId}/abort,需空 JSON 体并以 @ 前缀传文件。
使用方式:先确认沙箱并获取组织信息,再识别或创建策略;启动作业后立即写 report.md,再用 scripts/poll-job.sh 单次轮询至终态,最后从 DataMaskPolicyJobRunDtl 读取每对象掩码数。中止流程需先轮询到 running 状态再调用 abort,并在中止后重新查询确认 Status = canceled。
限制:作业有约 5–10 分钟调度下限,小作业也不会立即完成;pending/scheduled 不可中止;仅 completed、completed_with_errors、failed 为终态;不要用 DML/delete 中止;命令不要加管道或重定向;API 版本需 v67.0 或更高且路径不含 /connect/。字段级成功只能作为推断,不能当作直接观测。