Skip to content

Redactor

数据脱敏工具,通过 ./redactor 子路径单独导出。

导入

ts
// 主路径
import { redact, registerRules, clearExtraRules, listExtraRules } from "@yingdao-ai/agent-observability"

// 单独导入(更轻量)
import { redact, registerRules } from "@yingdao-ai/agent-observability/redactor"

函数

redact(value: unknown): unknown

对输入值进行脱敏处理,递归处理 object/array/string。

ts
redact({ password: "secret123", name: "Alice" })
// => { password: "***", name: "Alice" }

redact("Authorization: Bearer eyJxxx")
// => "Authorization: Bearer ***"

redact([{ token: "abc", data: "hello" }])
// => [{ token: "***", data: "hello" }]

异常时返回原值,不影响主流程。

registerRules(rules: RedactRuleConfig[]): void

注册自定义脱敏规则。

ts
registerRules([
  {
    kind: "value",
    name: "openai-sk",
    pattern: "sk-[A-Za-z0-9]{32,}",
  },
])

clearExtraRules(): void

清空所有已注册的自定义规则。

ts
clearExtraRules()

listExtraRules(): string[]

返回已注册的自定义规则名列表。

ts
listExtraRules()  // ["openai-sk"]

类型定义

ts
type RedactRuleConfig = {
  kind: "key" | "value"  // key 按字段名匹配,value 按内容匹配
  name: string           // 规则标识名
  pattern: string        // 正则表达式字符串
  flags?: string         // 正则 flags,默认 "gi"
  replacement?: string   // 替换字符串,默认 "***"
}

内置规则列表

详见 数据脱敏指南

MIT License