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 // 替换字符串,默认 "***"
}内置规则列表
详见 数据脱敏指南。