@cendor/acttrace 0.2.0
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/LICENSE +201 -0
- package/README.md +79 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/detectors.d.ts +69 -0
- package/dist/detectors.d.ts.map +1 -0
- package/dist/detectors.js +378 -0
- package/dist/detectors.js.map +1 -0
- package/dist/guard.d.ts +36 -0
- package/dist/guard.d.ts.map +1 -0
- package/dist/guard.js +124 -0
- package/dist/guard.js.map +1 -0
- package/dist/hash.d.ts +7 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +32 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +145 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +741 -0
- package/dist/index.js.map +1 -0
- package/dist/ner.d.ts +16 -0
- package/dist/ner.d.ts.map +1 -0
- package/dist/ner.js +21 -0
- package/dist/ner.js.map +1 -0
- package/dist/packs.d.ts +31 -0
- package/dist/packs.d.ts.map +1 -0
- package/dist/packs.js +113 -0
- package/dist/packs.js.map +1 -0
- package/dist/policy.d.ts +58 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +119 -0
- package/dist/policy.js.map +1 -0
- package/dist/pyjson.d.ts +33 -0
- package/dist/pyjson.d.ts.map +1 -0
- package/dist/pyjson.js +250 -0
- package/dist/pyjson.js.map +1 -0
- package/dist/storage.d.ts +17 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +71 -0
- package/dist/storage.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ner.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional NER-backed redaction — the `[ner]` extra. The TS port ships regex/pattern detectors
|
|
3
|
+
* ONLY: there is no Presidio in JS. So {@link nerAvailable} always returns `false` and
|
|
4
|
+
* {@link nerRedactor} always throws the install-hint error (mirroring the Python behaviour when the
|
|
5
|
+
* optional extra is absent). The names/shape are kept for API parity.
|
|
6
|
+
*/
|
|
7
|
+
/** Presidio entity types redacted by default (kept for parity — unused in the JS port). */
|
|
8
|
+
export declare const DEFAULT_NER_ENTITIES: readonly ["PERSON", "LOCATION", "NRP", "DATE_TIME"];
|
|
9
|
+
/** `true` if an NER backend is importable. The JS port has none, so always `false`. */
|
|
10
|
+
export declare function nerAvailable(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Build a `payload -> payload` redactor that scrubs NER entities. Not available in the JS port —
|
|
13
|
+
* always throws an `ImportError`-equivalent whose message names `cendor-acttrace[ner]`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function nerRedactor(_entities?: readonly string[], _language?: string, _compose?: ((obj: unknown) => unknown) | null): (obj: unknown) => unknown;
|
|
16
|
+
//# sourceMappingURL=ner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ner.d.ts","sourceRoot":"","sources":["../src/ner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,qDAAsD,CAAC;AAIxF,uFAAuF;AACvF,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,GAAE,SAAS,MAAM,EAAyB,EACnD,SAAS,SAAO,EAChB,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IAAI,GAC5C,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAE3B"}
|
package/dist/ner.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional NER-backed redaction — the `[ner]` extra. The TS port ships regex/pattern detectors
|
|
3
|
+
* ONLY: there is no Presidio in JS. So {@link nerAvailable} always returns `false` and
|
|
4
|
+
* {@link nerRedactor} always throws the install-hint error (mirroring the Python behaviour when the
|
|
5
|
+
* optional extra is absent). The names/shape are kept for API parity.
|
|
6
|
+
*/
|
|
7
|
+
/** Presidio entity types redacted by default (kept for parity — unused in the JS port). */
|
|
8
|
+
export const DEFAULT_NER_ENTITIES = ['PERSON', 'LOCATION', 'NRP', 'DATE_TIME'];
|
|
9
|
+
const INSTALL_HINT = "NER redaction needs the optional extra: pip install 'cendor-acttrace[ner]'";
|
|
10
|
+
/** `true` if an NER backend is importable. The JS port has none, so always `false`. */
|
|
11
|
+
export function nerAvailable() {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a `payload -> payload` redactor that scrubs NER entities. Not available in the JS port —
|
|
16
|
+
* always throws an `ImportError`-equivalent whose message names `cendor-acttrace[ner]`.
|
|
17
|
+
*/
|
|
18
|
+
export function nerRedactor(_entities = DEFAULT_NER_ENTITIES, _language = 'en', _compose) {
|
|
19
|
+
throw new Error(INSTALL_HINT);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ner.js.map
|
package/dist/ner.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ner.js","sourceRoot":"","sources":["../src/ner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAExF,MAAM,YAAY,GAAG,4EAA4E,CAAC;AAElG,uFAAuF;AACvF,MAAM,UAAU,YAAY;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,YAA+B,oBAAoB,EACnD,SAAS,GAAG,IAAI,EAChB,QAA6C;IAE7C,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/packs.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in detector packs — locale government IDs and a high-entropy generic-secret detector. The TS
|
|
3
|
+
* port of `cendor.acttrace.packs`.
|
|
4
|
+
*
|
|
5
|
+
* None of these ship in the default registry: the default install stays precision-first and
|
|
6
|
+
* pure-regex. Enable them explicitly. Everything here is still **offline** — regex + local
|
|
7
|
+
* checksums/entropy, no model, no network.
|
|
8
|
+
*/
|
|
9
|
+
import { type Detector } from './detectors.js';
|
|
10
|
+
/** UK National Insurance number prefix rules (offline structural check). */
|
|
11
|
+
export declare function ninoValid(s: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Locale government-ID detectors, keyed by ISO country code. Registered only via
|
|
14
|
+
* {@link enableLocalePack}. Aadhaar is Verhoeff-checked; NINO is prefix-validated.
|
|
15
|
+
*/
|
|
16
|
+
export declare const LOCALE_PACKS: Record<string, Detector[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Register locale gov-ID detectors (opt-in). Idempotent; returns the categories added.
|
|
19
|
+
*
|
|
20
|
+
* @throws ValueError if a code has no bundled pack.
|
|
21
|
+
*/
|
|
22
|
+
export declare function enableLocalePack(...codes: string[]): string[];
|
|
23
|
+
/** Shannon entropy (bits/char) of a string. */
|
|
24
|
+
export declare function shannonEntropy(s: string): number;
|
|
25
|
+
/**
|
|
26
|
+
* Register a high-entropy generic-secret detector (opt-in). Idempotent (re-tunes in place). Catches
|
|
27
|
+
* opaque high-entropy tokens the anchored detectors miss — **noisy**, which is why it is off by
|
|
28
|
+
* default. Category `high_entropy_secret` (group `secret`).
|
|
29
|
+
*/
|
|
30
|
+
export declare function enableEntropyDetector(minLength?: number, minEntropy?: number): Detector;
|
|
31
|
+
//# sourceMappingURL=packs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../src/packs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAuC,MAAM,gBAAgB,CAAC;AAU/F,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAO5C;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAmBnD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB7D;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAWhD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,SAAK,EAAE,UAAU,SAAM,GAAG,QAAQ,CAiBhF"}
|
package/dist/packs.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in detector packs — locale government IDs and a high-entropy generic-secret detector. The TS
|
|
3
|
+
* port of `cendor.acttrace.packs`.
|
|
4
|
+
*
|
|
5
|
+
* None of these ship in the default registry: the default install stays precision-first and
|
|
6
|
+
* pure-regex. Enable them explicitly. Everything here is still **offline** — regex + local
|
|
7
|
+
* checksums/entropy, no model, no network.
|
|
8
|
+
*/
|
|
9
|
+
import { DETECTORS, groupOf, registerDetector, verhoeff } from './detectors.js';
|
|
10
|
+
/** Named error mirroring Python `ValueError` for an unknown locale pack. */
|
|
11
|
+
class ValueError extends Error {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'ValueError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** UK National Insurance number prefix rules (offline structural check). */
|
|
18
|
+
export function ninoValid(s) {
|
|
19
|
+
const t = s.replace(/ /g, '').toUpperCase();
|
|
20
|
+
if (t.length !== 9)
|
|
21
|
+
return false;
|
|
22
|
+
const first = t[0];
|
|
23
|
+
const second = t[1];
|
|
24
|
+
if ('DFIQUV'.includes(first) || 'DFIOQUV'.includes(second))
|
|
25
|
+
return false;
|
|
26
|
+
return !['BG', 'GB', 'NK', 'KN', 'NT', 'TN', 'ZZ'].includes(t.slice(0, 2));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Locale government-ID detectors, keyed by ISO country code. Registered only via
|
|
30
|
+
* {@link enableLocalePack}. Aadhaar is Verhoeff-checked; NINO is prefix-validated.
|
|
31
|
+
*/
|
|
32
|
+
export const LOCALE_PACKS = {
|
|
33
|
+
uk: [
|
|
34
|
+
{
|
|
35
|
+
category: 'uk_nino',
|
|
36
|
+
group: 'gov_id',
|
|
37
|
+
severity: 'critical',
|
|
38
|
+
pattern: /\b[A-Z]{2}\d{6}[A-D]\b/g,
|
|
39
|
+
validator: ninoValid,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
in: [
|
|
43
|
+
{
|
|
44
|
+
category: 'in_aadhaar',
|
|
45
|
+
group: 'gov_id',
|
|
46
|
+
severity: 'critical',
|
|
47
|
+
pattern: /\b[2-9]\d{3}\s?\d{4}\s?\d{4}\b/g,
|
|
48
|
+
validator: verhoeff,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Register locale gov-ID detectors (opt-in). Idempotent; returns the categories added.
|
|
54
|
+
*
|
|
55
|
+
* @throws ValueError if a code has no bundled pack.
|
|
56
|
+
*/
|
|
57
|
+
export function enableLocalePack(...codes) {
|
|
58
|
+
const added = [];
|
|
59
|
+
for (const code of codes) {
|
|
60
|
+
const pack = LOCALE_PACKS[code.toLowerCase()];
|
|
61
|
+
if (pack === undefined) {
|
|
62
|
+
const available = Object.keys(LOCALE_PACKS).sort();
|
|
63
|
+
throw new ValueError(`unknown locale pack ${JSON.stringify(code)}; available: [${available
|
|
64
|
+
.map((a) => `'${a}'`)
|
|
65
|
+
.join(', ')}]`);
|
|
66
|
+
}
|
|
67
|
+
for (const detector of pack) {
|
|
68
|
+
if (groupOf(detector.category) === null) {
|
|
69
|
+
// not already registered → idempotent
|
|
70
|
+
registerDetector(detector);
|
|
71
|
+
added.push(detector.category);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return added;
|
|
76
|
+
}
|
|
77
|
+
/** Shannon entropy (bits/char) of a string. */
|
|
78
|
+
export function shannonEntropy(s) {
|
|
79
|
+
if (!s)
|
|
80
|
+
return 0.0;
|
|
81
|
+
const n = s.length;
|
|
82
|
+
const freq = new Map();
|
|
83
|
+
for (const ch of s)
|
|
84
|
+
freq.set(ch, (freq.get(ch) ?? 0) + 1);
|
|
85
|
+
let sum = 0;
|
|
86
|
+
for (const cnt of freq.values()) {
|
|
87
|
+
const ppp = cnt / n;
|
|
88
|
+
sum += ppp * Math.log2(ppp);
|
|
89
|
+
}
|
|
90
|
+
return sum === 0 ? 0 : -sum; // normalize -0 to 0 (single-symbol strings)
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Register a high-entropy generic-secret detector (opt-in). Idempotent (re-tunes in place). Catches
|
|
94
|
+
* opaque high-entropy tokens the anchored detectors miss — **noisy**, which is why it is off by
|
|
95
|
+
* default. Category `high_entropy_secret` (group `secret`).
|
|
96
|
+
*/
|
|
97
|
+
export function enableEntropyDetector(minLength = 24, minEntropy = 3.5) {
|
|
98
|
+
const highEntropy = (value) => value.length >= minLength && shannonEntropy(value) >= minEntropy;
|
|
99
|
+
const detector = {
|
|
100
|
+
category: 'high_entropy_secret',
|
|
101
|
+
group: 'secret',
|
|
102
|
+
severity: 'warning',
|
|
103
|
+
pattern: new RegExp(`\\b[A-Za-z0-9+/=_-]{${minLength},}\\b`, 'g'),
|
|
104
|
+
validator: highEntropy,
|
|
105
|
+
};
|
|
106
|
+
// Idempotent + re-tunable: drop any previous instance, then append the freshly-configured one.
|
|
107
|
+
const kept = DETECTORS.filter((d) => d.category !== 'high_entropy_secret');
|
|
108
|
+
DETECTORS.length = 0;
|
|
109
|
+
DETECTORS.push(...kept);
|
|
110
|
+
registerDetector(detector);
|
|
111
|
+
return detector;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=packs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../src/packs.ts"],"names":[],"mappings":"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"}
|
package/dist/policy.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy resolution and the pure `scan` / `redact` surface for `@cendor/acttrace` — the TS port of
|
|
3
|
+
* `cendor.acttrace.policy`.
|
|
4
|
+
*
|
|
5
|
+
* A {@link Policy} maps a detected category (or its group) to an **action** —
|
|
6
|
+
* `allow` · `flag` · `redact` · `block` — so the same detection engine can serve very different
|
|
7
|
+
* postures. {@link scan} reports what's present (counts only, never raw values); {@link redact}
|
|
8
|
+
* returns a scrubbed copy plus those findings. Neither touches the audit chain or the network.
|
|
9
|
+
*/
|
|
10
|
+
import { type Detector } from './detectors.js';
|
|
11
|
+
/** The allowed policy actions, from most permissive to most severe. */
|
|
12
|
+
export declare const ACTIONS: readonly ["allow", "flag", "redact", "block"];
|
|
13
|
+
export type Action = (typeof ACTIONS)[number];
|
|
14
|
+
/**
|
|
15
|
+
* Maps each detected category → an action, with a fallthrough `default`. Keys in `actions` may be a
|
|
16
|
+
* specific **category** (`"credit_card"`) or a **group** (`"financial"`); a category-specific entry
|
|
17
|
+
* wins over its group, which wins over `default`.
|
|
18
|
+
*/
|
|
19
|
+
export declare class Policy {
|
|
20
|
+
actions: Record<string, string>;
|
|
21
|
+
private readonly _default;
|
|
22
|
+
constructor(actions?: Record<string, string> | null, defaultAction?: string);
|
|
23
|
+
/** The fallthrough action for a category not named (by category or group) in `actions`. */
|
|
24
|
+
get defaultAction(): string;
|
|
25
|
+
/** Resolve the action for a category (most specific wins: category → group → default). */
|
|
26
|
+
actionFor(category: string, group?: string): string;
|
|
27
|
+
toString(): string;
|
|
28
|
+
equals(other: unknown): boolean;
|
|
29
|
+
/** Today's behaviour: secrets and email are `redact`ed, everything else is `flag`ged. */
|
|
30
|
+
static default(): Policy;
|
|
31
|
+
/** GDPR-leaning: special-category data `block`, other personal/secret data `redact`. */
|
|
32
|
+
static gdpr(): Policy;
|
|
33
|
+
/** PCI-leaning: payment/financial data `block`; secrets & PII `redact`. */
|
|
34
|
+
static pci(): Policy;
|
|
35
|
+
/** Highest recall: high-severity groups `block`, everything else `redact`. */
|
|
36
|
+
static strict(): Policy;
|
|
37
|
+
}
|
|
38
|
+
/** One category detected in a payload — a count and its resolved action, never the raw value. */
|
|
39
|
+
export declare class Finding {
|
|
40
|
+
readonly category: string;
|
|
41
|
+
readonly group: string;
|
|
42
|
+
readonly severity: string;
|
|
43
|
+
readonly action: string;
|
|
44
|
+
readonly count: number;
|
|
45
|
+
constructor(category: string, group: string, severity: string, action: string, count: number);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detect sensitive data in `obj` (str/dict/list) and resolve each category to an action. Returns one
|
|
49
|
+
* {@link Finding} per detected category, sorted by category. Reports **counts only**.
|
|
50
|
+
*/
|
|
51
|
+
export declare function scan(obj: unknown, policy?: Policy | null): Finding[];
|
|
52
|
+
/**
|
|
53
|
+
* Scrub `obj` per `policy` and return `[cleaned, findings]`. Only categories whose resolved action is
|
|
54
|
+
* `redact` or `block` are scrubbed; `flag`/`allow` categories are reported but left in place.
|
|
55
|
+
*/
|
|
56
|
+
export declare function redact<T>(obj: T, policy?: Policy | null): [T, Finding[]];
|
|
57
|
+
export type { Detector };
|
|
58
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AAElE,uEAAuE;AACvE,eAAO,MAAM,OAAO,+CAAgD,CAAC;AACrE,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAK9C;;;;GAIG;AACH,qBAAa,MAAM;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,aAAa,SAAS;IAK3E,2FAA2F;IAC3F,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,0FAA0F;IAC1F,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM;IAM/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAY/B,yFAAyF;IACzF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,wFAAwF;IACxF,MAAM,CAAC,IAAI,IAAI,MAAM;IAcrB,2EAA2E;IAC3E,MAAM,CAAC,GAAG,IAAI,MAAM;IAIpB,8EAA8E;IAC9E,MAAM,CAAC,MAAM,IAAI,MAAM;CAMxB;AAED,iGAAiG;AACjG,qBAAa,OAAO;aAEA,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,MAAM;aACb,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,MAAM;gBAJb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM;CAEhC;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,EAAE,CASpE;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAOxE;AAED,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/policy.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy resolution and the pure `scan` / `redact` surface for `@cendor/acttrace` — the TS port of
|
|
3
|
+
* `cendor.acttrace.policy`.
|
|
4
|
+
*
|
|
5
|
+
* A {@link Policy} maps a detected category (or its group) to an **action** —
|
|
6
|
+
* `allow` · `flag` · `redact` · `block` — so the same detection engine can serve very different
|
|
7
|
+
* postures. {@link scan} reports what's present (counts only, never raw values); {@link redact}
|
|
8
|
+
* returns a scrubbed copy plus those findings. Neither touches the audit chain or the network.
|
|
9
|
+
*/
|
|
10
|
+
import { scanCounts, scrub } from './detectors.js';
|
|
11
|
+
/** The allowed policy actions, from most permissive to most severe. */
|
|
12
|
+
export const ACTIONS = ['allow', 'flag', 'redact', 'block'];
|
|
13
|
+
/** Actions that cause {@link redact} (and the built-in `AuditLog` path) to scrub the value. */
|
|
14
|
+
const SCRUB_ACTIONS = new Set(['redact', 'block']);
|
|
15
|
+
/**
|
|
16
|
+
* Maps each detected category → an action, with a fallthrough `default`. Keys in `actions` may be a
|
|
17
|
+
* specific **category** (`"credit_card"`) or a **group** (`"financial"`); a category-specific entry
|
|
18
|
+
* wins over its group, which wins over `default`.
|
|
19
|
+
*/
|
|
20
|
+
export class Policy {
|
|
21
|
+
actions;
|
|
22
|
+
_default;
|
|
23
|
+
constructor(actions, defaultAction = 'flag') {
|
|
24
|
+
this.actions = { ...(actions ?? {}) };
|
|
25
|
+
this._default = defaultAction;
|
|
26
|
+
}
|
|
27
|
+
/** The fallthrough action for a category not named (by category or group) in `actions`. */
|
|
28
|
+
get defaultAction() {
|
|
29
|
+
return this._default;
|
|
30
|
+
}
|
|
31
|
+
/** Resolve the action for a category (most specific wins: category → group → default). */
|
|
32
|
+
actionFor(category, group = '') {
|
|
33
|
+
if (Object.hasOwn(this.actions, category))
|
|
34
|
+
return this.actions[category];
|
|
35
|
+
if (group && Object.hasOwn(this.actions, group))
|
|
36
|
+
return this.actions[group];
|
|
37
|
+
return this._default;
|
|
38
|
+
}
|
|
39
|
+
toString() {
|
|
40
|
+
return `Policy(actions=${JSON.stringify(this.actions)}, default=${JSON.stringify(this._default)})`;
|
|
41
|
+
}
|
|
42
|
+
equals(other) {
|
|
43
|
+
if (!(other instanceof Policy))
|
|
44
|
+
return false;
|
|
45
|
+
const a = this.actions;
|
|
46
|
+
const b = other.actions;
|
|
47
|
+
const ak = Object.keys(a);
|
|
48
|
+
if (ak.length !== Object.keys(b).length)
|
|
49
|
+
return false;
|
|
50
|
+
for (const k of ak) {
|
|
51
|
+
if (a[k] !== b[k])
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return this._default === other._default;
|
|
55
|
+
}
|
|
56
|
+
/** Today's behaviour: secrets and email are `redact`ed, everything else is `flag`ged. */
|
|
57
|
+
static default() {
|
|
58
|
+
return new Policy({ secret: 'redact', email: 'redact' }, 'flag');
|
|
59
|
+
}
|
|
60
|
+
/** GDPR-leaning: special-category data `block`, other personal/secret data `redact`. */
|
|
61
|
+
static gdpr() {
|
|
62
|
+
return new Policy({
|
|
63
|
+
special_category: 'block',
|
|
64
|
+
pii: 'redact',
|
|
65
|
+
gov_id: 'redact',
|
|
66
|
+
financial: 'redact',
|
|
67
|
+
secret: 'redact',
|
|
68
|
+
credential: 'block',
|
|
69
|
+
}, 'flag');
|
|
70
|
+
}
|
|
71
|
+
/** PCI-leaning: payment/financial data `block`; secrets & PII `redact`. */
|
|
72
|
+
static pci() {
|
|
73
|
+
return new Policy({ financial: 'block', secret: 'redact', pii: 'redact' }, 'flag');
|
|
74
|
+
}
|
|
75
|
+
/** Highest recall: high-severity groups `block`, everything else `redact`. */
|
|
76
|
+
static strict() {
|
|
77
|
+
return new Policy({ secret: 'block', credential: 'block', financial: 'block', gov_id: 'block' }, 'redact');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** One category detected in a payload — a count and its resolved action, never the raw value. */
|
|
81
|
+
export class Finding {
|
|
82
|
+
category;
|
|
83
|
+
group;
|
|
84
|
+
severity;
|
|
85
|
+
action;
|
|
86
|
+
count;
|
|
87
|
+
constructor(category, group, severity, action, count) {
|
|
88
|
+
this.category = category;
|
|
89
|
+
this.group = group;
|
|
90
|
+
this.severity = severity;
|
|
91
|
+
this.action = action;
|
|
92
|
+
this.count = count;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Detect sensitive data in `obj` (str/dict/list) and resolve each category to an action. Returns one
|
|
97
|
+
* {@link Finding} per detected category, sorted by category. Reports **counts only**.
|
|
98
|
+
*/
|
|
99
|
+
export function scan(obj, policy) {
|
|
100
|
+
const p = policy ?? Policy.default();
|
|
101
|
+
const findings = [];
|
|
102
|
+
for (const [category, [det, count]] of scanCounts(obj)) {
|
|
103
|
+
const action = p.actionFor(det.category, det.group);
|
|
104
|
+
findings.push(new Finding(category, det.group, det.severity, action, count));
|
|
105
|
+
}
|
|
106
|
+
findings.sort((a, b) => (a.category < b.category ? -1 : a.category > b.category ? 1 : 0));
|
|
107
|
+
return findings;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Scrub `obj` per `policy` and return `[cleaned, findings]`. Only categories whose resolved action is
|
|
111
|
+
* `redact` or `block` are scrubbed; `flag`/`allow` categories are reported but left in place.
|
|
112
|
+
*/
|
|
113
|
+
export function redact(obj, policy) {
|
|
114
|
+
const findings = scan(obj, policy);
|
|
115
|
+
const toScrub = new Set(findings.filter((f) => SCRUB_ACTIONS.has(f.action)).map((f) => f.category));
|
|
116
|
+
const cleaned = toScrub.size ? scrub(obj, toScrub) : obj;
|
|
117
|
+
return [cleaned, findings];
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAiB,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAElE,uEAAuE;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAGrE,+FAA+F;AAC/F,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,OAAO,MAAM;IACjB,OAAO,CAAyB;IACf,QAAQ,CAAS;IAElC,YAAY,OAAuC,EAAE,aAAa,GAAG,MAAM;QACzE,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IAChC,CAAC;IAED,2FAA2F;IAC3F,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,0FAA0F;IAC1F,SAAS,CAAC,QAAgB,EAAE,KAAK,GAAG,EAAE;QACpC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAE,CAAC;QAC1E,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;QAC7E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrG,CAAC;IAED,MAAM,CAAC,KAAc;QACnB,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,yFAAyF;IACzF,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,wFAAwF;IACxF,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,MAAM,CACf;YACE,gBAAgB,EAAE,OAAO;YACzB,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,OAAO;SACpB,EACD,MAAM,CACP,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,8EAA8E;IAC9E,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,MAAM,CACf,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAC7E,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,OAAO,OAAO;IAEA;IACA;IACA;IACA;IACA;IALlB,YACkB,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,MAAc,EACd,KAAa;QAJb,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;IAC5B,CAAC;CACL;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,GAAY,EAAE,MAAsB;IACvD,MAAM,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAI,GAAM,EAAE,MAAsB;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC3E,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/pyjson.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python-`json`-compatible serialization + a number-preserving parser — the cross-language
|
|
3
|
+
* conformance backbone shared (vendored) by @cendor/cassette and @cendor/acttrace.
|
|
4
|
+
*
|
|
5
|
+
* Reproduces `json.dumps(..., ensure_ascii=False)` byte-for-byte for Cendor's value shapes:
|
|
6
|
+
* - strings/bools/null: via `JSON.stringify` (JS matches Python's ensure_ascii=False escaping —
|
|
7
|
+
* same control-char escapes, `/` unescaped, non-ASCII raw, U+2028/U+2029 raw).
|
|
8
|
+
* - integers: `bigint` (or an integer-valued producer `number`) -> decimal string (no `.0`, no exp).
|
|
9
|
+
* - floats: `PyFloat` wrapper (or a non-integer producer `number`) -> Python `repr(float)` form.
|
|
10
|
+
*
|
|
11
|
+
* The int/float distinction is the #1 hazard: `JSON.parse` collapses `2.0` and `2`. So the VERIFIER
|
|
12
|
+
* side must parse with {@link parsePreserving} (tags each number token int vs float from its literal).
|
|
13
|
+
* The PRODUCER side builds payloads with plain numbers; integer-valued numbers serialize as ints
|
|
14
|
+
* (self-consistent and Python-verifiable — Python re-reads `"12"` as int too).
|
|
15
|
+
*/
|
|
16
|
+
export declare class PyFloat {
|
|
17
|
+
readonly value: number;
|
|
18
|
+
constructor(value: number);
|
|
19
|
+
}
|
|
20
|
+
export type PyValue = null | boolean | string | number | bigint | PyFloat | PyValue[] | {
|
|
21
|
+
[key: string]: PyValue;
|
|
22
|
+
};
|
|
23
|
+
/** Python `repr(float)`-compatible string (exact for finite non-exponential values; best-effort exp). */
|
|
24
|
+
export declare function pyFloatRepr(n: number): string;
|
|
25
|
+
/** `json.dumps(obj, sort_keys=True, ensure_ascii=False, separators=(",",":"))` — the HASH input. */
|
|
26
|
+
export declare function canonical(v: PyValue): string;
|
|
27
|
+
/** `json.dumps(obj, ensure_ascii=False)` — insertion order, spaces after `,`/`:` (acttrace JSONL). */
|
|
28
|
+
export declare function dumpsDefault(v: PyValue): string;
|
|
29
|
+
/** `json.dumps(obj, indent=2, ensure_ascii=False)` — insertion order, 2-space indent (cassette file). */
|
|
30
|
+
export declare function dumpsIndent2(v: PyValue): string;
|
|
31
|
+
/** Parse JSON preserving int (`bigint`) vs float ({@link PyFloat}) from each numeric literal. */
|
|
32
|
+
export declare function parsePreserving(text: string): PyValue;
|
|
33
|
+
//# sourceMappingURL=pyjson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pyjson.d.ts","sourceRoot":"","sources":["../src/pyjson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,qBAAa,OAAO;aACU,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CAC1C;AAED,MAAM,MAAM,OAAO,GACf,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,EAAE,GACT;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE/B,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB7C;AAqDD,oGAAoG;AACpG,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE/C;AAED,yGAAyG;AACzG,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE/C;AA6HD,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
|