Skip to content

Presets ​

Presets are documented rule selections that bundle commonly-needed detectors for specific use cases. They are not compliance guarantees — they're starting points you can customize with explicit rule overrides.

Built-in presets ​

PresetRulesUse case
pii96Personally identifiable information
gdpr39EU privacy regulation
hipaa29US healthcare
ccpa86California privacy
pci-dss6Payment card industry
healthcare19Healthcare identifiers
finance15Financial identifiers
education6Education sector
soc230SOC 2 security controls
security14Secrets and network identifiers

Combining presets ​

You can combine multiple presets. Rules are merged, and if two presets assign different actions to the same rule, a POLICY_CONFLICT error is thrown — you must resolve the conflict with an explicit rule override:

ts
const redactor = createRedactor({
  presets: ["pii", "security"],
  rules: {
    // Override any conflicting rules here
    person_name_lite: { action: "mask", preserve: { first: 1 } },
  },
});

Custom presets ​

Define your own presets with customPresets:

ts
const redactor = createRedactor({
  customPresets: {
    my_preset: {
      email: { action: "redact" },
      phone: { action: "mask", preserve: { last: 4 } },
    },
  },
  presets: ["my_preset"],
  rules: {},
});

Custom presets do not support the @N version syntax.

Overriding preset rules ​

Explicit rules in config.rules always take precedence over preset rules:

ts
const redactor = createRedactor({
  presets: ["pii"],
  rules: {
    // Override email from redact to mask
    email: { action: "mask", preserve: { first: 2 } },
    // Disable person_name_lite from the preset
    person_name_lite: "off",
  },
});

Use "off" to disable a rule that a preset enabled.

Released under the MIT License.