field-redactor 1.6.1 → 1.6.3
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/.github/workflows/publish.yml +55 -0
- package/CHANGELOG.md +32 -0
- package/CONTRIBUTING.md +26 -3
- package/README.md +3 -2
- package/dist/api/fieldRedactor.d.ts +4 -4
- package/dist/api/fieldRedactor.js +8 -8
- 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/configValidator.d.ts.map +1 -1
- package/dist/config/configValidator.js +16 -0
- package/dist/config/configValidator.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 +39 -21
- 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 +6 -4
- package/docs/guides/secret-key-modes.md +9 -14
- package/docs/reference/config.md +2 -2
- package/docs/release-notes/README.md +5 -1
- package/docs/release-notes/v1.6.2.md +26 -0
- package/docs/release-notes/v1.6.3.md +25 -0
- package/examples/README.md +14 -0
- package/examples/dry-run.ts +21 -0
- package/examples/logging-metadata.ts +18 -0
- package/examples/path-rules.ts +23 -0
- package/examples/value-patterns.ts +16 -0
- package/package.json +1 -1
- package/dist/arrayRedaction.d.ts +0 -12
- package/dist/arrayRedaction.d.ts.map +0 -1
- package/dist/arrayRedaction.js +0 -70
- package/dist/arrayRedaction.js.map +0 -1
- package/dist/configValidator.d.ts +0 -9
- package/dist/configValidator.d.ts.map +0 -1
- package/dist/configValidator.js +0 -77
- package/dist/configValidator.js.map +0 -1
- package/dist/copyOnWriteHelpers.d.ts +0 -20
- package/dist/copyOnWriteHelpers.d.ts.map +0 -1
- package/dist/copyOnWriteHelpers.js +0 -58
- package/dist/copyOnWriteHelpers.js.map +0 -1
- package/dist/customObjectFieldHandler.d.ts +0 -21
- package/dist/customObjectFieldHandler.d.ts.map +0 -1
- package/dist/customObjectFieldHandler.js +0 -159
- package/dist/customObjectFieldHandler.js.map +0 -1
- package/dist/customObjectManager.d.ts +0 -28
- package/dist/customObjectManager.d.ts.map +0 -1
- package/dist/customObjectManager.js +0 -60
- package/dist/customObjectManager.js.map +0 -1
- package/dist/customObjectSchemas.d.ts +0 -7
- package/dist/customObjectSchemas.d.ts.map +0 -1
- package/dist/customObjectSchemas.js +0 -35
- package/dist/customObjectSchemas.js.map +0 -1
- package/dist/dryRun.d.ts +0 -9
- package/dist/dryRun.d.ts.map +0 -1
- package/dist/dryRun.js +0 -75
- package/dist/dryRun.js.map +0 -1
- package/dist/dryRunAttribution.d.ts +0 -10
- package/dist/dryRunAttribution.d.ts.map +0 -1
- package/dist/dryRunAttribution.js +0 -14
- package/dist/dryRunAttribution.js.map +0 -1
- package/dist/dryrun/dryRunAttribution.d.ts +0 -10
- package/dist/dryrun/dryRunAttribution.d.ts.map +0 -1
- package/dist/dryrun/dryRunAttribution.js +0 -14
- package/dist/dryrun/dryRunAttribution.js.map +0 -1
- package/dist/engine/objectRedactor.d.ts +0 -18
- package/dist/engine/objectRedactor.d.ts.map +0 -1
- package/dist/engine/objectRedactor.js +0 -38
- package/dist/engine/objectRedactor.js.map +0 -1
- package/dist/engine/objectRedactorSync.d.ts +0 -2
- package/dist/engine/objectRedactorSync.d.ts.map +0 -1
- package/dist/engine/objectRedactorSync.js +0 -7
- package/dist/engine/objectRedactorSync.js.map +0 -1
- package/dist/fieldDisposition.d.ts +0 -3
- package/dist/fieldDisposition.d.ts.map +0 -1
- package/dist/fieldDisposition.js +0 -6
- package/dist/fieldDisposition.js.map +0 -1
- package/dist/fieldRedactor.d.ts +0 -51
- package/dist/fieldRedactor.d.ts.map +0 -1
- package/dist/fieldRedactor.js +0 -165
- package/dist/fieldRedactor.js.map +0 -1
- package/dist/fieldRedactorConfigBuilder.d.ts +0 -55
- package/dist/fieldRedactorConfigBuilder.d.ts.map +0 -1
- package/dist/fieldRedactorConfigBuilder.js +0 -111
- package/dist/fieldRedactorConfigBuilder.js.map +0 -1
- package/dist/fieldRedactorDeps.d.ts +0 -19
- package/dist/fieldRedactorDeps.d.ts.map +0 -1
- package/dist/fieldRedactorDeps.js +0 -43
- package/dist/fieldRedactorDeps.js.map +0 -1
- package/dist/jsonWalk.d.ts +0 -11
- package/dist/jsonWalk.d.ts.map +0 -1
- package/dist/jsonWalk.js +0 -55
- package/dist/jsonWalk.js.map +0 -1
- package/dist/maybeAsync.d.ts +0 -7
- package/dist/maybeAsync.d.ts.map +0 -1
- package/dist/maybeAsync.js +0 -56
- package/dist/maybeAsync.js.map +0 -1
- package/dist/objectRedactor.d.ts +0 -18
- package/dist/objectRedactor.d.ts.map +0 -1
- package/dist/objectRedactor.js +0 -38
- package/dist/objectRedactor.js.map +0 -1
- package/dist/objectRedactorCow.d.ts +0 -35
- package/dist/objectRedactorCow.d.ts.map +0 -1
- package/dist/objectRedactorCow.js +0 -300
- package/dist/objectRedactorCow.js.map +0 -1
- package/dist/objectRedactorCustomObject.d.ts +0 -28
- package/dist/objectRedactorCustomObject.d.ts.map +0 -1
- package/dist/objectRedactorCustomObject.js +0 -57
- package/dist/objectRedactorCustomObject.js.map +0 -1
- package/dist/objectRedactorHelpers.d.ts +0 -9
- package/dist/objectRedactorHelpers.d.ts.map +0 -1
- package/dist/objectRedactorHelpers.js +0 -61
- package/dist/objectRedactorHelpers.js.map +0 -1
- package/dist/objectRedactorMutation.d.ts +0 -10
- package/dist/objectRedactorMutation.d.ts.map +0 -1
- package/dist/objectRedactorMutation.js +0 -89
- package/dist/objectRedactorMutation.js.map +0 -1
- package/dist/objectRedactorSync.d.ts +0 -2
- package/dist/objectRedactorSync.d.ts.map +0 -1
- package/dist/objectRedactorSync.js +0 -7
- package/dist/objectRedactorSync.js.map +0 -1
- package/dist/objectRedactorTraversal.d.ts +0 -41
- package/dist/objectRedactorTraversal.d.ts.map +0 -1
- package/dist/objectRedactorTraversal.js +0 -201
- package/dist/objectRedactorTraversal.js.map +0 -1
- package/dist/pathParsing.d.ts +0 -11
- package/dist/pathParsing.d.ts.map +0 -1
- package/dist/pathParsing.js +0 -53
- package/dist/pathParsing.js.map +0 -1
- package/dist/pathRuleMatcher.d.ts +0 -19
- package/dist/pathRuleMatcher.d.ts.map +0 -1
- package/dist/pathRuleMatcher.js +0 -42
- package/dist/pathRuleMatcher.js.map +0 -1
- package/dist/presets.d.ts +0 -22
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -50
- package/dist/presets.js.map +0 -1
- package/dist/primitiveRedactor.d.ts +0 -33
- package/dist/primitiveRedactor.d.ts.map +0 -1
- package/dist/primitiveRedactor.js +0 -75
- package/dist/primitiveRedactor.js.map +0 -1
- package/dist/redactionRules.d.ts +0 -22
- package/dist/redactionRules.d.ts.map +0 -1
- package/dist/redactionRules.js +0 -74
- package/dist/redactionRules.js.map +0 -1
- package/dist/regexUtils.d.ts +0 -3
- package/dist/regexUtils.d.ts.map +0 -1
- package/dist/regexUtils.js +0 -8
- package/dist/regexUtils.js.map +0 -1
- package/dist/ruleResolver.d.ts +0 -65
- package/dist/ruleResolver.d.ts.map +0 -1
- package/dist/ruleResolver.js +0 -193
- package/dist/ruleResolver.js.map +0 -1
- package/dist/rules/fieldDisposition.d.ts +0 -3
- package/dist/rules/fieldDisposition.d.ts.map +0 -1
- package/dist/rules/fieldDisposition.js +0 -6
- package/dist/rules/fieldDisposition.js.map +0 -1
- package/dist/secretManager.d.ts +0 -32
- package/dist/secretManager.d.ts.map +0 -1
- package/dist/secretManager.js +0 -85
- package/dist/secretManager.js.map +0 -1
- package/dist/traversalServices.d.ts +0 -21
- package/dist/traversalServices.d.ts.map +0 -1
- package/dist/traversalServices.js +0 -3
- package/dist/traversalServices.js.map +0 -1
- package/dist/valuePatternMatcher.d.ts +0 -15
- package/dist/valuePatternMatcher.d.ts.map +0 -1
- package/dist/valuePatternMatcher.js +0 -30
- package/dist/valuePatternMatcher.js.map +0 -1
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { PrimitiveRedactorConfig, RedactablePrimitive, RedactedPrimitive } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Redacts primitive values based on the configuration provided in the constructor. Uses the redactor
|
|
4
|
-
* privded in the constructor to redact values, or a basic redactor which returns 'REDACTED' if no redactor
|
|
5
|
-
* provided. Null and undefined values are ignored by default.
|
|
6
|
-
*/
|
|
7
|
-
export declare class PrimitiveRedactor {
|
|
8
|
-
private static DEFAULT_REDACTED_TEXT;
|
|
9
|
-
private readonly ignoreBooleans;
|
|
10
|
-
private readonly ignoreNullOrUndefined;
|
|
11
|
-
private readonly useAsyncRedactor;
|
|
12
|
-
private readonly syncRedactor;
|
|
13
|
-
private readonly asyncRedactor?;
|
|
14
|
-
/**
|
|
15
|
-
* Creates a PrimitiveRedactor with the specified configuration.
|
|
16
|
-
* @param config The PrimitiveRedactor configuration which specifies the redactor to use, whether to
|
|
17
|
-
* ignore booleans, and whether to ignore null or undefined values.
|
|
18
|
-
*/
|
|
19
|
-
constructor(config: PrimitiveRedactorConfig);
|
|
20
|
-
usesAsyncRedactor(): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Redacts the primitive value based on the configuration provided in the constructor.
|
|
23
|
-
* @param value The value to redact.
|
|
24
|
-
* @returns The redacted value.
|
|
25
|
-
*/
|
|
26
|
-
redactValue(value: RedactablePrimitive): Promise<RedactedPrimitive>;
|
|
27
|
-
/**
|
|
28
|
-
* Synchronously redacts a primitive value without Promise allocation.
|
|
29
|
-
*/
|
|
30
|
-
redactValueSync(value: RedactablePrimitive): RedactedPrimitive;
|
|
31
|
-
private redactWith;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=primitiveRedactor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primitiveRedactor.d.ts","sourceRoot":"","sources":["../src/primitiveRedactor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAW;IAE1C;;;;OAIG;gBACS,MAAM,EAAE,uBAAuB;IAepC,iBAAiB,IAAI,OAAO;IAInC;;;;OAIG;IACU,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQhF;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,iBAAiB;IAIrE,OAAO,CAAC,UAAU;CAkBnB"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PrimitiveRedactor = void 0;
|
|
13
|
-
/**
|
|
14
|
-
* Redacts primitive values based on the configuration provided in the constructor. Uses the redactor
|
|
15
|
-
* privded in the constructor to redact values, or a basic redactor which returns 'REDACTED' if no redactor
|
|
16
|
-
* provided. Null and undefined values are ignored by default.
|
|
17
|
-
*/
|
|
18
|
-
class PrimitiveRedactor {
|
|
19
|
-
/**
|
|
20
|
-
* Creates a PrimitiveRedactor with the specified configuration.
|
|
21
|
-
* @param config The PrimitiveRedactor configuration which specifies the redactor to use, whether to
|
|
22
|
-
* ignore booleans, and whether to ignore null or undefined values.
|
|
23
|
-
*/
|
|
24
|
-
constructor(config) {
|
|
25
|
-
var _a;
|
|
26
|
-
this.ignoreBooleans = config.ignoreBooleans;
|
|
27
|
-
this.ignoreNullOrUndefined = config.ignoreNullOrUndefined;
|
|
28
|
-
this.useAsyncRedactor = !!config.redactor && !config.syncRedactor;
|
|
29
|
-
this.syncRedactor = (_a = config.syncRedactor) !== null && _a !== void 0 ? _a : (config.redactor
|
|
30
|
-
? () => {
|
|
31
|
-
throw new Error('Sync redaction is not available without syncRedactor configuration');
|
|
32
|
-
}
|
|
33
|
-
: () => PrimitiveRedactor.DEFAULT_REDACTED_TEXT);
|
|
34
|
-
if (config.redactor) {
|
|
35
|
-
this.asyncRedactor = config.redactor;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
usesAsyncRedactor() {
|
|
39
|
-
return this.useAsyncRedactor;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Redacts the primitive value based on the configuration provided in the constructor.
|
|
43
|
-
* @param value The value to redact.
|
|
44
|
-
* @returns The redacted value.
|
|
45
|
-
*/
|
|
46
|
-
redactValue(value) {
|
|
47
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
if (!this.useAsyncRedactor) {
|
|
49
|
-
return this.redactValueSync(value);
|
|
50
|
-
}
|
|
51
|
-
return this.redactWith(value, (input) => this.asyncRedactor(input));
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Synchronously redacts a primitive value without Promise allocation.
|
|
56
|
-
*/
|
|
57
|
-
redactValueSync(value) {
|
|
58
|
-
return this.redactWith(value, (input) => this.syncRedactor(input));
|
|
59
|
-
}
|
|
60
|
-
redactWith(value, apply) {
|
|
61
|
-
if (typeof value === 'boolean') {
|
|
62
|
-
return this.ignoreBooleans ? value : apply(value);
|
|
63
|
-
}
|
|
64
|
-
if (value === null || value === undefined) {
|
|
65
|
-
return this.ignoreNullOrUndefined ? value : apply(value);
|
|
66
|
-
}
|
|
67
|
-
if (value === '' || value === 0) {
|
|
68
|
-
return this.ignoreNullOrUndefined ? value : apply(value);
|
|
69
|
-
}
|
|
70
|
-
return apply(value);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
exports.PrimitiveRedactor = PrimitiveRedactor;
|
|
74
|
-
PrimitiveRedactor.DEFAULT_REDACTED_TEXT = 'REDACTED';
|
|
75
|
-
//# sourceMappingURL=primitiveRedactor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primitiveRedactor.js","sourceRoot":"","sources":["../src/primitiveRedactor.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA;;;;GAIG;AACH,MAAa,iBAAiB;IAQ5B;;;;OAIG;IACH,YAAY,MAA+B;;QACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,CAAC,MAAM,CAAC,QAAQ;YACzD,CAAC,CAAC,GAAG,EAAE;gBACH,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACxF,CAAC;YACH,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QAEnD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvC,CAAC;IACH,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACU,WAAW,CAAC,KAA0B;;YACjD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAc,CAAC,KAAK,CAAC,CAA+B,CAAC;QACrG,CAAC;KAAA;IAED;;OAEG;IACI,eAAe,CAAC,KAA0B;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAsB,CAAC;IAC1F,CAAC;IAEO,UAAU,CAChB,KAA0B,EAC1B,KAA+E;QAE/E,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;;AArEH,8CAsEC;AArEgB,uCAAqB,GAAG,UAAU,CAAC"}
|
package/dist/redactionRules.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { CustomObject, FieldRedactorConfig } from './types';
|
|
2
|
-
export declare const SECRET_REGEX_FIELDS: readonly ["secretKeys", "deepSecretKeys", "fullSecretKeys", "deleteSecretKeys"];
|
|
3
|
-
export declare const VALUE_PATTERN_FIELDS: readonly ["valuePatterns"];
|
|
4
|
-
export declare const PASS_KEY_FIELDS: readonly ["passKeys"];
|
|
5
|
-
export declare const REGEX_ARRAY_CONFIG_FIELDS: readonly ["secretKeys", "deepSecretKeys", "fullSecretKeys", "deleteSecretKeys", "valuePatterns", "passKeys"];
|
|
6
|
-
export type SecretRegexField = (typeof SECRET_REGEX_FIELDS)[number];
|
|
7
|
-
export type RegexArrayConfigField = (typeof REGEX_ARRAY_CONFIG_FIELDS)[number];
|
|
8
|
-
export declare const RULE_LIST_FIELDS: readonly ["secretKeys", "deepSecretKeys", "fullSecretKeys", "deleteSecretKeys", "valuePatterns", "passKeys", "customObjects"];
|
|
9
|
-
export declare const hasExplicitRedactionRules: (config?: FieldRedactorConfig) => boolean;
|
|
10
|
-
/**
|
|
11
|
-
* When only value patterns are configured, shallow key matching must be disabled (`secretKeys: []`)
|
|
12
|
-
* so the legacy default does not redact every field.
|
|
13
|
-
*/
|
|
14
|
-
export declare const resolveSecretKeys: (config?: FieldRedactorConfig) => RegExp[] | undefined;
|
|
15
|
-
export declare const appendRegExpArray: <F extends RegexArrayConfigField>(config: FieldRedactorConfig, field: F, patterns: RegExp[]) => void;
|
|
16
|
-
export type RegisteredSchema = {
|
|
17
|
-
object: CustomObject;
|
|
18
|
-
name?: string;
|
|
19
|
-
};
|
|
20
|
-
export declare const finalizeRegisteredSchemas: (schemas: RegisteredSchema[]) => Pick<FieldRedactorConfig, "customObjects" | "schemaNames">;
|
|
21
|
-
export declare const mergePartialConfig: (target: FieldRedactorConfig, schemas: RegisteredSchema[], partial: Partial<FieldRedactorConfig>) => void;
|
|
22
|
-
//# sourceMappingURL=redactionRules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redactionRules.d.ts","sourceRoot":"","sources":["../src/redactionRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE5D,eAAO,MAAM,mBAAmB,iFAAkF,CAAC;AAEnH,eAAO,MAAM,oBAAoB,4BAA6B,CAAC;AAE/D,eAAO,MAAM,eAAe,uBAAwB,CAAC;AAErD,eAAO,MAAM,yBAAyB,8GAAiF,CAAC;AAExH,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,+HAA2D,CAAC;AAIzF,eAAO,MAAM,yBAAyB,YAAa,mBAAmB,KAAG,OAEpC,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAa,mBAAmB,KAAG,MAAM,EAAE,GAAG,SAmB3E,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"}
|
package/dist/redactionRules.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergePartialConfig = exports.finalizeRegisteredSchemas = exports.appendRegExpArray = exports.resolveSecretKeys = exports.hasExplicitRedactionRules = exports.RULE_LIST_FIELDS = exports.REGEX_ARRAY_CONFIG_FIELDS = exports.PASS_KEY_FIELDS = exports.VALUE_PATTERN_FIELDS = exports.SECRET_REGEX_FIELDS = void 0;
|
|
4
|
-
exports.SECRET_REGEX_FIELDS = ['secretKeys', 'deepSecretKeys', 'fullSecretKeys', 'deleteSecretKeys'];
|
|
5
|
-
exports.VALUE_PATTERN_FIELDS = ['valuePatterns'];
|
|
6
|
-
exports.PASS_KEY_FIELDS = ['passKeys'];
|
|
7
|
-
exports.REGEX_ARRAY_CONFIG_FIELDS = [...exports.SECRET_REGEX_FIELDS, ...exports.VALUE_PATTERN_FIELDS, ...exports.PASS_KEY_FIELDS];
|
|
8
|
-
exports.RULE_LIST_FIELDS = [...exports.REGEX_ARRAY_CONFIG_FIELDS, 'customObjects'];
|
|
9
|
-
const hasNonEmptyArray = (value) => value !== undefined && value.length > 0;
|
|
10
|
-
const hasExplicitRedactionRules = (config) => exports.RULE_LIST_FIELDS.some((field) => hasNonEmptyArray(config === null || config === void 0 ? void 0 : config[field])) ||
|
|
11
|
-
hasNonEmptyArray(config === null || config === void 0 ? void 0 : config.pathRules);
|
|
12
|
-
exports.hasExplicitRedactionRules = hasExplicitRedactionRules;
|
|
13
|
-
/**
|
|
14
|
-
* When only value patterns are configured, shallow key matching must be disabled (`secretKeys: []`)
|
|
15
|
-
* so the legacy default does not redact every field.
|
|
16
|
-
*/
|
|
17
|
-
const resolveSecretKeys = (config) => {
|
|
18
|
-
const { secretKeys, deepSecretKeys, fullSecretKeys, deleteSecretKeys, customObjects, valuePatterns, pathRules } = config !== null && config !== void 0 ? config : {};
|
|
19
|
-
if (secretKeys !== undefined) {
|
|
20
|
-
return secretKeys;
|
|
21
|
-
}
|
|
22
|
-
if (((valuePatterns === null || valuePatterns === void 0 ? void 0 : valuePatterns.length) || (pathRules === null || pathRules === void 0 ? void 0 : pathRules.length)) &&
|
|
23
|
-
!(deepSecretKeys === null || deepSecretKeys === void 0 ? void 0 : deepSecretKeys.length) &&
|
|
24
|
-
!(fullSecretKeys === null || fullSecretKeys === void 0 ? void 0 : fullSecretKeys.length) &&
|
|
25
|
-
!(deleteSecretKeys === null || deleteSecretKeys === void 0 ? void 0 : deleteSecretKeys.length) &&
|
|
26
|
-
!(customObjects === null || customObjects === void 0 ? void 0 : customObjects.length)) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
return undefined;
|
|
30
|
-
};
|
|
31
|
-
exports.resolveSecretKeys = resolveSecretKeys;
|
|
32
|
-
const appendRegExpArray = (config, field, patterns) => {
|
|
33
|
-
var _a;
|
|
34
|
-
config[field] = [...((_a = config[field]) !== null && _a !== void 0 ? _a : []), ...patterns];
|
|
35
|
-
};
|
|
36
|
-
exports.appendRegExpArray = appendRegExpArray;
|
|
37
|
-
const finalizeRegisteredSchemas = (schemas) => {
|
|
38
|
-
if (schemas.length === 0) {
|
|
39
|
-
return {};
|
|
40
|
-
}
|
|
41
|
-
const customObjects = schemas.map((entry) => entry.object);
|
|
42
|
-
const schemaNames = schemas.map((entry) => entry.name);
|
|
43
|
-
return schemaNames.some((name) => name !== undefined) ? { customObjects, schemaNames } : { customObjects };
|
|
44
|
-
};
|
|
45
|
-
exports.finalizeRegisteredSchemas = finalizeRegisteredSchemas;
|
|
46
|
-
const PRESET_SCALAR_FIELDS = [
|
|
47
|
-
'redactor',
|
|
48
|
-
'syncRedactor',
|
|
49
|
-
'ignoreBooleans',
|
|
50
|
-
'ignoreNullOrUndefined',
|
|
51
|
-
'cloneInput',
|
|
52
|
-
'strict',
|
|
53
|
-
'onConfigWarning'
|
|
54
|
-
];
|
|
55
|
-
const applyUnsetScalars = (target, partial) => {
|
|
56
|
-
for (const field of PRESET_SCALAR_FIELDS) {
|
|
57
|
-
const value = partial[field];
|
|
58
|
-
if (value !== undefined && target[field] === undefined) {
|
|
59
|
-
Object.assign(target, { [field]: value });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
const mergePartialConfig = (target, schemas, partial) => {
|
|
64
|
-
var _a, _b;
|
|
65
|
-
for (const field of exports.REGEX_ARRAY_CONFIG_FIELDS) {
|
|
66
|
-
if ((_a = partial[field]) === null || _a === void 0 ? void 0 : _a.length) {
|
|
67
|
-
(0, exports.appendRegExpArray)(target, field, partial[field]);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
(_b = partial.customObjects) === null || _b === void 0 ? void 0 : _b.forEach((object) => schemas.push({ object }));
|
|
71
|
-
applyUnsetScalars(target, partial);
|
|
72
|
-
};
|
|
73
|
-
exports.mergePartialConfig = mergePartialConfig;
|
|
74
|
-
//# sourceMappingURL=redactionRules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redactionRules.js","sourceRoot":"","sources":["../src/redactionRules.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAU,CAAC;AAEtG,QAAA,oBAAoB,GAAG,CAAC,eAAe,CAAU,CAAC;AAElD,QAAA,eAAe,GAAG,CAAC,UAAU,CAAU,CAAC;AAExC,QAAA,yBAAyB,GAAG,CAAC,GAAG,2BAAmB,EAAE,GAAG,4BAAoB,EAAE,GAAG,uBAAe,CAAU,CAAC;AAK3G,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,iBAAiB,GAAG,CAAC,MAA4B,EAAwB,EAAE;IACtF,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,GAC7G,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAEf,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,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAA;QACvB,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"}
|
package/dist/regexUtils.d.ts
DELETED
package/dist/regexUtils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regexUtils.d.ts","sourceRoot":"","sources":["../src/regexUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,MAA2C,CAAC;AAEzF,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,MAA2C,CAAC"}
|
package/dist/regexUtils.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.regexIdentity = exports.formatRegExp = void 0;
|
|
4
|
-
const formatRegExp = (regex) => `/${regex.source}/${regex.flags}`;
|
|
5
|
-
exports.formatRegExp = formatRegExp;
|
|
6
|
-
const regexIdentity = (regex) => `${regex.source}\0${regex.flags}`;
|
|
7
|
-
exports.regexIdentity = regexIdentity;
|
|
8
|
-
//# sourceMappingURL=regexUtils.js.map
|
package/dist/regexUtils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regexUtils.js","sourceRoot":"","sources":["../src/regexUtils.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AAA5E,QAAA,YAAY,gBAAgE;AAElF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;AAA7E,QAAA,aAAa,iBAAgE"}
|
package/dist/ruleResolver.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { CustomObjectManager } from './customObjectManager';
|
|
2
|
-
import { PathRuleMatcher } from './pathRuleMatcher';
|
|
3
|
-
import { SecretManager } from './secretManager';
|
|
4
|
-
import { ValuePatternMatcher } from './valuePatternMatcher';
|
|
5
|
-
import { CustomObject, DryRunPathRule, JsonValue, PathRule, SecretSpecifierValue } from './types';
|
|
6
|
-
export type KeyRule = 'remove' | 'opaque' | 'deep' | 'shallow';
|
|
7
|
-
export type KeyRuleLabel = KeyRule | 'default';
|
|
8
|
-
export type FieldDisposition = {
|
|
9
|
-
action: 'default';
|
|
10
|
-
} | {
|
|
11
|
-
action: 'skip';
|
|
12
|
-
} | {
|
|
13
|
-
action: 'remove';
|
|
14
|
-
} | {
|
|
15
|
-
action: 'opaque';
|
|
16
|
-
} | {
|
|
17
|
-
action: 'deep';
|
|
18
|
-
} | {
|
|
19
|
-
action: 'shallow';
|
|
20
|
-
} | {
|
|
21
|
-
action: 'pass-key-recurse';
|
|
22
|
-
};
|
|
23
|
-
type AttributionContext = {
|
|
24
|
-
before: JsonValue | undefined;
|
|
25
|
-
path: string;
|
|
26
|
-
segments: Array<string | number>;
|
|
27
|
-
objectKeys: string[];
|
|
28
|
-
};
|
|
29
|
-
/** Shared path-rule + pass-key disposition used during traversal. */
|
|
30
|
-
export declare const resolvePathDisposition: (secretManager: SecretManager, pathRuleMatcher: PathRuleMatcher, key: string, pathSegments: Array<string | number>, forceDeepRedaction: boolean) => FieldDisposition;
|
|
31
|
-
/**
|
|
32
|
-
* Single source of truth for field-level rule precedence shared by traversal and dry-run attribution.
|
|
33
|
-
* Precedence: schema → path rule → enclosing opaque/deep key → leaf key rule → value pattern → default.
|
|
34
|
-
*/
|
|
35
|
-
export declare class RuleResolver {
|
|
36
|
-
private readonly secretManager;
|
|
37
|
-
private readonly pathRuleMatcher;
|
|
38
|
-
private readonly valuePatternMatcher;
|
|
39
|
-
private readonly customObjectManager;
|
|
40
|
-
constructor(secretManager: SecretManager, pathRuleMatcher: PathRuleMatcher, valuePatternMatcher: ValuePatternMatcher, customObjectManager: CustomObjectManager);
|
|
41
|
-
resolvePathDisposition(pathSegments: Array<string | number>, key: string, forceDeepRedaction: boolean): FieldDisposition;
|
|
42
|
-
getMatchingPathRule(segments: Array<string | number>): PathRule | undefined;
|
|
43
|
-
shouldRemoveByKey(key: SecretSpecifierValue): boolean;
|
|
44
|
-
shouldOpaqueByKey(key: SecretSpecifierValue): boolean;
|
|
45
|
-
shouldTraverseContainerByKey(key: SecretSpecifierValue, forceDeepRedaction: boolean): boolean;
|
|
46
|
-
containerForceDeepRedaction(key: SecretSpecifierValue, forceDeepRedaction: boolean): boolean;
|
|
47
|
-
nestedObjectForceDeepRedaction(key: SecretSpecifierValue, forceDeepRedaction: boolean): boolean;
|
|
48
|
-
attributeKeyRule(path: string, action: DryRunPathRule['action'], key: SecretSpecifierValue): DryRunPathRule;
|
|
49
|
-
findEnclosingOpaqueOrDeepKey(objectKeys: string[]): {
|
|
50
|
-
key: string;
|
|
51
|
-
rule: 'opaque' | 'deep';
|
|
52
|
-
} | undefined;
|
|
53
|
-
resolveSchemaAttribution(context: AttributionContext): DryRunPathRule | undefined;
|
|
54
|
-
resolvePathRuleAttribution(context: AttributionContext): DryRunPathRule | undefined;
|
|
55
|
-
resolveEnclosingKeyAttribution(context: AttributionContext): DryRunPathRule | undefined;
|
|
56
|
-
resolveLeafKeyAttribution(context: AttributionContext): DryRunPathRule | undefined;
|
|
57
|
-
resolveValuePatternAttribution(context: AttributionContext): DryRunPathRule | undefined;
|
|
58
|
-
attributeRedactPath(before: JsonValue | undefined, path: string): DryRunPathRule;
|
|
59
|
-
attributeDeletePath(before: JsonValue | undefined, path: string): DryRunPathRule;
|
|
60
|
-
/** Returns the matching schema when a shaped object should be handled at this node. */
|
|
61
|
-
getMatchingSchema(value: JsonValue): CustomObject | undefined;
|
|
62
|
-
}
|
|
63
|
-
export declare const buildPathRules: (before: JsonValue | undefined, redactedPaths: readonly string[], deletedPaths: readonly string[], resolver: RuleResolver) => DryRunPathRule[];
|
|
64
|
-
export {};
|
|
65
|
-
//# sourceMappingURL=ruleResolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruleResolver.d.ts","sourceRoot":"","sources":["../src/ruleResolver.ts"],"names":[],"mappings":"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"}
|
package/dist/ruleResolver.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildPathRules = exports.RuleResolver = exports.resolvePathDisposition = void 0;
|
|
4
|
-
const objectRedactorHelpers_1 = require("./objectRedactorHelpers");
|
|
5
|
-
const jsonWalk_1 = require("./jsonWalk");
|
|
6
|
-
const types_1 = require("./types");
|
|
7
|
-
const objectKeysFromPath = (segments) => segments.filter((segment) => typeof segment === 'string');
|
|
8
|
-
const toPathRule = (path, action, rule, extras = {}) => (Object.assign({ path, action, rule }, extras));
|
|
9
|
-
const patternForKey = (secretManager, key, rule) => secretManager.getKeyRulePattern(key, rule);
|
|
10
|
-
/** Shared path-rule + pass-key disposition used during traversal. */
|
|
11
|
-
const resolvePathDisposition = (secretManager, pathRuleMatcher, key, pathSegments, forceDeepRedaction) => {
|
|
12
|
-
const pathRule = pathRuleMatcher.getMatchingRule([...pathSegments, key]);
|
|
13
|
-
if ((pathRule === null || pathRule === void 0 ? void 0 : pathRule.mode) === 'pass') {
|
|
14
|
-
return { action: 'skip' };
|
|
15
|
-
}
|
|
16
|
-
if ((pathRule === null || pathRule === void 0 ? void 0 : pathRule.mode) === 'remove') {
|
|
17
|
-
return { action: 'remove' };
|
|
18
|
-
}
|
|
19
|
-
if ((pathRule === null || pathRule === void 0 ? void 0 : pathRule.mode) === 'opaque') {
|
|
20
|
-
return { action: 'opaque' };
|
|
21
|
-
}
|
|
22
|
-
if ((pathRule === null || pathRule === void 0 ? void 0 : pathRule.mode) === 'deep') {
|
|
23
|
-
return { action: 'deep' };
|
|
24
|
-
}
|
|
25
|
-
if ((pathRule === null || pathRule === void 0 ? void 0 : pathRule.mode) === 'shallow') {
|
|
26
|
-
return { action: 'shallow' };
|
|
27
|
-
}
|
|
28
|
-
if (forceDeepRedaction && secretManager.isPassKey(key)) {
|
|
29
|
-
return { action: 'pass-key-recurse' };
|
|
30
|
-
}
|
|
31
|
-
return { action: 'default' };
|
|
32
|
-
};
|
|
33
|
-
exports.resolvePathDisposition = resolvePathDisposition;
|
|
34
|
-
/**
|
|
35
|
-
* Single source of truth for field-level rule precedence shared by traversal and dry-run attribution.
|
|
36
|
-
* Precedence: schema → path rule → enclosing opaque/deep key → leaf key rule → value pattern → default.
|
|
37
|
-
*/
|
|
38
|
-
class RuleResolver {
|
|
39
|
-
constructor(secretManager, pathRuleMatcher, valuePatternMatcher, customObjectManager) {
|
|
40
|
-
this.secretManager = secretManager;
|
|
41
|
-
this.pathRuleMatcher = pathRuleMatcher;
|
|
42
|
-
this.valuePatternMatcher = valuePatternMatcher;
|
|
43
|
-
this.customObjectManager = customObjectManager;
|
|
44
|
-
}
|
|
45
|
-
resolvePathDisposition(pathSegments, key, forceDeepRedaction) {
|
|
46
|
-
return (0, exports.resolvePathDisposition)(this.secretManager, this.pathRuleMatcher, key, pathSegments, forceDeepRedaction);
|
|
47
|
-
}
|
|
48
|
-
getMatchingPathRule(segments) {
|
|
49
|
-
const match = this.pathRuleMatcher.getMatchingRule(segments);
|
|
50
|
-
return (match === null || match === void 0 ? void 0 : match.mode) === 'pass' ? undefined : match;
|
|
51
|
-
}
|
|
52
|
-
shouldRemoveByKey(key) {
|
|
53
|
-
return this.secretManager.isDeleteSecretKey(key);
|
|
54
|
-
}
|
|
55
|
-
shouldOpaqueByKey(key) {
|
|
56
|
-
return this.secretManager.isFullSecretKey(key);
|
|
57
|
-
}
|
|
58
|
-
shouldTraverseContainerByKey(key, forceDeepRedaction) {
|
|
59
|
-
return (this.secretManager.isSecretKey(key) ||
|
|
60
|
-
this.secretManager.isDeepSecretKey(key) ||
|
|
61
|
-
forceDeepRedaction);
|
|
62
|
-
}
|
|
63
|
-
containerForceDeepRedaction(key, forceDeepRedaction) {
|
|
64
|
-
return forceDeepRedaction || this.secretManager.isDeepSecretKey(key);
|
|
65
|
-
}
|
|
66
|
-
nestedObjectForceDeepRedaction(key, forceDeepRedaction) {
|
|
67
|
-
return forceDeepRedaction || this.secretManager.isDeepSecretKey(key);
|
|
68
|
-
}
|
|
69
|
-
attributeKeyRule(path, action, key) {
|
|
70
|
-
var _a;
|
|
71
|
-
const rule = (_a = this.secretManager.classifyKeyRule(key)) !== null && _a !== void 0 ? _a : 'default';
|
|
72
|
-
if (rule === 'default') {
|
|
73
|
-
return toPathRule(path, action, rule);
|
|
74
|
-
}
|
|
75
|
-
return toPathRule(path, action, rule, { pattern: patternForKey(this.secretManager, key, rule) });
|
|
76
|
-
}
|
|
77
|
-
findEnclosingOpaqueOrDeepKey(objectKeys) {
|
|
78
|
-
for (let index = objectKeys.length - 2; index >= 0; index--) {
|
|
79
|
-
const key = objectKeys[index];
|
|
80
|
-
const rule = this.secretManager.classifyKeyRule(key);
|
|
81
|
-
if (rule === 'opaque' || rule === 'deep') {
|
|
82
|
-
return { key, rule };
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
resolveSchemaAttribution(context) {
|
|
88
|
-
const { parent, leaf } = (0, jsonWalk_1.getParentContext)(context.before, context.segments);
|
|
89
|
-
if (!(0, types_1.isJsonObject)(parent) || typeof leaf !== 'string') {
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
const schema = this.customObjectManager.getMatchingCustomObject(parent);
|
|
93
|
-
if (!schema || !(leaf in schema)) {
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
let pattern;
|
|
97
|
-
if (typeof schema[leaf] === 'string') {
|
|
98
|
-
const siblingSpecifier = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(parent, schema, leaf);
|
|
99
|
-
if (siblingSpecifier !== undefined) {
|
|
100
|
-
const siblingRule = this.secretManager.classifyKeyRule(siblingSpecifier);
|
|
101
|
-
if (siblingRule && siblingRule !== 'default') {
|
|
102
|
-
pattern = patternForKey(this.secretManager, siblingSpecifier, siblingRule);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return toPathRule(context.path, 'redact', 'schema', Object.assign(Object.assign({}, this.customObjectManager.getSchemaMetadata(schema)), (pattern ? { pattern } : {})));
|
|
107
|
-
}
|
|
108
|
-
resolvePathRuleAttribution(context) {
|
|
109
|
-
const match = this.getMatchingPathRule(context.segments);
|
|
110
|
-
if (!match) {
|
|
111
|
-
return undefined;
|
|
112
|
-
}
|
|
113
|
-
if (match.mode === 'remove') {
|
|
114
|
-
return toPathRule(context.path, 'delete', 'remove', { pattern: match.path });
|
|
115
|
-
}
|
|
116
|
-
return toPathRule(context.path, 'redact', match.mode, { pattern: match.path });
|
|
117
|
-
}
|
|
118
|
-
resolveEnclosingKeyAttribution(context) {
|
|
119
|
-
const enclosing = this.findEnclosingOpaqueOrDeepKey(context.objectKeys);
|
|
120
|
-
if (!enclosing) {
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
return toPathRule(context.path, 'redact', enclosing.rule, {
|
|
124
|
-
pattern: patternForKey(this.secretManager, enclosing.key, enclosing.rule)
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
resolveLeafKeyAttribution(context) {
|
|
128
|
-
const leafKey = context.objectKeys.at(-1);
|
|
129
|
-
if (!leafKey || !this.secretManager.classifyKeyRule(leafKey)) {
|
|
130
|
-
return undefined;
|
|
131
|
-
}
|
|
132
|
-
return this.attributeKeyRule(context.path, 'redact', leafKey);
|
|
133
|
-
}
|
|
134
|
-
resolveValuePatternAttribution(context) {
|
|
135
|
-
const value = (0, jsonWalk_1.getJsonValueAtPath)(context.before, context.segments);
|
|
136
|
-
if (value === undefined || (typeof value !== 'string' && typeof value !== 'number')) {
|
|
137
|
-
return undefined;
|
|
138
|
-
}
|
|
139
|
-
const match = this.valuePatternMatcher.findMatching((0, objectRedactorHelpers_1.toRedactablePrimitive)(value));
|
|
140
|
-
if (!match) {
|
|
141
|
-
return undefined;
|
|
142
|
-
}
|
|
143
|
-
return toPathRule(context.path, 'redact', 'value', {
|
|
144
|
-
pattern: this.valuePatternMatcher.formatPattern(match)
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
attributeRedactPath(before, path) {
|
|
148
|
-
const segments = (0, jsonWalk_1.parseJsonPath)(path);
|
|
149
|
-
const context = {
|
|
150
|
-
before,
|
|
151
|
-
path,
|
|
152
|
-
segments,
|
|
153
|
-
objectKeys: objectKeysFromPath(segments)
|
|
154
|
-
};
|
|
155
|
-
const resolvers = [
|
|
156
|
-
() => this.resolveSchemaAttribution(context),
|
|
157
|
-
() => this.resolvePathRuleAttribution(context),
|
|
158
|
-
() => this.resolveEnclosingKeyAttribution(context),
|
|
159
|
-
() => this.resolveLeafKeyAttribution(context),
|
|
160
|
-
() => this.resolveValuePatternAttribution(context)
|
|
161
|
-
];
|
|
162
|
-
for (const resolve of resolvers) {
|
|
163
|
-
const rule = resolve();
|
|
164
|
-
if (rule) {
|
|
165
|
-
return rule;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return toPathRule(path, 'redact', 'default');
|
|
169
|
-
}
|
|
170
|
-
attributeDeletePath(before, path) {
|
|
171
|
-
const segments = (0, jsonWalk_1.parseJsonPath)(path);
|
|
172
|
-
const pathRule = this.getMatchingPathRule(segments);
|
|
173
|
-
if ((pathRule === null || pathRule === void 0 ? void 0 : pathRule.mode) === 'remove') {
|
|
174
|
-
return toPathRule(path, 'delete', 'remove', { pattern: pathRule.path });
|
|
175
|
-
}
|
|
176
|
-
const deleteKey = objectKeysFromPath(segments).at(-1);
|
|
177
|
-
if (deleteKey) {
|
|
178
|
-
return this.attributeKeyRule(path, 'delete', deleteKey);
|
|
179
|
-
}
|
|
180
|
-
return toPathRule(path, 'delete', 'default');
|
|
181
|
-
}
|
|
182
|
-
/** Returns the matching schema when a shaped object should be handled at this node. */
|
|
183
|
-
getMatchingSchema(value) {
|
|
184
|
-
return (0, types_1.isJsonObject)(value) ? this.customObjectManager.getMatchingCustomObject(value) : undefined;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
exports.RuleResolver = RuleResolver;
|
|
188
|
-
const buildPathRules = (before, redactedPaths, deletedPaths, resolver) => [
|
|
189
|
-
...deletedPaths.map((path) => resolver.attributeDeletePath(before, path)),
|
|
190
|
-
...redactedPaths.map((path) => resolver.attributeRedactPath(before, path))
|
|
191
|
-
];
|
|
192
|
-
exports.buildPathRules = buildPathRules;
|
|
193
|
-
//# sourceMappingURL=ruleResolver.js.map
|
package/dist/ruleResolver.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruleResolver.js","sourceRoot":"","sources":["../src/ruleResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fieldDisposition.d.ts","sourceRoot":"","sources":["../../src/rules/fieldDisposition.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveFieldDisposition = void 0;
|
|
4
|
-
var ruleResolver_1 = require("./ruleResolver");
|
|
5
|
-
Object.defineProperty(exports, "resolveFieldDisposition", { enumerable: true, get: function () { return ruleResolver_1.resolvePathDisposition; } });
|
|
6
|
-
//# sourceMappingURL=fieldDisposition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fieldDisposition.js","sourceRoot":"","sources":["../../src/rules/fieldDisposition.ts"],"names":[],"mappings":";;;AACA,+CAAmF;AAA1E,uHAAA,sBAAsB,OAA2B"}
|
package/dist/secretManager.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { SecretManagerConfig, SecretSpecifierValue } from './types';
|
|
2
|
-
type KeyRule = 'remove' | 'opaque' | 'deep' | 'shallow';
|
|
3
|
-
/**
|
|
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 full secrets).
|
|
6
|
-
*/
|
|
7
|
-
export declare class SecretManager {
|
|
8
|
-
private secretKeys?;
|
|
9
|
-
private deepSecretKeys?;
|
|
10
|
-
private fullSecretKeys?;
|
|
11
|
-
private deleteSecretKeys?;
|
|
12
|
-
private passKeys?;
|
|
13
|
-
constructor(config: SecretManagerConfig);
|
|
14
|
-
/**
|
|
15
|
-
* Determines if the given key is a secret. If no secrets of any type are provided then this function
|
|
16
|
-
* always returns true.
|
|
17
|
-
*/
|
|
18
|
-
isSecretKey(key: SecretSpecifierValue): boolean;
|
|
19
|
-
isDeepSecretKey(key: SecretSpecifierValue): boolean;
|
|
20
|
-
isFullSecretKey(key: SecretSpecifierValue): boolean;
|
|
21
|
-
isDeleteSecretKey(key: SecretSpecifierValue): boolean;
|
|
22
|
-
/** Determines if a key is allowlisted and should not be redacted under deep parents. */
|
|
23
|
-
isPassKey(key: SecretSpecifierValue): boolean;
|
|
24
|
-
getKeyRulePattern(key: SecretSpecifierValue, rule: KeyRule): string | undefined;
|
|
25
|
-
classifyKeyRule(key: SecretSpecifierValue): KeyRule | 'default' | null;
|
|
26
|
-
private matchesRule;
|
|
27
|
-
private regexListFor;
|
|
28
|
-
private static findMatchingRegex;
|
|
29
|
-
private static matchesAnyRegex;
|
|
30
|
-
}
|
|
31
|
-
export {};
|
|
32
|
-
//# sourceMappingURL=secretManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"secretManager.d.ts","sourceRoot":"","sources":["../src/secretManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpE,KAAK,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAIxD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAC,CAAW;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAW;IAClC,OAAO,CAAC,cAAc,CAAC,CAAW;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAW;gBAEhB,MAAM,EAAE,mBAAmB;IAavC;;;OAGG;IACI,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAQ/C,eAAe,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAInD,eAAe,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAInD,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"}
|