field-redactor 1.6.1 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/CONTRIBUTING.md +5 -3
- package/README.md +2 -2
- package/dist/api/fieldRedactor.d.ts +3 -3
- package/dist/api/fieldRedactor.js +7 -7
- package/dist/api/fieldRedactor.js.map +1 -1
- package/dist/api/fieldRedactorConfigBuilder.d.ts +3 -3
- package/dist/api/fieldRedactorConfigBuilder.d.ts.map +1 -1
- package/dist/api/fieldRedactorConfigBuilder.js +7 -9
- package/dist/api/fieldRedactorConfigBuilder.js.map +1 -1
- package/dist/api/fieldRedactorDeps.d.ts +2 -2
- package/dist/api/fieldRedactorDeps.d.ts.map +1 -1
- package/dist/api/fieldRedactorDeps.js +6 -6
- package/dist/api/fieldRedactorDeps.js.map +1 -1
- package/dist/config/presets.d.ts +2 -2
- package/dist/config/presets.js +1 -1
- package/dist/config/redactionRules.d.ts +10 -5
- package/dist/config/redactionRules.d.ts.map +1 -1
- package/dist/config/redactionRules.js +16 -11
- package/dist/config/redactionRules.js.map +1 -1
- package/dist/engine/objectRedactorHelpers.js +2 -2
- package/dist/engine/objectRedactorHelpers.js.map +1 -1
- package/dist/engine/objectRedactorTraversal.d.ts +1 -0
- package/dist/engine/objectRedactorTraversal.d.ts.map +1 -1
- package/dist/engine/objectRedactorTraversal.js +1 -0
- package/dist/engine/objectRedactorTraversal.js.map +1 -1
- package/dist/rules/ruleResolver.js +2 -2
- package/dist/rules/ruleResolver.js.map +1 -1
- package/dist/rules/secretManager.d.ts +5 -5
- package/dist/rules/secretManager.d.ts.map +1 -1
- package/dist/rules/secretManager.js +13 -8
- package/dist/rules/secretManager.js.map +1 -1
- package/dist/types.d.ts +12 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -1
- package/docs/guides/anti-patterns.md +1 -1
- package/docs/guides/metadata-redaction.md +2 -2
- package/docs/guides/migration-1.5-to-1.6.md +5 -4
- package/docs/guides/secret-key-modes.md +9 -14
- package/docs/reference/config.md +2 -2
- package/docs/release-notes/README.md +1 -0
- package/docs/release-notes/v1.6.2.md +26 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.6.2] - 2026-07-22
|
|
9
|
+
|
|
10
|
+
Canonical Opaque/Remove naming internally and removal of the thin `ObjectRedactor` orchestrator. See [docs/release-notes/v1.6.2.md](docs/release-notes/v1.6.2.md).
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Canonical naming** — config normalize, builder, presets, and `SecretManager` store/match on `opaqueSecretKeys` / `removeSecretKeys`; methods are `isOpaqueSecretKey` / `isRemoveSecretKey`. Legacy `fullSecretKeys` / `deleteSecretKeys` remain accepted input aliases.
|
|
15
|
+
- **Traversal wiring** — `FieldRedactor` depends on `ObjectRedactorTraversal` directly (no `ObjectRedactor` façade).
|
|
16
|
+
- **Builder** — `buildRedactor()` / `buildSafeRedactor()` use a static `FieldRedactor` import (no lazy `require()`).
|
|
17
|
+
|
|
18
|
+
### Removed
|
|
19
|
+
|
|
20
|
+
- Internal `ObjectRedactor` class (never part of the public export surface).
|
|
21
|
+
|
|
8
22
|
## [1.6.1] - 2026-07-22
|
|
9
23
|
|
|
10
24
|
Internal simplification and layering cleanup with no intended public API changes for typical consumers. See [docs/release-notes/v1.6.1.md](docs/release-notes/v1.6.1.md).
|
|
@@ -183,6 +197,7 @@ Development tags `2.0.0`–`2.3.1` track incremental work toward `1.3.0`. See [d
|
|
|
183
197
|
|
|
184
198
|
- Initial public release: regex key rules, custom object schemas with sibling-key indirection, async `redact()` / `redactInPlace()`, and configurable redactor functions.
|
|
185
199
|
|
|
200
|
+
[1.6.2]: https://github.com/mologna/field-redactor/compare/v1.6.1...v1.6.2
|
|
186
201
|
[1.6.1]: https://github.com/mologna/field-redactor/compare/v1.6.0...v1.6.1
|
|
187
202
|
[1.6.0]: https://github.com/mologna/field-redactor/compare/v1.5.0...v1.6.0
|
|
188
203
|
[1.5.0]: https://github.com/mologna/field-redactor/releases/tag/v1.5.0
|
package/CONTRIBUTING.md
CHANGED
|
@@ -16,7 +16,7 @@ Prefer npm version numbers in user-facing docs. Internal release notes under `do
|
|
|
16
16
|
```
|
|
17
17
|
src/
|
|
18
18
|
api/ Public facade: FieldRedactor, ConfigBuilder, DI wiring
|
|
19
|
-
engine/ Traversal, array/custom-object handlers, PrimitiveRedactor
|
|
19
|
+
engine/ Traversal (`ObjectRedactorTraversal`), array/custom-object handlers, PrimitiveRedactor
|
|
20
20
|
rules/ SecretManager, matchers, RuleResolver, CustomObjectManager
|
|
21
21
|
dryrun/ Structural diff + rule attribution
|
|
22
22
|
config/ Validation, presets, redactionRules, schema helpers
|
|
@@ -42,8 +42,10 @@ Traversal and dry-run attribution both use this module. When adding a rule type,
|
|
|
42
42
|
|------|-------------------------|----------------|
|
|
43
43
|
| Shallow | `secretKeys`, `CustomObjectMatchType.Shallow` | — |
|
|
44
44
|
| Deep | `deepSecretKeys` | — |
|
|
45
|
-
| Opaque | `opaqueSecretKeys`, `CustomObjectMatchType.Opaque` | `fullSecretKeys`, `Full` |
|
|
46
|
-
| Remove | `removeSecretKeys`, `CustomObjectMatchType.Remove` | `deleteSecretKeys`, `Delete` |
|
|
45
|
+
| Opaque | `opaqueSecretKeys`, `CustomObjectMatchType.Opaque`, `isOpaqueSecretKey` | `fullSecretKeys`, `Full` |
|
|
46
|
+
| Remove | `removeSecretKeys`, `CustomObjectMatchType.Remove`, `isRemoveSecretKey` | `deleteSecretKeys`, `Delete` |
|
|
47
|
+
|
|
48
|
+
Internally, normalize + `SecretManager` store and match on the preferred field names. Legacy config keys are input-only aliases.
|
|
47
49
|
|
|
48
50
|
## Development
|
|
49
51
|
|
package/README.md
CHANGED
|
@@ -55,8 +55,8 @@ Do you know which JSON keys are always sensitive?
|
|
|
55
55
|
| --- | --- |
|
|
56
56
|
| Shallow | `secretKeys` |
|
|
57
57
|
| Deep | `deepSecretKeys` |
|
|
58
|
-
| Opaque | `fullSecretKeys` |
|
|
59
|
-
| Remove | `deleteSecretKeys` |
|
|
58
|
+
| Opaque | `opaqueSecretKeys` (legacy: `fullSecretKeys`) |
|
|
59
|
+
| Remove | `removeSecretKeys` (legacy: `deleteSecretKeys`) |
|
|
60
60
|
| Schema | `customObjects` |
|
|
61
61
|
|
|
62
62
|
Use `FieldRedactor.createSafe({ ... })` or `FieldRedactorConfigBuilder` so you never accidentally redact every field. `new FieldRedactor()` without rules still redacts all values (legacy default).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DryRunResult, FieldRedactorConfig, RedactableInput } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* FieldRedactor is a highly customizable JSON object field redactor. It conditionally redacts fields based on
|
|
4
|
-
* the
|
|
4
|
+
* the secret key rules, path rules, value patterns, and custom object schemas in the configuration. Refer to the README.md
|
|
5
5
|
* for more details.
|
|
6
6
|
*
|
|
7
7
|
* Defaults: `ignoreNullOrUndefined` is `true`, `ignoreBooleans` is `false`, `cloneInput` is `true`.
|
|
@@ -14,8 +14,8 @@ export declare class FieldRedactor {
|
|
|
14
14
|
constructor(config?: FieldRedactorConfig);
|
|
15
15
|
/**
|
|
16
16
|
* Creates a FieldRedactor that requires at least one explicit redaction rule: Shallow (`secretKeys`),
|
|
17
|
-
* Deep (`deepSecretKeys`), Opaque (`
|
|
18
|
-
*
|
|
17
|
+
* Deep (`deepSecretKeys`), Opaque (`opaqueSecretKeys` / legacy `fullSecretKeys`), Remove (`removeSecretKeys` /
|
|
18
|
+
* legacy `deleteSecretKeys`), Schema (`customObjects`), Value-pattern (`valuePatterns`), or Path (`pathRules`).
|
|
19
19
|
* Unlike `new FieldRedactor()`, omitting all rules does not default to redacting every value.
|
|
20
20
|
*/
|
|
21
21
|
static createSafe(config: FieldRedactorConfig): FieldRedactor;
|
|
@@ -20,7 +20,7 @@ const rfdc_1 = __importDefault(require("rfdc"));
|
|
|
20
20
|
const configValidator_1 = require("../config/configValidator");
|
|
21
21
|
/**
|
|
22
22
|
* FieldRedactor is a highly customizable JSON object field redactor. It conditionally redacts fields based on
|
|
23
|
-
* the
|
|
23
|
+
* the secret key rules, path rules, value patterns, and custom object schemas in the configuration. Refer to the README.md
|
|
24
24
|
* for more details.
|
|
25
25
|
*
|
|
26
26
|
* Defaults: `ignoreNullOrUndefined` is `true`, `ignoreBooleans` is `false`, `cloneInput` is `true`.
|
|
@@ -37,13 +37,13 @@ class FieldRedactor {
|
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Creates a FieldRedactor that requires at least one explicit redaction rule: Shallow (`secretKeys`),
|
|
40
|
-
* Deep (`deepSecretKeys`), Opaque (`
|
|
41
|
-
*
|
|
40
|
+
* Deep (`deepSecretKeys`), Opaque (`opaqueSecretKeys` / legacy `fullSecretKeys`), Remove (`removeSecretKeys` /
|
|
41
|
+
* legacy `deleteSecretKeys`), Schema (`customObjects`), Value-pattern (`valuePatterns`), or Path (`pathRules`).
|
|
42
42
|
* Unlike `new FieldRedactor()`, omitting all rules does not default to redacting every value.
|
|
43
43
|
*/
|
|
44
44
|
static createSafe(config) {
|
|
45
45
|
if (!(0, configValidator_1.hasExplicitRedactionRules)(config)) {
|
|
46
|
-
throw new errors_1.FieldRedactorConfigurationError('FieldRedactor.createSafe() requires at least one non-empty secretKeys, deepSecretKeys,
|
|
46
|
+
throw new errors_1.FieldRedactorConfigurationError('FieldRedactor.createSafe() requires at least one non-empty secretKeys, deepSecretKeys, opaqueSecretKeys, removeSecretKeys, customObjects, valuePatterns, or pathRules entry (legacy fullSecretKeys / deleteSecretKeys also count). Without explicit rules, new FieldRedactor() redacts all values by default.');
|
|
47
47
|
}
|
|
48
48
|
return new FieldRedactor(config);
|
|
49
49
|
}
|
|
@@ -115,7 +115,7 @@ class FieldRedactor {
|
|
|
115
115
|
this.redactInPlaceSync(value);
|
|
116
116
|
return value;
|
|
117
117
|
}
|
|
118
|
-
return this.deps.
|
|
118
|
+
return this.deps.traversal.redactCopyOnWrite(value);
|
|
119
119
|
}
|
|
120
120
|
/** Conditionally redacts fields in the JSON object in place based on the configuration provided in the constructor. */
|
|
121
121
|
redactInPlace(value) {
|
|
@@ -124,7 +124,7 @@ class FieldRedactor {
|
|
|
124
124
|
this.redactInPlaceSync(value);
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
|
-
yield this.runTraversableRedaction(value, () => this.deps.
|
|
127
|
+
yield this.runTraversableRedaction(value, () => this.deps.traversal.redactInPlaceAsync(value));
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
/**
|
|
@@ -135,7 +135,7 @@ class FieldRedactor {
|
|
|
135
135
|
if (this.deps.usesAsyncRedactor) {
|
|
136
136
|
throw new errors_1.FieldRedactorError('redactInPlaceSync requires syncRedactor configuration or the default redactor');
|
|
137
137
|
}
|
|
138
|
-
this.runTraversableRedaction(value, () => this.deps.
|
|
138
|
+
this.runTraversableRedaction(value, () => this.deps.traversal.redactInPlace(value));
|
|
139
139
|
}
|
|
140
140
|
runTraversableRedaction(value, redact) {
|
|
141
141
|
if (this.isPrimitiveOrUndefined(value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactor.js","sourceRoot":"","sources":["../../src/api/fieldRedactor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAgF;AAChF,2DAAgF;AAUhF,6CAA2E;AAC3E,gDAAwB;AACxB,+DAAmG;AAEnG;;;;;;GAMG;AACH,MAAa,aAAa;IAOxB,YAAY,MAA4B;;QANvB,aAAQ,GAAG,IAAA,cAAI,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAO/D,IAAI,CAAC,cAAc,GAAG,IAAA,6CAA2B,EAAC,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,uDAAG,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAA,0CAAsB,EAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,UAAU,CAAC,MAA2B;QAClD,IAAI,CAAC,IAAA,2CAAyB,EAAC,MAAM,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,wCAA+B,CACvC,
|
|
1
|
+
{"version":3,"file":"fieldRedactor.js","sourceRoot":"","sources":["../../src/api/fieldRedactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FieldRedactor } from './fieldRedactor';
|
|
2
2
|
import { CustomObject, FieldRedactorConfig, PathRuleMode, Redactor, SyncRedactor } from '../types';
|
|
3
3
|
export type SchemaOptions = {
|
|
4
4
|
/** Optional label surfaced in {@link FieldRedactor.dryRun} `matchedSchemas` reports. */
|
|
@@ -15,9 +15,9 @@ export declare class FieldRedactorConfigBuilder {
|
|
|
15
15
|
shallow(...patterns: RegExp[]): this;
|
|
16
16
|
/** Deep — redact matching keys and descendants (`deepSecretKeys`). */
|
|
17
17
|
deep(...patterns: RegExp[]): this;
|
|
18
|
-
/** Opaque — stringify entire values at matching keys (`
|
|
18
|
+
/** Opaque — stringify entire values at matching keys (`opaqueSecretKeys`). */
|
|
19
19
|
opaque(...patterns: RegExp[]): this;
|
|
20
|
-
/** Remove — delete matching keys from output (`
|
|
20
|
+
/** Remove — delete matching keys from output (`removeSecretKeys`). */
|
|
21
21
|
remove(...patterns: RegExp[]): this;
|
|
22
22
|
/** Alias for {@link FieldRedactorConfigBuilder.remove}. */
|
|
23
23
|
delete(...patterns: RegExp[]): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorConfigBuilder.d.ts","sourceRoot":"","sources":["../../src/api/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"fieldRedactorConfigBuilder.d.ts","sourceRoot":"","sources":["../../src/api/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEnG,MAAM,MAAM,aAAa,GAAG;IAC1B,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAA0B;IAEzC,MAAM,CAAC,MAAM,IAAI,0BAA0B;IAI3C,oEAAoE;IACpE,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpC,sEAAsE;IACtE,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjC,8EAA8E;IAC9E,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,sEAAsE;IACtE,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,2DAA2D;IAC3D,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,mDAAmD;IACnD,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAKjE;;;OAGG;IACH,YAAY,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKzC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAKhD,yFAAyF;IACzF,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKpC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKrD,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI5B,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAIpC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIpC,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI3C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIhC,MAAM,CAAC,KAAK,UAAO,GAAG,IAAI;IAI1B,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIzD,KAAK,IAAI,mBAAmB;IAI5B,gEAAgE;IAChE,aAAa,IAAI,aAAa;IAI9B,oEAAoE;IACpE,iBAAiB,IAAI,aAAa;IAIlC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,GAAG;CAIZ"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FieldRedactorConfigBuilder = void 0;
|
|
4
|
+
const fieldRedactor_1 = require("./fieldRedactor");
|
|
4
5
|
const redactionRules_1 = require("../config/redactionRules");
|
|
5
6
|
/**
|
|
6
7
|
* Fluent builder for {@link FieldRedactorConfig} using doc labels (Shallow, Deep, Opaque, Remove, Schema).
|
|
@@ -21,13 +22,13 @@ class FieldRedactorConfigBuilder {
|
|
|
21
22
|
deep(...patterns) {
|
|
22
23
|
return this.appendRegex('deepSecretKeys', patterns);
|
|
23
24
|
}
|
|
24
|
-
/** Opaque — stringify entire values at matching keys (`
|
|
25
|
+
/** Opaque — stringify entire values at matching keys (`opaqueSecretKeys`). */
|
|
25
26
|
opaque(...patterns) {
|
|
26
|
-
return this.appendRegex('
|
|
27
|
+
return this.appendRegex('opaqueSecretKeys', patterns);
|
|
27
28
|
}
|
|
28
|
-
/** Remove — delete matching keys from output (`
|
|
29
|
+
/** Remove — delete matching keys from output (`removeSecretKeys`). */
|
|
29
30
|
remove(...patterns) {
|
|
30
|
-
return this.appendRegex('
|
|
31
|
+
return this.appendRegex('removeSecretKeys', patterns);
|
|
31
32
|
}
|
|
32
33
|
/** Alias for {@link FieldRedactorConfigBuilder.remove}. */
|
|
33
34
|
delete(...patterns) {
|
|
@@ -93,14 +94,11 @@ class FieldRedactorConfigBuilder {
|
|
|
93
94
|
}
|
|
94
95
|
/** Constructs a {@link FieldRedactor} from the built config. */
|
|
95
96
|
buildRedactor() {
|
|
96
|
-
|
|
97
|
-
const { FieldRedactor: Redactor } = require('./fieldRedactor');
|
|
98
|
-
return new Redactor(this.build());
|
|
97
|
+
return new fieldRedactor_1.FieldRedactor(this.build());
|
|
99
98
|
}
|
|
100
99
|
/** Like {@link FieldRedactor.createSafe} using the built config. */
|
|
101
100
|
buildSafeRedactor() {
|
|
102
|
-
|
|
103
|
-
return Redactor.createSafe(this.build());
|
|
101
|
+
return fieldRedactor_1.FieldRedactor.createSafe(this.build());
|
|
104
102
|
}
|
|
105
103
|
appendRegex(field, patterns) {
|
|
106
104
|
(0, redactionRules_1.appendRegExpArray)(this.config, field, patterns);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorConfigBuilder.js","sourceRoot":"","sources":["../../src/api/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fieldRedactorConfigBuilder.js","sourceRoot":"","sources":["../../src/api/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CustomObjectManager } from '../rules/customObjectManager';
|
|
2
|
-
import {
|
|
2
|
+
import { ObjectRedactorTraversal } from '../engine/objectRedactorTraversal';
|
|
3
3
|
import { PrimitiveRedactor } from '../engine/primitiveRedactor';
|
|
4
4
|
import { SecretManager } from '../rules/secretManager';
|
|
5
5
|
import { FieldRedactorConfig } from '../types';
|
|
@@ -11,7 +11,7 @@ export type FieldRedactorDeps = {
|
|
|
11
11
|
valuePatternMatcher: ValuePatternMatcher;
|
|
12
12
|
pathRuleMatcher: PathRuleMatcher;
|
|
13
13
|
customObjectManager: CustomObjectManager;
|
|
14
|
-
|
|
14
|
+
traversal: ObjectRedactorTraversal;
|
|
15
15
|
usesAsyncRedactor: boolean;
|
|
16
16
|
cloneInput: boolean;
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorDeps.d.ts","sourceRoot":"","sources":["../../src/api/fieldRedactorDeps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fieldRedactorDeps.d.ts","sourceRoot":"","sources":["../../src/api/fieldRedactorDeps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAA2B,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAA+B,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEhG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,SAAS,EAAE,uBAAuB,CAAC;IACnC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAKF,eAAO,MAAM,sBAAsB,YAAa,mBAAmB,KAAG,iBAiDrE,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildFieldRedactorDeps = void 0;
|
|
4
4
|
const customObjectManager_1 = require("../rules/customObjectManager");
|
|
5
|
-
const
|
|
5
|
+
const objectRedactorTraversal_1 = require("../engine/objectRedactorTraversal");
|
|
6
6
|
const primitiveRedactor_1 = require("../engine/primitiveRedactor");
|
|
7
7
|
const redactionRules_1 = require("../config/redactionRules");
|
|
8
8
|
const secretManager_1 = require("../rules/secretManager");
|
|
@@ -12,7 +12,7 @@ const resolveBoolean = (value, defaultValue) => typeof value === 'boolean' ? val
|
|
|
12
12
|
const buildFieldRedactorDeps = (config) => {
|
|
13
13
|
var _a;
|
|
14
14
|
const normalized = (_a = (0, redactionRules_1.normalizeFieldRedactorConfig)(config)) !== null && _a !== void 0 ? _a : {};
|
|
15
|
-
const { redactor, syncRedactor, deepSecretKeys,
|
|
15
|
+
const { redactor, syncRedactor, deepSecretKeys, opaqueSecretKeys, removeSecretKeys, customObjects, valuePatterns, pathRules, passKeys } = normalized;
|
|
16
16
|
const primitiveRedactor = new primitiveRedactor_1.PrimitiveRedactor({
|
|
17
17
|
ignoreBooleans: resolveBoolean(normalized.ignoreBooleans, false),
|
|
18
18
|
ignoreNullOrUndefined: resolveBoolean(normalized.ignoreNullOrUndefined, true),
|
|
@@ -22,21 +22,21 @@ const buildFieldRedactorDeps = (config) => {
|
|
|
22
22
|
const secretManager = new secretManager_1.SecretManager({
|
|
23
23
|
secretKeys: (0, redactionRules_1.resolveSecretKeys)(normalized),
|
|
24
24
|
deepSecretKeys,
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
opaqueSecretKeys,
|
|
26
|
+
removeSecretKeys,
|
|
27
27
|
passKeys
|
|
28
28
|
});
|
|
29
29
|
const valuePatternMatcher = (valuePatterns === null || valuePatterns === void 0 ? void 0 : valuePatterns.length) ? new valuePatternMatcher_1.ValuePatternMatcher(valuePatterns) : valuePatternMatcher_1.EMPTY_VALUE_PATTERN_MATCHER;
|
|
30
30
|
const pathRuleMatcher = (pathRules === null || pathRules === void 0 ? void 0 : pathRules.length) ? new pathRuleMatcher_1.PathRuleMatcher(pathRules) : pathRuleMatcher_1.EMPTY_PATH_RULE_MATCHER;
|
|
31
31
|
const customObjectManager = new customObjectManager_1.CustomObjectManager(customObjects, normalized.schemaNames);
|
|
32
|
-
const
|
|
32
|
+
const traversal = new objectRedactorTraversal_1.ObjectRedactorTraversal(primitiveRedactor, secretManager, customObjectManager, valuePatternMatcher, pathRuleMatcher);
|
|
33
33
|
return {
|
|
34
34
|
primitiveRedactor,
|
|
35
35
|
secretManager,
|
|
36
36
|
valuePatternMatcher,
|
|
37
37
|
pathRuleMatcher,
|
|
38
38
|
customObjectManager,
|
|
39
|
-
|
|
39
|
+
traversal,
|
|
40
40
|
usesAsyncRedactor: primitiveRedactor.usesAsyncRedactor(),
|
|
41
41
|
cloneInput: normalized.cloneInput !== false
|
|
42
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorDeps.js","sourceRoot":"","sources":["../../src/api/fieldRedactorDeps.ts"],"names":[],"mappings":";;;AAAA,sEAAmE;AACnE
|
|
1
|
+
{"version":3,"file":"fieldRedactorDeps.js","sourceRoot":"","sources":["../../src/api/fieldRedactorDeps.ts"],"names":[],"mappings":";;;AAAA,sEAAmE;AACnE,+EAA4E;AAC5E,mEAAgE;AAChE,6DAA2F;AAC3F,0DAAuD;AAEvD,8DAAoF;AACpF,sEAAgG;AAahG,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,YAAqB,EAAW,EAAE,CACpF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AAE7C,MAAM,sBAAsB,GAAG,CAAC,MAA4B,EAAqB,EAAE;;IACxF,MAAM,UAAU,GAAG,MAAA,IAAA,6CAA4B,EAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;IAC9D,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,EACT,GAAG,UAAU,CAAC;IAEf,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC;QAC9C,cAAc,EAAE,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC;QAChE,qBAAqB,EAAE,cAAc,CAAC,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC;QAC7E,QAAQ;QACR,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;QACtC,UAAU,EAAE,IAAA,kCAAiB,EAAC,UAAU,CAAC;QACzC,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,yCAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,iDAA2B,CAAC;IACzH,MAAM,eAAe,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,iCAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,yCAAuB,CAAC;IACrG,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,IAAI,iDAAuB,CAC3C,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,CAChB,CAAC;IAEF,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,mBAAmB;QACnB,SAAS;QACT,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,EAAE;QACxD,UAAU,EAAE,UAAU,CAAC,UAAU,KAAK,KAAK;KAC5C,CAAC;AACJ,CAAC,CAAC;AAjDW,QAAA,sBAAsB,0BAiDjC"}
|
package/dist/config/presets.d.ts
CHANGED
|
@@ -8,12 +8,12 @@ export declare const presets: {
|
|
|
8
8
|
* `{ name, type, value }` metadata entries with sibling-key redaction and auth key removal.
|
|
9
9
|
* Pair with your own `secretKeys` for field names that should trigger redaction.
|
|
10
10
|
*/
|
|
11
|
-
loggingMetadata(): Pick<FieldRedactorConfig, "customObjects" | "
|
|
11
|
+
loggingMetadata(): Pick<FieldRedactorConfig, "customObjects" | "removeSecretKeys">;
|
|
12
12
|
/**
|
|
13
13
|
* Application log preset from `realExamples.spec.ts`: common PII field patterns,
|
|
14
14
|
* auth key removal, and `{ name, value }` event metadata schemas.
|
|
15
15
|
*/
|
|
16
|
-
applicationLogging(): Pick<FieldRedactorConfig, "secretKeys" | "
|
|
16
|
+
applicationLogging(): Pick<FieldRedactorConfig, "secretKeys" | "removeSecretKeys" | "customObjects">;
|
|
17
17
|
/**
|
|
18
18
|
* `{ key, value }` shaped entries (blanket coverage small schema).
|
|
19
19
|
*/
|
package/dist/config/presets.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.presets = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
const AUTH_KEY_REMOVAL = {
|
|
6
|
-
|
|
6
|
+
removeSecretKeys: [/authKey/i]
|
|
7
7
|
};
|
|
8
8
|
const NAME_VALUE_EVENT_SCHEMA = {
|
|
9
9
|
name: types_1.CustomObjectMatchType.Ignore,
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { CustomObject, FieldRedactorConfig } from '../types';
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
2
|
+
/** Canonical key-rule regex fields (preferred Opaque/Remove names). */
|
|
3
|
+
export declare const SECRET_REGEX_FIELDS: readonly ["secretKeys", "deepSecretKeys", "opaqueSecretKeys", "removeSecretKeys"];
|
|
4
|
+
/** Legacy aliases accepted on input and merged into {@link SECRET_REGEX_FIELDS}. */
|
|
5
|
+
export declare const SECRET_REGEX_ALIAS_FIELDS: readonly ["fullSecretKeys", "deleteSecretKeys"];
|
|
4
6
|
export declare const VALUE_PATTERN_FIELDS: readonly ["valuePatterns"];
|
|
5
7
|
export declare const PASS_KEY_FIELDS: readonly ["passKeys"];
|
|
6
|
-
export declare const REGEX_ARRAY_CONFIG_FIELDS: readonly ["secretKeys", "deepSecretKeys", "
|
|
8
|
+
export declare const REGEX_ARRAY_CONFIG_FIELDS: readonly ["secretKeys", "deepSecretKeys", "opaqueSecretKeys", "removeSecretKeys", "fullSecretKeys", "deleteSecretKeys", "valuePatterns", "passKeys"];
|
|
7
9
|
export type SecretRegexField = (typeof SECRET_REGEX_FIELDS)[number];
|
|
8
10
|
export type RegexArrayConfigField = (typeof REGEX_ARRAY_CONFIG_FIELDS)[number];
|
|
9
|
-
export declare const RULE_LIST_FIELDS: readonly ["secretKeys", "deepSecretKeys", "
|
|
11
|
+
export declare const RULE_LIST_FIELDS: readonly ["secretKeys", "deepSecretKeys", "opaqueSecretKeys", "removeSecretKeys", "fullSecretKeys", "deleteSecretKeys", "valuePatterns", "passKeys", "customObjects"];
|
|
10
12
|
export declare const hasExplicitRedactionRules: (config?: FieldRedactorConfig) => boolean;
|
|
11
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Merge legacy `fullSecretKeys` / `deleteSecretKeys` into canonical
|
|
15
|
+
* `opaqueSecretKeys` / `removeSecretKeys` and drop the legacy keys.
|
|
16
|
+
*/
|
|
12
17
|
export declare const normalizeFieldRedactorConfig: (config?: FieldRedactorConfig) => FieldRedactorConfig | undefined;
|
|
13
18
|
/**
|
|
14
19
|
* When only value patterns / path rules are configured, shallow key matching must be disabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redactionRules.d.ts","sourceRoot":"","sources":["../../src/config/redactionRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE7D,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"redactionRules.d.ts","sourceRoot":"","sources":["../../src/config/redactionRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE7D,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,mFAAoF,CAAC;AAErH,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,iDAAkD,CAAC;AAEzF,eAAO,MAAM,oBAAoB,4BAA6B,CAAC;AAE/D,eAAO,MAAM,eAAe,uBAAwB,CAAC;AAErD,eAAO,MAAM,yBAAyB,sJAK5B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,eAAO,MAAM,gBAAgB,uKAA2D,CAAC;AAIzF,eAAO,MAAM,yBAAyB,YAAa,mBAAmB,KAAG,OAEpC,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,4BAA4B,YAAa,mBAAmB,KAAG,mBAAmB,GAAG,SAiBjG,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YAAY,mBAAmB,KAAQ,MAAM,EAAE,GAAG,SAmB/E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,qBAAqB,UACvD,mBAAmB,SACpB,CAAC,YACE,MAAM,EAAE,KACjB,IAEF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,eAAO,MAAM,yBAAyB,YAC3B,gBAAgB,EAAE,KAC1B,IAAI,CAAC,mBAAmB,EAAE,eAAe,GAAG,aAAa,CAS3D,CAAC;AAqBF,eAAO,MAAM,kBAAkB,WACrB,mBAAmB,WAClB,gBAAgB,EAAE,WAClB,OAAO,CAAC,mBAAmB,CAAC,KACpC,IASF,CAAC"}
|
|
@@ -12,8 +12,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.mergePartialConfig = exports.finalizeRegisteredSchemas = exports.appendRegExpArray = exports.resolveSecretKeys = exports.normalizeFieldRedactorConfig = exports.hasExplicitRedactionRules = exports.RULE_LIST_FIELDS = exports.REGEX_ARRAY_CONFIG_FIELDS = exports.PASS_KEY_FIELDS = exports.VALUE_PATTERN_FIELDS = exports.SECRET_REGEX_ALIAS_FIELDS = exports.SECRET_REGEX_FIELDS = void 0;
|
|
15
|
-
|
|
16
|
-
exports.
|
|
15
|
+
/** Canonical key-rule regex fields (preferred Opaque/Remove names). */
|
|
16
|
+
exports.SECRET_REGEX_FIELDS = ['secretKeys', 'deepSecretKeys', 'opaqueSecretKeys', 'removeSecretKeys'];
|
|
17
|
+
/** Legacy aliases accepted on input and merged into {@link SECRET_REGEX_FIELDS}. */
|
|
18
|
+
exports.SECRET_REGEX_ALIAS_FIELDS = ['fullSecretKeys', 'deleteSecretKeys'];
|
|
17
19
|
exports.VALUE_PATTERN_FIELDS = ['valuePatterns'];
|
|
18
20
|
exports.PASS_KEY_FIELDS = ['passKeys'];
|
|
19
21
|
exports.REGEX_ARRAY_CONFIG_FIELDS = [
|
|
@@ -27,19 +29,22 @@ const hasNonEmptyArray = (value) => value !== undefined && value.length > 0;
|
|
|
27
29
|
const hasExplicitRedactionRules = (config) => exports.RULE_LIST_FIELDS.some((field) => hasNonEmptyArray(config === null || config === void 0 ? void 0 : config[field])) ||
|
|
28
30
|
hasNonEmptyArray(config === null || config === void 0 ? void 0 : config.pathRules);
|
|
29
31
|
exports.hasExplicitRedactionRules = hasExplicitRedactionRules;
|
|
30
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Merge legacy `fullSecretKeys` / `deleteSecretKeys` into canonical
|
|
34
|
+
* `opaqueSecretKeys` / `removeSecretKeys` and drop the legacy keys.
|
|
35
|
+
*/
|
|
31
36
|
const normalizeFieldRedactorConfig = (config) => {
|
|
32
37
|
var _a, _b;
|
|
33
38
|
if (!config) {
|
|
34
39
|
return config;
|
|
35
40
|
}
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
if (!(
|
|
41
|
+
const fullSecretKeys = config.fullSecretKeys;
|
|
42
|
+
const deleteSecretKeys = config.deleteSecretKeys;
|
|
43
|
+
if (!(fullSecretKeys === null || fullSecretKeys === void 0 ? void 0 : fullSecretKeys.length) && !(deleteSecretKeys === null || deleteSecretKeys === void 0 ? void 0 : deleteSecretKeys.length)) {
|
|
39
44
|
return config;
|
|
40
45
|
}
|
|
41
|
-
const {
|
|
42
|
-
return Object.assign(Object.assign({}, rest), {
|
|
46
|
+
const { fullSecretKeys: _full, deleteSecretKeys: _delete } = config, rest = __rest(config, ["fullSecretKeys", "deleteSecretKeys"]);
|
|
47
|
+
return Object.assign(Object.assign({}, rest), { opaqueSecretKeys: [...((_a = config.opaqueSecretKeys) !== null && _a !== void 0 ? _a : []), ...(fullSecretKeys !== null && fullSecretKeys !== void 0 ? fullSecretKeys : [])], removeSecretKeys: [...((_b = config.removeSecretKeys) !== null && _b !== void 0 ? _b : []), ...(deleteSecretKeys !== null && deleteSecretKeys !== void 0 ? deleteSecretKeys : [])] });
|
|
43
48
|
};
|
|
44
49
|
exports.normalizeFieldRedactorConfig = normalizeFieldRedactorConfig;
|
|
45
50
|
/**
|
|
@@ -48,14 +53,14 @@ exports.normalizeFieldRedactorConfig = normalizeFieldRedactorConfig;
|
|
|
48
53
|
* Expects an already-normalized config (aliases merged).
|
|
49
54
|
*/
|
|
50
55
|
const resolveSecretKeys = (config = {}) => {
|
|
51
|
-
const { secretKeys, deepSecretKeys,
|
|
56
|
+
const { secretKeys, deepSecretKeys, opaqueSecretKeys, removeSecretKeys, customObjects, valuePatterns, pathRules } = config;
|
|
52
57
|
if (secretKeys !== undefined) {
|
|
53
58
|
return secretKeys;
|
|
54
59
|
}
|
|
55
60
|
if (((valuePatterns === null || valuePatterns === void 0 ? void 0 : valuePatterns.length) || (pathRules === null || pathRules === void 0 ? void 0 : pathRules.length)) &&
|
|
56
61
|
!(deepSecretKeys === null || deepSecretKeys === void 0 ? void 0 : deepSecretKeys.length) &&
|
|
57
|
-
!(
|
|
58
|
-
!(
|
|
62
|
+
!(opaqueSecretKeys === null || opaqueSecretKeys === void 0 ? void 0 : opaqueSecretKeys.length) &&
|
|
63
|
+
!(removeSecretKeys === null || removeSecretKeys === void 0 ? void 0 : removeSecretKeys.length) &&
|
|
59
64
|
!(customObjects === null || customObjects === void 0 ? void 0 : customObjects.length)) {
|
|
60
65
|
return [];
|
|
61
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redactionRules.js","sourceRoot":"","sources":["../../src/config/redactionRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"redactionRules.js","sourceRoot":"","sources":["../../src/config/redactionRules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,uEAAuE;AAC1D,QAAA,mBAAmB,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,CAAU,CAAC;AAErH,oFAAoF;AACvE,QAAA,yBAAyB,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAU,CAAC;AAE5E,QAAA,oBAAoB,GAAG,CAAC,eAAe,CAAU,CAAC;AAElD,QAAA,eAAe,GAAG,CAAC,UAAU,CAAU,CAAC;AAExC,QAAA,yBAAyB,GAAG;IACvC,GAAG,2BAAmB;IACtB,GAAG,iCAAyB;IAC5B,GAAG,4BAAoB;IACvB,GAAG,uBAAe;CACV,CAAC;AAKE,QAAA,gBAAgB,GAAG,CAAC,GAAG,iCAAyB,EAAE,eAAe,CAAU,CAAC;AAEzF,MAAM,gBAAgB,GAAG,CAAI,KAAsB,EAAgB,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAEvG,MAAM,yBAAyB,GAAG,CAAC,MAA4B,EAAW,EAAE,CACjF,wBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,KAAK,CAA0B,CAAC,CAAC;IAC5F,gBAAgB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,CAAC;AAFzB,QAAA,yBAAyB,6BAEA;AAEtC;;;GAGG;AACI,MAAM,4BAA4B,GAAG,CAAC,MAA4B,EAAmC,EAAE;;IAC5G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACjD,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,KAAc,MAAM,EAAf,IAAI,UAAK,MAAM,EAAtE,sCAA6D,CAAS,CAAC;IAC7E,uCACK,IAAI,KACP,gBAAgB,EAAE,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC,EAAE,GAAG,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAC,EACjF,gBAAgB,EAAE,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE,CAAC,EAAE,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,CAAC,CAAC,IACnF;AACJ,CAAC,CAAC;AAjBW,QAAA,4BAA4B,gCAiBvC;AAEF;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA8B,EAAE,EAAwB,EAAE;IAC1F,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,GAC/G,MAAM,CAAC;IAET,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IACE,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,CAAC;QAC5C,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAA;QACvB,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA;QACzB,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA;QACzB,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,EACtB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B;AAEK,MAAM,iBAAiB,GAAG,CAC/B,MAA2B,EAC3B,KAAQ,EACR,QAAkB,EACZ,EAAE;;IACR,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1D,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAIK,MAAM,yBAAyB,GAAG,CACvC,OAA2B,EACiC,EAAE;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;AAC7G,CAAC,CAAC;AAXW,QAAA,yBAAyB,6BAWpC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,uBAAuB;IACvB,YAAY;IACZ,QAAQ;IACR,iBAAiB;CAC0C,CAAC;AAE9D,MAAM,iBAAiB,GAAG,CAAC,MAA2B,EAAE,OAAqC,EAAQ,EAAE;IACrG,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAChC,MAA2B,EAC3B,OAA2B,EAC3B,OAAqC,EAC/B,EAAE;;IACR,KAAK,MAAM,KAAK,IAAI,iCAAyB,EAAE,CAAC;QAC9C,IAAI,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,MAAM,EAAE,CAAC;YAC3B,IAAA,yBAAiB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAA,OAAO,CAAC,aAAa,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAbW,QAAA,kBAAkB,sBAa7B"}
|
|
@@ -10,7 +10,7 @@ var schemaSiblingKey_1 = require("../rules/schemaSiblingKey");
|
|
|
10
10
|
Object.defineProperty(exports, "getStringSpecifiedCustomObjectSecretKeyValueIfExists", { enumerable: true, get: function () { return schemaSiblingKey_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists; } });
|
|
11
11
|
function redactPrimitiveValueIfSecret(secretManager, valuePatternMatcher, redact, key, value, forceDeepRedaction) {
|
|
12
12
|
if (value instanceof Date || typeof value === 'function') {
|
|
13
|
-
if (secretManager.
|
|
13
|
+
if (secretManager.isOpaqueSecretKey(key) ||
|
|
14
14
|
forceDeepRedaction ||
|
|
15
15
|
secretManager.isSecretKey(key) ||
|
|
16
16
|
secretManager.isDeepSecretKey(key)) {
|
|
@@ -18,7 +18,7 @@ function redactPrimitiveValueIfSecret(secretManager, valuePatternMatcher, redact
|
|
|
18
18
|
}
|
|
19
19
|
return value;
|
|
20
20
|
}
|
|
21
|
-
if (secretManager.
|
|
21
|
+
if (secretManager.isOpaqueSecretKey(key)) {
|
|
22
22
|
return redact((0, primitiveCoercion_1.getStringValue)(value));
|
|
23
23
|
}
|
|
24
24
|
if (forceDeepRedaction || secretManager.isSecretKey(key) || secretManager.isDeepSecretKey(key)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorHelpers.js","sourceRoot":"","sources":["../../src/engine/objectRedactorHelpers.ts"],"names":[],"mappings":";;;AAUA,oEAsCC;AA7CD,iEAAkF;AAIlF,+DAAkF;AAAzE,mHAAA,cAAc,OAAA;AAAE,0HAAA,qBAAqB,OAAA;AAC9C,8DAAiG;AAAxF,wJAAA,oDAAoD,OAAA;AAE7D,SAAgB,4BAA4B,CAC1C,aAA4B,EAC5B,mBAAwC,EACxC,MAA4B,EAC5B,GAAyB,EACzB,KAAgC,EAChC,kBAA2B;IAE3B,IAAI,KAAK,YAAY,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACzD,IACE,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"objectRedactorHelpers.js","sourceRoot":"","sources":["../../src/engine/objectRedactorHelpers.ts"],"names":[],"mappings":";;;AAUA,oEAsCC;AA7CD,iEAAkF;AAIlF,+DAAkF;AAAzE,mHAAA,cAAc,OAAA;AAAE,0HAAA,qBAAqB,OAAA;AAC9C,8DAAiG;AAAxF,wJAAA,oDAAoD,OAAA;AAE7D,SAAgB,4BAA4B,CAC1C,aAA4B,EAC5B,mBAAwC,EACxC,MAA4B,EAC5B,GAAyB,EACzB,KAAgC,EAChC,kBAA2B;IAE3B,IAAI,KAAK,YAAY,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACzD,IACE,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC;YACpC,kBAAkB;YAClB,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC;YAC9B,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EAClC,CAAC;YACD,OAAO,MAAM,CAAC,IAAA,kCAAc,EAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,IAAA,kCAAc,EAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,kBAAkB,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/F,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,MAAM,CAAC,KAA4B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,mBAAmB,CAAC,YAAY,CAAC,IAAA,yCAAqB,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,KAA4B,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { PathRuleMatcher } from '../rules/pathRuleMatcher';
|
|
|
7
7
|
/**
|
|
8
8
|
* Unified JSON traversal for in-place and copy-on-write redaction.
|
|
9
9
|
* Sync and async paths share one implementation; async mode propagates Promises only when configured.
|
|
10
|
+
* CustomObjects take highest precedence, followed by opaque (`opaqueSecretKeys`), then deep, then shallow.
|
|
10
11
|
*/
|
|
11
12
|
export declare class ObjectRedactorTraversal {
|
|
12
13
|
private readonly primitiveRedactor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorTraversal.d.ts","sourceRoot":"","sources":["../../src/engine/objectRedactorTraversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAY3D
|
|
1
|
+
{"version":3,"file":"objectRedactorTraversal.d.ts","sourceRoot":"","sources":["../../src/engine/objectRedactorTraversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAY3D;;;;GAIG;AACH,qBAAa,uBAAuB;IAOhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IATtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAG1B,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC7C,gBAAgB,EAAE,mBAAmB,EACpB,mBAAmB,EAAE,mBAAmB,EACzD,eAAe,EAAE,eAAe;IAiClC,iBAAiB,IAAI,OAAO;IAI5B,aAAa,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IASrD,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IASzD,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAInE,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,yBAAyB;CAwBlC"}
|
|
@@ -11,6 +11,7 @@ const customObjectFieldHandler_1 = require("./customObjectFieldHandler");
|
|
|
11
11
|
/**
|
|
12
12
|
* Unified JSON traversal for in-place and copy-on-write redaction.
|
|
13
13
|
* Sync and async paths share one implementation; async mode propagates Promises only when configured.
|
|
14
|
+
* CustomObjects take highest precedence, followed by opaque (`opaqueSecretKeys`), then deep, then shallow.
|
|
14
15
|
*/
|
|
15
16
|
class ObjectRedactorTraversal {
|
|
16
17
|
constructor(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher, pathRuleMatcher) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorTraversal.js","sourceRoot":"","sources":["../../src/engine/objectRedactorTraversal.ts"],"names":[],"mappings":";;;AAAA,oCAWkB;AAIlB,qEAAsF;AAGtF,mEAIiC;AACjC,wDAAuE;AACvE,mDAAmF;AACnF,qDAAiD;AACjD,yEAAsE;AAGtE
|
|
1
|
+
{"version":3,"file":"objectRedactorTraversal.js","sourceRoot":"","sources":["../../src/engine/objectRedactorTraversal.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,10 +47,10 @@ class RuleResolver {
|
|
|
47
47
|
return (match === null || match === void 0 ? void 0 : match.mode) === 'pass' ? undefined : match;
|
|
48
48
|
}
|
|
49
49
|
shouldRemoveByKey(key) {
|
|
50
|
-
return this.secretManager.
|
|
50
|
+
return this.secretManager.isRemoveSecretKey(key);
|
|
51
51
|
}
|
|
52
52
|
shouldOpaqueByKey(key) {
|
|
53
|
-
return this.secretManager.
|
|
53
|
+
return this.secretManager.isOpaqueSecretKey(key);
|
|
54
54
|
}
|
|
55
55
|
shouldTraverseContainerByKey(key, forceDeepRedaction) {
|
|
56
56
|
return (this.secretManager.isSecretKey(key) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleResolver.js","sourceRoot":"","sources":["../../src/rules/ruleResolver.ts"],"names":[],"mappings":";;;AACA,yDAA0F;AAC1F,+CAAwE;AACxE,qDAAoD;AACpD,iEAAkE;AAIlE,oCAUkB;AAoBlB,MAAM,wBAAwB,GAA2C;IACvE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5B,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;CAC/B,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,QAAgC,EAAY,EAAE,CACxE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC;AAE/E,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,MAAgC,EAChC,IAAwB,EACxB,SAAkF,EAAE,EACpE,EAAE,CAAC,iBAAG,IAAI,EAAE,MAAM,EAAE,IAAI,IAAK,MAAM,EAAG,CAAC;AAEzD,MAAM,aAAa,GAAG,CAAC,aAA4B,EAAE,GAAyB,EAAE,IAAa,EAAsB,EAAE,CACnH,aAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAE7C,qEAAqE;AAC9D,MAAM,sBAAsB,GAAG,CACpC,aAA4B,EAC5B,eAAgC,EAChC,GAAW,EACX,YAAoC,EACpC,kBAA2B,EACT,EAAE;IACpB,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,kBAAkB,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC;AAjBW,QAAA,sBAAsB,0BAiBjC;AAEF;;;GAGG;AACH,MAAa,YAAY;IACvB,YACmB,aAA4B,EAC5B,eAAgC,EAChC,mBAAwC,EACxC,mBAAwC;QAHxC,kBAAa,GAAb,aAAa,CAAe;QAC5B,oBAAe,GAAf,eAAe,CAAiB;QAChC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACxD,CAAC;IAEJ,sBAAsB,CACpB,YAAoC,EACpC,GAAW,EACX,kBAA2B;QAE3B,OAAO,IAAA,8BAAsB,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACjH,CAAC;IAED,mBAAmB,CAAC,QAAgC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC7D,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACpD,CAAC;IAED,iBAAiB,CAAC,GAAyB;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,iBAAiB,CAAC,GAAyB;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"ruleResolver.js","sourceRoot":"","sources":["../../src/rules/ruleResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { SecretManagerConfig, SecretSpecifierValue } from '../types';
|
|
|
2
2
|
export type KeyRule = 'remove' | 'opaque' | 'deep' | 'shallow';
|
|
3
3
|
/**
|
|
4
4
|
* Utility class for managing secrets and determining if a given value is a secret of any type. If no secrets of
|
|
5
|
-
* any type are provided in the configuration then all values are considered secrets (but not deep or
|
|
5
|
+
* any type are provided in the configuration then all values are considered secrets (but not deep or opaque secrets).
|
|
6
6
|
*/
|
|
7
7
|
export declare class SecretManager {
|
|
8
8
|
private secretKeys?;
|
|
9
9
|
private deepSecretKeys?;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
10
|
+
private opaqueSecretKeys?;
|
|
11
|
+
private removeSecretKeys?;
|
|
12
12
|
private passKeys?;
|
|
13
13
|
constructor(config: SecretManagerConfig);
|
|
14
14
|
/**
|
|
@@ -17,8 +17,8 @@ export declare class SecretManager {
|
|
|
17
17
|
*/
|
|
18
18
|
isSecretKey(key: SecretSpecifierValue): boolean;
|
|
19
19
|
isDeepSecretKey(key: SecretSpecifierValue): boolean;
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
isOpaqueSecretKey(key: SecretSpecifierValue): boolean;
|
|
21
|
+
isRemoveSecretKey(key: SecretSpecifierValue): boolean;
|
|
22
22
|
/** Determines if a key is allowlisted and should not be redacted under deep parents. */
|
|
23
23
|
isPassKey(key: SecretSpecifierValue): boolean;
|
|
24
24
|
getKeyRulePattern(key: SecretSpecifierValue, rule: KeyRule): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretManager.d.ts","sourceRoot":"","sources":["../../src/rules/secretManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"secretManager.d.ts","sourceRoot":"","sources":["../../src/rules/secretManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAS/D;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAC,CAAW;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAW;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAW;gBAEhB,MAAM,EAAE,mBAAmB;IAcvC;;;OAGG;IACI,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAQ/C,eAAe,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAInD,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAIrD,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAI5D,wFAAwF;IACjF,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAI7C,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAK/E,eAAe,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;IAc7E,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,OAAO,CAAC,MAAM,CAAC,eAAe;CAG/B"}
|
|
@@ -3,17 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SecretManager = void 0;
|
|
4
4
|
const regexUtils_1 = require("../util/regexUtils");
|
|
5
5
|
const KEY_RULE_PRECEDENCE = ['remove', 'opaque', 'deep', 'shallow'];
|
|
6
|
+
const mergeRegexLists = (...lists) => {
|
|
7
|
+
const merged = lists.flatMap((list) => list !== null && list !== void 0 ? list : []);
|
|
8
|
+
return merged.length ? merged : undefined;
|
|
9
|
+
};
|
|
6
10
|
/**
|
|
7
11
|
* Utility class for managing secrets and determining if a given value is a secret of any type. If no secrets of
|
|
8
|
-
* any type are provided in the configuration then all values are considered secrets (but not deep or
|
|
12
|
+
* any type are provided in the configuration then all values are considered secrets (but not deep or opaque secrets).
|
|
9
13
|
*/
|
|
10
14
|
class SecretManager {
|
|
11
15
|
constructor(config) {
|
|
12
16
|
this.deepSecretKeys = config.deepSecretKeys;
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
17
|
+
this.opaqueSecretKeys = mergeRegexLists(config.opaqueSecretKeys, config.fullSecretKeys);
|
|
18
|
+
this.removeSecretKeys = mergeRegexLists(config.removeSecretKeys, config.deleteSecretKeys);
|
|
15
19
|
this.passKeys = config.passKeys;
|
|
16
|
-
|
|
20
|
+
const hasScopedKeyRules = !!(this.deepSecretKeys || this.opaqueSecretKeys || this.removeSecretKeys);
|
|
21
|
+
if (!config.secretKeys && hasScopedKeyRules) {
|
|
17
22
|
this.secretKeys = [];
|
|
18
23
|
}
|
|
19
24
|
else {
|
|
@@ -33,10 +38,10 @@ class SecretManager {
|
|
|
33
38
|
isDeepSecretKey(key) {
|
|
34
39
|
return this.matchesRule(key, 'deep');
|
|
35
40
|
}
|
|
36
|
-
|
|
41
|
+
isOpaqueSecretKey(key) {
|
|
37
42
|
return this.matchesRule(key, 'opaque');
|
|
38
43
|
}
|
|
39
|
-
|
|
44
|
+
isRemoveSecretKey(key) {
|
|
40
45
|
return this.matchesRule(key, 'remove');
|
|
41
46
|
}
|
|
42
47
|
/** Determines if a key is allowlisted and should not be redacted under deep parents. */
|
|
@@ -65,9 +70,9 @@ class SecretManager {
|
|
|
65
70
|
regexListFor(rule) {
|
|
66
71
|
switch (rule) {
|
|
67
72
|
case 'remove':
|
|
68
|
-
return this.
|
|
73
|
+
return this.removeSecretKeys;
|
|
69
74
|
case 'opaque':
|
|
70
|
-
return this.
|
|
75
|
+
return this.opaqueSecretKeys;
|
|
71
76
|
case 'deep':
|
|
72
77
|
return this.deepSecretKeys;
|
|
73
78
|
case 'shallow':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretManager.js","sourceRoot":"","sources":["../../src/rules/secretManager.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAKlD,MAAM,mBAAmB,GAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAE/E;;;GAGG;AACH,MAAa,aAAa;IAOxB,YAAY,MAA2B;QACrC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"secretManager.js","sourceRoot":"","sources":["../../src/rules/secretManager.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAKlD,MAAM,mBAAmB,GAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAE/E,MAAM,eAAe,GAAG,CAAC,GAAG,KAAkC,EAAwB,EAAE;IACtF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAa,aAAa;IAOxB,YAAY,MAA2B;QACrC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACxF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,GAAyB;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,eAAe,CAAC,GAAyB;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,iBAAiB,CAAC,GAAyB;QAChD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,iBAAiB,CAAC,GAAyB;QAChD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,wFAAwF;IACjF,SAAS,CAAC,GAAyB;QACxC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAEM,iBAAiB,CAAC,GAAyB,EAAE,IAAa;QAC/D,MAAM,KAAK,GAAG,aAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,yBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAEM,eAAe,CAAC,GAAyB;QAC9C,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW,CAAC,GAAyB,EAAE,IAAa;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEO,YAAY,CAAC,IAAa;QAChC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC/B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC/B,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,cAAc,CAAC;YAC7B,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,GAAyB,EAAE,OAAkB;QAC5E,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,KAA2B,EAAE,OAAiB;QAC3E,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;CACF;AA9FD,sCA8FC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -37,14 +37,14 @@ export type SyncRedactor = (value: RedactorInput) => string;
|
|
|
37
37
|
* over the legacy Full / Delete names (same numeric values).
|
|
38
38
|
*/
|
|
39
39
|
export declare enum CustomObjectMatchType {
|
|
40
|
-
/** @deprecated Prefer {@link CustomObjectMatchType.Remove}. */
|
|
41
|
-
Delete = 0,
|
|
42
40
|
/** Remove — delete the field from output. */
|
|
43
41
|
Remove = 0,
|
|
44
|
-
/** @deprecated Prefer {@link CustomObjectMatchType.
|
|
45
|
-
|
|
42
|
+
/** @deprecated Prefer {@link CustomObjectMatchType.Remove}. */
|
|
43
|
+
Delete = 0,
|
|
46
44
|
/** Opaque — stringify the entire value, then redact. */
|
|
47
45
|
Opaque = 1,
|
|
46
|
+
/** @deprecated Prefer {@link CustomObjectMatchType.Opaque}. */
|
|
47
|
+
Full = 1,
|
|
48
48
|
Deep = 2,
|
|
49
49
|
Shallow = 3,
|
|
50
50
|
Pass = 4,
|
|
@@ -68,20 +68,20 @@ export type SecretManagerConfig = {
|
|
|
68
68
|
secretKeys?: RegExp[];
|
|
69
69
|
/** Deep — redact matching keys and all descendant primitives (`deepSecretKeys`). */
|
|
70
70
|
deepSecretKeys?: RegExp[];
|
|
71
|
+
/** Opaque — stringify entire value at matching keys, then redact. */
|
|
72
|
+
opaqueSecretKeys?: RegExp[];
|
|
71
73
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
+
* @deprecated Prefer {@link SecretManagerConfig.opaqueSecretKeys}.
|
|
75
|
+
* Still accepted and merged into opaqueSecretKeys during construction / normalize.
|
|
74
76
|
*/
|
|
75
77
|
fullSecretKeys?: RegExp[];
|
|
76
|
-
/**
|
|
77
|
-
|
|
78
|
+
/** Remove — delete matching keys from output. */
|
|
79
|
+
removeSecretKeys?: RegExp[];
|
|
78
80
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
+
* @deprecated Prefer {@link SecretManagerConfig.removeSecretKeys}.
|
|
82
|
+
* Still accepted and merged into removeSecretKeys during construction / normalize.
|
|
81
83
|
*/
|
|
82
84
|
deleteSecretKeys?: RegExp[];
|
|
83
|
-
/** Remove — preferred name for {@link SecretManagerConfig.deleteSecretKeys}. */
|
|
84
|
-
removeSecretKeys?: RegExp[];
|
|
85
85
|
/**
|
|
86
86
|
* Allowlist — matching key names are never redacted, even under deep or opaque parents (`passKeys`).
|
|
87
87
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE7D,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,IAAI,GAAG,YAAY,CAAC;AAEhE,8BAA8B;AAC9B,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAElE,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;AAErD,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;AAEtD,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAEhD,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEjE,mGAAmG;AACnG,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC;AAE5D;;;;GAIG;AACH,oBAAY,qBAAqB;IAC/B,+DAA+D;IAC/D,MAAM,IAAI;IACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -8,14 +8,14 @@ exports.isJsonObject = exports.CustomObjectMatchType = void 0;
|
|
|
8
8
|
*/
|
|
9
9
|
var CustomObjectMatchType;
|
|
10
10
|
(function (CustomObjectMatchType) {
|
|
11
|
-
/** @deprecated Prefer {@link CustomObjectMatchType.Remove}. */
|
|
12
|
-
CustomObjectMatchType[CustomObjectMatchType["Delete"] = 0] = "Delete";
|
|
13
11
|
/** Remove — delete the field from output. */
|
|
14
12
|
CustomObjectMatchType[CustomObjectMatchType["Remove"] = 0] = "Remove";
|
|
15
|
-
/** @deprecated Prefer {@link CustomObjectMatchType.
|
|
16
|
-
CustomObjectMatchType[CustomObjectMatchType["
|
|
13
|
+
/** @deprecated Prefer {@link CustomObjectMatchType.Remove}. */
|
|
14
|
+
CustomObjectMatchType[CustomObjectMatchType["Delete"] = 0] = "Delete";
|
|
17
15
|
/** Opaque — stringify the entire value, then redact. */
|
|
18
16
|
CustomObjectMatchType[CustomObjectMatchType["Opaque"] = 1] = "Opaque";
|
|
17
|
+
/** @deprecated Prefer {@link CustomObjectMatchType.Opaque}. */
|
|
18
|
+
CustomObjectMatchType[CustomObjectMatchType["Full"] = 1] = "Full";
|
|
19
19
|
CustomObjectMatchType[CustomObjectMatchType["Deep"] = 2] = "Deep";
|
|
20
20
|
CustomObjectMatchType[CustomObjectMatchType["Shallow"] = 3] = "Shallow";
|
|
21
21
|
CustomObjectMatchType[CustomObjectMatchType["Pass"] = 4] = "Pass";
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA4CA;;;;GAIG;AACH,IAAY,qBAaX;AAbD,WAAY,qBAAqB;IAC/B,+DAA+D;IAC/D,qEAAU,CAAA;IACV,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA4CA;;;;GAIG;AACH,IAAY,qBAaX;AAbD,WAAY,qBAAqB;IAC/B,6CAA6C;IAC7C,qEAAU,CAAA;IACV,+DAA+D;IAC/D,qEAAU,CAAA;IACV,wDAAwD;IACxD,qEAAU,CAAA;IACV,+DAA+D;IAC/D,iEAAQ,CAAA;IACR,iEAAQ,CAAA;IACR,uEAAW,CAAA;IACX,iEAAQ,CAAA;IACR,qEAAU,CAAA;AACZ,CAAC,EAbW,qBAAqB,qCAArB,qBAAqB,QAahC;AAoIM,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAuB,EAAE,CAChF,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAD/E,QAAA,YAAY,gBACmE"}
|
|
@@ -4,7 +4,7 @@ Common mistakes when configuring Field Redactor — and what to do instead. Many
|
|
|
4
4
|
|
|
5
5
|
## Using `new FieldRedactor()` without rules
|
|
6
6
|
|
|
7
|
-
**Problem:** With no `secretKeys`, `deepSecretKeys`, `
|
|
7
|
+
**Problem:** With no `secretKeys`, `deepSecretKeys`, `opaqueSecretKeys`, `removeSecretKeys`, or `customObjects`, every value is redacted. Easy to ship a config that wipes entire payloads.
|
|
8
8
|
|
|
9
9
|
**Instead:** Use `FieldRedactor.createSafe()`, `FieldRedactorConfigBuilder.buildSafeRedactor()`, or the builder with at least one explicit rule.
|
|
10
10
|
|
|
@@ -33,7 +33,7 @@ const metadataSchema: CustomObject = {
|
|
|
33
33
|
|
|
34
34
|
## Sibling key rules
|
|
35
35
|
|
|
36
|
-
When a schema field is a **string** (e.g. `value: 'name'`), that string names a sibling key. The sibling's **value** is tested against `secretKeys`, `deepSecretKeys`, `
|
|
36
|
+
When a schema field is a **string** (e.g. `value: 'name'`), that string names a sibling key. The sibling's **value** is tested against `secretKeys`, `deepSecretKeys`, `opaqueSecretKeys`, and `removeSecretKeys`.
|
|
37
37
|
|
|
38
38
|
Falsy sibling values (`""`, `0`, `false`) are evaluated when the sibling key is present.
|
|
39
39
|
|
|
@@ -104,7 +104,7 @@ const redactor = FieldRedactor.createSafe({
|
|
|
104
104
|
});
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
`presets.loggingMetadata()` includes `{ name, type, value }` schema and `
|
|
107
|
+
`presets.loggingMetadata()` includes `{ name, type, value }` schema and `removeSecretKeys: [/authKey/i]`.
|
|
108
108
|
|
|
109
109
|
## Related
|
|
110
110
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Migration: npm 1.5.x → 1.6.x
|
|
2
2
|
|
|
3
|
-
**1.6.0** is a minor release: new features and aliases with no required config changes for typical upgrades from **1.5.0**. **1.6.1**
|
|
3
|
+
**1.6.0** is a minor release: new features and aliases with no required config changes for typical upgrades from **1.5.0**. **1.6.1** / **1.6.2** are internal cleanup patches (install only; see [v1.6.1](../release-notes/v1.6.1.md) and [v1.6.2](../release-notes/v1.6.2.md)).
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install field-redactor@1.6.
|
|
8
|
+
npm install field-redactor@1.6.2
|
|
9
9
|
# or
|
|
10
|
-
yarn add field-redactor@1.6.
|
|
10
|
+
yarn add field-redactor@1.6.2
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## What you can adopt (optional)
|
|
@@ -32,7 +32,7 @@ See [Path rules & allowlists](path-rules.md).
|
|
|
32
32
|
| `CustomObjectMatchType.Opaque` | `CustomObjectMatchType.Full` |
|
|
33
33
|
| `CustomObjectMatchType.Remove` | `CustomObjectMatchType.Delete` |
|
|
34
34
|
|
|
35
|
-
Builder methods `.opaque()` / `.remove()`
|
|
35
|
+
Builder methods `.opaque()` / `.remove()` write `opaqueSecretKeys` / `removeSecretKeys`. Legacy `fullSecretKeys` / `deleteSecretKeys` remain accepted on config objects and are normalized internally.
|
|
36
36
|
|
|
37
37
|
## Behavior-sensitive notes
|
|
38
38
|
|
|
@@ -52,6 +52,7 @@ Source files were reorganized under `api/`, `engine/`, `rules/`, etc. That affec
|
|
|
52
52
|
|
|
53
53
|
## Links
|
|
54
54
|
|
|
55
|
+
- [Release notes v1.6.2](../release-notes/v1.6.2.md)
|
|
55
56
|
- [Release notes v1.6.1](../release-notes/v1.6.1.md)
|
|
56
57
|
- [Release notes v1.6.0](../release-notes/v1.6.0.md)
|
|
57
58
|
- [CHANGELOG](../../CHANGELOG.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Secret key modes
|
|
2
2
|
|
|
3
|
-
FieldRedactor applies **Shallow**, **Deep**, **Opaque**, and **Remove** rules via regex key matching. Throughout the docs, these are the conceptual names; the config fields are `secretKeys`, `deepSecretKeys`, `
|
|
3
|
+
FieldRedactor applies **Shallow**, **Deep**, **Opaque**, and **Remove** rules via regex key matching. Throughout the docs, these are the conceptual names; the config fields are `secretKeys`, `deepSecretKeys`, `opaqueSecretKeys`, and `removeSecretKeys` (legacy aliases `fullSecretKeys` / `deleteSecretKeys` still work).
|
|
4
4
|
|
|
5
5
|
**Precedence** (highest wins): Schema (`customObjects`) → Opaque → Deep → Remove → Shallow → Value-pattern (`valuePatterns`)
|
|
6
6
|
|
|
@@ -20,8 +20,8 @@ Same input for every row:
|
|
|
20
20
|
| --- | --- | --- | --- |
|
|
21
21
|
| **Shallow** | `secretKeys` | `[/email/]` | `contactInfo.email` → `"REDACTED"`; `city`, `username` unchanged |
|
|
22
22
|
| **Deep** | `deepSecretKeys` | `[/contactInfo/]` | All primitives inside `contactInfo` redacted |
|
|
23
|
-
| **Opaque** | `
|
|
24
|
-
| **Remove** | `
|
|
23
|
+
| **Opaque** | `opaqueSecretKeys` | `[/contactInfo/]` | Entire `contactInfo` replaced with `"REDACTED"` |
|
|
24
|
+
| **Remove** | `removeSecretKeys` | `[/authKey/]` | `authKey` key removed from output |
|
|
25
25
|
|
|
26
26
|
### Builder API
|
|
27
27
|
|
|
@@ -74,13 +74,13 @@ await fieldRedactor.redact({
|
|
|
74
74
|
// → email, id, and other primitives under contactInfo are redacted
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
## Opaque (`
|
|
77
|
+
## Opaque (`opaqueSecretKeys`)
|
|
78
78
|
|
|
79
79
|
Stringify the entire value at matching keys, then redact. Typical for objects and arrays you want to hide completely.
|
|
80
80
|
|
|
81
81
|
```typescript
|
|
82
82
|
const fieldRedactor = new FieldRedactor({
|
|
83
|
-
|
|
83
|
+
opaqueSecretKeys: [/contactInfo/i]
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
await fieldRedactor.redact({
|
|
@@ -89,20 +89,15 @@ await fieldRedactor.redact({
|
|
|
89
89
|
// → { contactInfo: "REDACTED" }
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
## Remove (`
|
|
92
|
+
## Remove (`removeSecretKeys`)
|
|
93
93
|
|
|
94
94
|
Delete matching keys from the output.
|
|
95
95
|
|
|
96
96
|
```typescript
|
|
97
97
|
const fieldRedactor = new FieldRedactor({
|
|
98
|
-
|
|
98
|
+
removeSecretKeys: [/authKey/i]
|
|
99
99
|
});
|
|
100
100
|
|
|
101
|
-
await fieldRedactor.redact({
|
|
102
|
-
// → {
|
|
101
|
+
await fieldRedactor.redact({ authKey: 'secret-token', username: 'alice' });
|
|
102
|
+
// → { username: 'alice' }
|
|
103
103
|
```
|
|
104
|
-
|
|
105
|
-
## Related
|
|
106
|
-
|
|
107
|
-
- [Metadata redaction](metadata-redaction.md) — when sensitivity depends on sibling fields
|
|
108
|
-
- [Configuration reference](../reference/config.md) — all options and API details
|
package/docs/reference/config.md
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
| — | `syncRedactor` | `(val) => string` | `"REDACTED"` sync | Sync redactor; enables `redactSync()` without per-field Promises |
|
|
9
9
|
| **Shallow** | `secretKeys` | `RegExp[]` | `null` | Redact matching scalar values; if no rules at all, everything matches |
|
|
10
10
|
| **Deep** | `deepSecretKeys` | `RegExp[]` | `[]` | Deeply redact all primitives under matching keys |
|
|
11
|
-
| **Opaque** | `
|
|
12
|
-
| **Remove** | `
|
|
11
|
+
| **Opaque** | `opaqueSecretKeys` | `RegExp[]` | `[]` | Stringify and redact entire values (legacy alias: `fullSecretKeys`) |
|
|
12
|
+
| **Remove** | `removeSecretKeys` | `RegExp[]` | `[]` | Delete matching keys (legacy alias: `deleteSecretKeys`) |
|
|
13
13
|
| **Schema** | `customObjects` | `CustomObject[]` | `[]` | Per-shape rules; see [metadata guide](../guides/metadata-redaction.md) |
|
|
14
14
|
| **Value-pattern** | `valuePatterns` | `RegExp[]` | `[]` | Opt-in: redact scalars whose string form matches a pattern |
|
|
15
15
|
| **Path rule** | `pathRules` | `PathRule[]` | `[]` | Apply a mode at a JSON path (`metadata.*.value`) |
|
|
@@ -4,6 +4,7 @@ Per-version release notes for published **field-redactor** git tags. npm release
|
|
|
4
4
|
|
|
5
5
|
| Version | npm | Notes |
|
|
6
6
|
| --- | --- | --- |
|
|
7
|
+
| **v1.6.2** | Yes | [v1.6.2.md](v1.6.2.md) — canonical opaque/remove naming; drop ObjectRedactor façade |
|
|
7
8
|
| **v1.6.1** | Yes | [v1.6.1.md](v1.6.1.md) — internal simplification / layering cleanup |
|
|
8
9
|
| **v1.6.0** | Yes | [v1.6.0.md](v1.6.0.md) — path rules, passKeys, naming aliases, architecture |
|
|
9
10
|
| **v1.5.0** | Yes | [v1.5.0.md](v1.5.0.md) — DX polish, value patterns, unified traversal |
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Release notes — v1.6.2
|
|
2
|
+
|
|
3
|
+
Field Redactor **1.6.2** folds two internal cleanups onto **1.6.1**: Opaque/Remove as the canonical config and runtime vocabulary, and removal of the thin `ObjectRedactor` orchestrator. Typical `import { … } from 'field-redactor'` consumers need no call-site changes.
|
|
4
|
+
|
|
5
|
+
**Upgrade from 1.6.1:** Install `1.6.2`. Prefer `opaqueSecretKeys` / `removeSecretKeys` and `CustomObjectMatchType.Opaque` / `Remove` in new config; legacy `fullSecretKeys` / `deleteSecretKeys` and `Full` / `Delete` still work.
|
|
6
|
+
|
|
7
|
+
## Highlights
|
|
8
|
+
|
|
9
|
+
| Area | What changed |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| **Naming** | Canonical storage and matching use opaque/remove; full/delete are input-only aliases |
|
|
12
|
+
| **SecretManager** | `isOpaqueSecretKey` / `isRemoveSecretKey` (legacy config keys still accepted) |
|
|
13
|
+
| **Builder / presets** | Write preferred field names |
|
|
14
|
+
| **Engine** | `FieldRedactor` → `ObjectRedactorTraversal` directly; builder uses a static import |
|
|
15
|
+
|
|
16
|
+
## Compatibility
|
|
17
|
+
|
|
18
|
+
- Public root API unchanged for normal usage
|
|
19
|
+
- `FieldRedactorConfigBuilder.buildRedactor()` / `buildSafeRedactor()` behavior unchanged
|
|
20
|
+
- Docs and presets lead with Opaque/Remove vocabulary
|
|
21
|
+
|
|
22
|
+
## Links
|
|
23
|
+
|
|
24
|
+
- [CHANGELOG](../../CHANGELOG.md)
|
|
25
|
+
- [Release notes v1.6.1](v1.6.1.md)
|
|
26
|
+
- [Migration 1.5 → 1.6](../guides/migration-1.5-to-1.6.md)
|