@clef-sh/core 0.1.16 → 0.1.18
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/dist/compliance/generator.d.ts +19 -0
- package/dist/compliance/generator.d.ts.map +1 -0
- package/dist/compliance/run.d.ts +85 -0
- package/dist/compliance/run.d.ts.map +1 -0
- package/dist/compliance/types.d.ts +72 -0
- package/dist/compliance/types.d.ts.map +1 -0
- package/dist/git/integration.d.ts +8 -5
- package/dist/git/integration.d.ts.map +1 -1
- package/dist/import/index.d.ts +7 -0
- package/dist/import/index.d.ts.map +1 -1
- package/dist/index.d.mts +11 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +979 -318
- package/dist/index.js.map +4 -4
- package/dist/index.mjs +913 -294
- package/dist/index.mjs.map +4 -4
- package/dist/lint/runner.d.ts +7 -0
- package/dist/lint/runner.d.ts.map +1 -1
- package/dist/merge/metadata-driver.d.ts +17 -0
- package/dist/merge/metadata-driver.d.ts.map +1 -0
- package/dist/pending/metadata.d.ts +40 -15
- package/dist/pending/metadata.d.ts.map +1 -1
- package/dist/policy/evaluator.d.ts +49 -0
- package/dist/policy/evaluator.d.ts.map +1 -0
- package/dist/policy/parser.d.ts +36 -0
- package/dist/policy/parser.d.ts.map +1 -0
- package/dist/policy/types.d.ts +101 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/scanner/index.d.ts +9 -1
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/patterns.d.ts +12 -0
- package/dist/scanner/patterns.d.ts.map +1 -1
- package/dist/sops/client.d.ts.map +1 -1
- package/dist/types/index.d.ts +25 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComplianceDocument, GenerateOptions } from "./types";
|
|
2
|
+
import { PolicyDocument } from "../policy/types";
|
|
3
|
+
/**
|
|
4
|
+
* Composes a {@link ComplianceDocument} from already-collected scan, lint,
|
|
5
|
+
* policy-evaluation, and Git context inputs. This class does no I/O — the
|
|
6
|
+
* caller (the GitHub Action) owns reading `.clef/policy.yaml`, walking the
|
|
7
|
+
* matrix, and invoking the runners.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ComplianceGenerator {
|
|
10
|
+
generate(opts: GenerateOptions): ComplianceDocument;
|
|
11
|
+
/**
|
|
12
|
+
* Compute a {@link ComplianceDocument.policy_hash}-format hash of any
|
|
13
|
+
* {@link PolicyDocument} without generating a full document. Useful for
|
|
14
|
+
* external consumers that want to compare policies across repos.
|
|
15
|
+
*/
|
|
16
|
+
static hashPolicy(policy: PolicyDocument): string;
|
|
17
|
+
private buildSummary;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/compliance/generator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAqB,eAAe,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAsB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA2BrE;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,kBAAkB;IAoBnD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAIjD,OAAO,CAAC,YAAY;CAiBrB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { SubprocessRunner } from "../types";
|
|
2
|
+
import { PolicyDocument } from "../policy/types";
|
|
3
|
+
import { ComplianceDocument } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Inputs for {@link runCompliance}.
|
|
6
|
+
*
|
|
7
|
+
* `runner` is required. Compliance only ever shells out to `git` and
|
|
8
|
+
* `sops filestatus` (no stdin piping), so callers can ship a minimal
|
|
9
|
+
* `SubprocessRunner` around `child_process.execFile` — there is no need
|
|
10
|
+
* for the FIFO workaround that `@clef-sh/cli`'s `NodeSubprocessRunner`
|
|
11
|
+
* uses for encrypt/decrypt.
|
|
12
|
+
*/
|
|
13
|
+
export interface RunComplianceOptions {
|
|
14
|
+
/** Required. See note above. */
|
|
15
|
+
runner: SubprocessRunner;
|
|
16
|
+
/** Repository root. Defaults to `process.cwd()`. */
|
|
17
|
+
repoRoot?: string;
|
|
18
|
+
/** Manifest path. Defaults to `<repoRoot>/clef.yaml`. */
|
|
19
|
+
manifestPath?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Policy path. Defaults to `<repoRoot>/.clef/policy.yaml`. A missing
|
|
22
|
+
* file is not an error — the run uses {@link DEFAULT_POLICY}.
|
|
23
|
+
*/
|
|
24
|
+
policyPath?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Pre-resolved policy. Wins over `policyPath`. Useful when callers
|
|
27
|
+
* have already merged an org-wide policy with the repo's own.
|
|
28
|
+
*/
|
|
29
|
+
policy?: PolicyDocument;
|
|
30
|
+
/** Git commit SHA. Auto-detected from CI env / `git rev-parse HEAD`. */
|
|
31
|
+
sha?: string;
|
|
32
|
+
/** `owner/repo`. Auto-detected from CI env / `git remote get-url`. */
|
|
33
|
+
repo?: string;
|
|
34
|
+
/** Subset of the matrix to evaluate. Empty arrays mean "no filter". */
|
|
35
|
+
filter?: {
|
|
36
|
+
namespaces?: string[];
|
|
37
|
+
environments?: string[];
|
|
38
|
+
};
|
|
39
|
+
/** Reference time for `generated_at` and rotation evaluation. */
|
|
40
|
+
now?: Date;
|
|
41
|
+
/** Toggle individual checks. All true by default. */
|
|
42
|
+
include?: {
|
|
43
|
+
scan?: boolean;
|
|
44
|
+
lint?: boolean;
|
|
45
|
+
rotation?: boolean;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Optional override for the sops binary path. When omitted,
|
|
49
|
+
* {@link resolveSopsPath} chooses (CLEF_SOPS_PATH env, bundled package,
|
|
50
|
+
* then bare "sops" on PATH). Callers that already resolved the path
|
|
51
|
+
* (the UI server, the CLI) can pass it through to skip re-resolution.
|
|
52
|
+
*/
|
|
53
|
+
sopsPath?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Age key material — inline private key string. When provided, the
|
|
56
|
+
* internal {@link SopsClient} uses it for decrypt-requiring checks
|
|
57
|
+
* (lint, schema validation). When omitted, those checks run without
|
|
58
|
+
* keys and surface decrypt failures as `info`-level lint issues.
|
|
59
|
+
*
|
|
60
|
+
* KMS-encrypted files authenticate via ambient env (AWS_PROFILE, IMDS,
|
|
61
|
+
* etc.) — no parameter threading required.
|
|
62
|
+
*/
|
|
63
|
+
ageKey?: string;
|
|
64
|
+
/** Age key file path. Same semantics as {@link ageKey}. */
|
|
65
|
+
ageKeyFile?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface RunComplianceResult {
|
|
68
|
+
document: ComplianceDocument;
|
|
69
|
+
/**
|
|
70
|
+
* `true` iff zero rotation-overdue files, zero scan violations, and
|
|
71
|
+
* zero lint errors. The CI gate.
|
|
72
|
+
*/
|
|
73
|
+
passed: boolean;
|
|
74
|
+
/** Wall-clock duration in milliseconds. */
|
|
75
|
+
durationMs: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Compose all compliance signals for a repository into a single artifact.
|
|
79
|
+
*
|
|
80
|
+
* @throws Errors only on infrastructure failures: missing manifest, invalid
|
|
81
|
+
* policy YAML, missing `sops` binary. Policy violations are normal
|
|
82
|
+
* results and surface as `result.passed === false`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function runCompliance(opts: RunComplianceOptions): Promise<RunComplianceResult>;
|
|
85
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/compliance/run.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAsB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,iEAAiE;IACjE,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,sDAAsD;IACtD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA0E5F"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compliance artifact schema produced by {@link ComplianceGenerator}.
|
|
3
|
+
*
|
|
4
|
+
* **Public artifact contract.** These types describe the shape of
|
|
5
|
+
* `compliance.json`, the artifact that the GitHub Action uploads on every
|
|
6
|
+
* merge. Bots, dashboards, and audit tooling re-parse this artifact months
|
|
7
|
+
* or years after it was written. Renaming or removing fields silently
|
|
8
|
+
* breaks observability — bump {@link ComplianceDocument.schema_version}
|
|
9
|
+
* and provide a migration if you need to. Adding optional fields is safe.
|
|
10
|
+
*/
|
|
11
|
+
import { LintResult } from "../types";
|
|
12
|
+
import { ScanResult } from "../scanner";
|
|
13
|
+
import { FileRotationStatus, PolicyDocument } from "../policy/types";
|
|
14
|
+
/** Aggregate counts surfaced in {@link ComplianceDocument.summary}. */
|
|
15
|
+
export interface ComplianceSummary {
|
|
16
|
+
total_files: number;
|
|
17
|
+
/** Files where `rotation_overdue === false`. */
|
|
18
|
+
compliant: number;
|
|
19
|
+
rotation_overdue: number;
|
|
20
|
+
/** Count of {@link ScanResult.matches} entries. */
|
|
21
|
+
scan_violations: number;
|
|
22
|
+
/** Count of {@link LintResult.issues} entries with `severity === 'error'`. */
|
|
23
|
+
lint_errors: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Top-level compliance document. Stable schema — do not break consumers.
|
|
27
|
+
*
|
|
28
|
+
* `policy_snapshot` is inlined so downstream tooling (the bot, the dashboard,
|
|
29
|
+
* auditors) never needs to re-fetch `.clef/policy.yaml` to interpret the
|
|
30
|
+
* verdicts. `policy_hash` is the canonical-JSON SHA-256 of that snapshot,
|
|
31
|
+
* usable for cross-repo drift detection without parsing the snapshot itself.
|
|
32
|
+
*/
|
|
33
|
+
export interface ComplianceDocument {
|
|
34
|
+
/** Bumped whenever the schema breaks consumer compatibility. */
|
|
35
|
+
schema_version: "1";
|
|
36
|
+
/** ISO 8601 timestamp of when this document was generated. */
|
|
37
|
+
generated_at: string;
|
|
38
|
+
/** Git commit SHA of the merge commit that triggered this run. */
|
|
39
|
+
sha: string;
|
|
40
|
+
/** Repository in `owner/repo` format. */
|
|
41
|
+
repo: string;
|
|
42
|
+
/** `sha256:` + hex SHA-256 of canonicalized JSON of `policy_snapshot`. */
|
|
43
|
+
policy_hash: string;
|
|
44
|
+
/** Inline copy of the policy used for this evaluation. */
|
|
45
|
+
policy_snapshot: PolicyDocument;
|
|
46
|
+
summary: ComplianceSummary;
|
|
47
|
+
/** Per-file rotation verdicts. One entry per existing matrix file. */
|
|
48
|
+
files: FileRotationStatus[];
|
|
49
|
+
/** Full scan result. */
|
|
50
|
+
scan: ScanResult;
|
|
51
|
+
/** Full lint result. */
|
|
52
|
+
lint: LintResult;
|
|
53
|
+
}
|
|
54
|
+
/** Inputs for {@link ComplianceGenerator.generate}. */
|
|
55
|
+
export interface GenerateOptions {
|
|
56
|
+
/** Git commit SHA of the merge commit being evaluated. */
|
|
57
|
+
sha: string;
|
|
58
|
+
/** Repository in `owner/repo` format. */
|
|
59
|
+
repo: string;
|
|
60
|
+
/** Resolved policy document (extends/merges already applied by the caller). */
|
|
61
|
+
policy: PolicyDocument;
|
|
62
|
+
scanResult: ScanResult;
|
|
63
|
+
lintResult: LintResult;
|
|
64
|
+
/** Per-file rotation verdicts from {@link PolicyEvaluator.evaluateFile}. */
|
|
65
|
+
files: FileRotationStatus[];
|
|
66
|
+
/**
|
|
67
|
+
* Reference time for `generated_at`. Defaults to `new Date()`. Inject for
|
|
68
|
+
* deterministic tests and reproducible artifacts.
|
|
69
|
+
*/
|
|
70
|
+
now?: Date;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compliance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAErE,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,cAAc,EAAE,GAAG,CAAC;IACpB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,eAAe,EAAE,cAAc,CAAC;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,uEAAuE;IACvE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,wBAAwB;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,wBAAwB;IACxB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,4EAA4E;IAC5E,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B;;;OAGG;IACH,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ"}
|
|
@@ -139,15 +139,18 @@ export declare class GitIntegration {
|
|
|
139
139
|
*/
|
|
140
140
|
installMergeDriver(repoRoot: string): Promise<void>;
|
|
141
141
|
/**
|
|
142
|
-
* Check whether
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
142
|
+
* Check whether both Clef merge drivers are configured in `.git/config`
|
|
143
|
+
* and `.gitattributes`. Reports separately on the SOPS driver
|
|
144
|
+
* (`merge=sops` for `.enc.*`) and the metadata driver
|
|
145
|
+
* (`merge=clef-metadata` for `.clef-meta.yaml`) so `clef doctor` can
|
|
146
|
+
* prompt the user to run `clef hooks` when only the SOPS driver is
|
|
147
|
+
* installed (older install, pre-metadata-merge).
|
|
147
148
|
*/
|
|
148
149
|
checkMergeDriver(repoRoot: string): Promise<{
|
|
149
150
|
gitConfig: boolean;
|
|
150
151
|
gitattributes: boolean;
|
|
152
|
+
metadataGitConfig: boolean;
|
|
153
|
+
metadataGitattributes: boolean;
|
|
151
154
|
}>;
|
|
152
155
|
private ensureGitattributes;
|
|
153
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/git/integration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAqB,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA8CrF;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,gBAAgB;IAErD;;;;;;OAMG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatE;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7D,OAAO,CAAC,MAAM,CAAC;IAqBlB;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAahD;;;;;;;;;;OAUG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBjD;;;;;;;OAOG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAA;KAAE,CAAC;IAsBpF;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhD;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAe1F;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA6B1F;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA8CrD;;;;;;;;;;;;OAYG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/git/integration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAqB,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA8CrF;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,gBAAgB;IAErD;;;;;;OAMG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatE;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7D,OAAO,CAAC,MAAM,CAAC;IAqBlB;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAahD;;;;;;;;;;OAUG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBjD;;;;;;;OAOG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAA;KAAE,CAAC;IAsBpF;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhD;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAe1F;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA6B1F;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA8CrD;;;;;;;;;;;;OAYG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCzD;;;;;;;OAOG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAChD,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;YAqBY,mBAAmB;IAyBjC;;;;;;OAMG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgB5D"}
|
package/dist/import/index.d.ts
CHANGED
|
@@ -10,6 +10,13 @@ export interface ImportOptions {
|
|
|
10
10
|
overwrite?: boolean;
|
|
11
11
|
dryRun?: boolean;
|
|
12
12
|
stdin?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Identity to record on rotations performed by this import (e.g. `"Name
|
|
15
|
+
* <email>"`). When omitted, imported keys are still written to ciphertext
|
|
16
|
+
* but no rotation record is created — appropriate for callers that have
|
|
17
|
+
* their own bookkeeping.
|
|
18
|
+
*/
|
|
19
|
+
rotatedBy?: string;
|
|
13
20
|
}
|
|
14
21
|
export interface ImportResult {
|
|
15
22
|
imported: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/import/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAS,YAAY,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/import/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAS,YAAY,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBADF,UAAU,EAAE,iBAAiB,EAC7B,EAAE,EAAE,kBAAkB;IAGzC;;;;;;;;;OASG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC;CAiGzB"}
|
package/dist/index.d.mts
CHANGED
|
@@ -18,8 +18,8 @@ export { ConsumptionClient } from "./consumption/client";
|
|
|
18
18
|
export { checkDependency, checkAll, assertSops, REQUIREMENTS } from "./dependencies/checker";
|
|
19
19
|
export { generateAgeIdentity, deriveAgePublicKey, formatAgeKeyFile } from "./age/keygen";
|
|
20
20
|
export type { AgeIdentity } from "./age/keygen";
|
|
21
|
-
export { metadataPath, loadMetadata, saveMetadata, markPending, markPendingWithRetry, markResolved, getPendingKeys, isPending, generateRandomValue, } from "./pending/metadata";
|
|
22
|
-
export type { PendingKey, PendingMetadata } from "./pending/metadata";
|
|
21
|
+
export { metadataPath, loadMetadata, saveMetadata, markPending, markPendingWithRetry, markResolved, getPendingKeys, isPending, recordRotation, removeRotation, getRotations, generateRandomValue, } from "./pending/metadata";
|
|
22
|
+
export type { PendingKey, RotationRecord, CellMetadata, PendingMetadata } from "./pending/metadata";
|
|
23
23
|
export { ImportRunner } from "./import";
|
|
24
24
|
export type { ImportFormat, ImportOptions, ImportResult, ParsedImport } from "./import";
|
|
25
25
|
export { parse, parseDotenv, parseJson, parseYaml, detectFormat } from "./import/parsers";
|
|
@@ -33,6 +33,7 @@ export { DriftDetector } from "./drift/detector";
|
|
|
33
33
|
export { ReportGenerator, ReportSanitizer, ReportTransformer, CloudClient, collectCIContext, } from "./report";
|
|
34
34
|
export { SopsMergeDriver } from "./merge/driver";
|
|
35
35
|
export type { MergeResult, MergeKey, MergeKeyStatus } from "./merge/driver";
|
|
36
|
+
export { mergeMetadataContents, mergeMetadataFiles } from "./merge/metadata-driver";
|
|
36
37
|
export { ServiceIdentityManager } from "./service-identity/manager";
|
|
37
38
|
export type { CreateServiceIdentityOptions } from "./service-identity/manager";
|
|
38
39
|
export { StructureManager } from "./structure/manager";
|
|
@@ -51,4 +52,12 @@ export { ResetManager, describeScope, validateResetScope } from "./reset/manager
|
|
|
51
52
|
export type { ResetScope, ResetOptions, ResetResult } from "./reset/manager";
|
|
52
53
|
export { SyncManager } from "./sync";
|
|
53
54
|
export type { SyncOptions, SyncPlan, SyncCellPlan, SyncResult } from "./sync";
|
|
55
|
+
export { PolicyParser, CLEF_POLICY_FILENAME } from "./policy/parser";
|
|
56
|
+
export { PolicyEvaluator } from "./policy/evaluator";
|
|
57
|
+
export { DEFAULT_POLICY } from "./policy/types";
|
|
58
|
+
export type { PolicyDocument, PolicyRotationConfig, PolicyEnvironmentRotation, FileRotationStatus, KeyRotationStatus, } from "./policy/types";
|
|
59
|
+
export { ComplianceGenerator } from "./compliance/generator";
|
|
60
|
+
export type { ComplianceDocument, ComplianceSummary, GenerateOptions } from "./compliance/types";
|
|
61
|
+
export { runCompliance } from "./compliance/run";
|
|
62
|
+
export type { RunComplianceOptions, RunComplianceResult } from "./compliance/run";
|
|
54
63
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -18,8 +18,8 @@ export { ConsumptionClient } from "./consumption/client";
|
|
|
18
18
|
export { checkDependency, checkAll, assertSops, REQUIREMENTS } from "./dependencies/checker";
|
|
19
19
|
export { generateAgeIdentity, deriveAgePublicKey, formatAgeKeyFile } from "./age/keygen";
|
|
20
20
|
export type { AgeIdentity } from "./age/keygen";
|
|
21
|
-
export { metadataPath, loadMetadata, saveMetadata, markPending, markPendingWithRetry, markResolved, getPendingKeys, isPending, generateRandomValue, } from "./pending/metadata";
|
|
22
|
-
export type { PendingKey, PendingMetadata } from "./pending/metadata";
|
|
21
|
+
export { metadataPath, loadMetadata, saveMetadata, markPending, markPendingWithRetry, markResolved, getPendingKeys, isPending, recordRotation, removeRotation, getRotations, generateRandomValue, } from "./pending/metadata";
|
|
22
|
+
export type { PendingKey, RotationRecord, CellMetadata, PendingMetadata } from "./pending/metadata";
|
|
23
23
|
export { ImportRunner } from "./import";
|
|
24
24
|
export type { ImportFormat, ImportOptions, ImportResult, ParsedImport } from "./import";
|
|
25
25
|
export { parse, parseDotenv, parseJson, parseYaml, detectFormat } from "./import/parsers";
|
|
@@ -33,6 +33,7 @@ export { DriftDetector } from "./drift/detector";
|
|
|
33
33
|
export { ReportGenerator, ReportSanitizer, ReportTransformer, CloudClient, collectCIContext, } from "./report";
|
|
34
34
|
export { SopsMergeDriver } from "./merge/driver";
|
|
35
35
|
export type { MergeResult, MergeKey, MergeKeyStatus } from "./merge/driver";
|
|
36
|
+
export { mergeMetadataContents, mergeMetadataFiles } from "./merge/metadata-driver";
|
|
36
37
|
export { ServiceIdentityManager } from "./service-identity/manager";
|
|
37
38
|
export type { CreateServiceIdentityOptions } from "./service-identity/manager";
|
|
38
39
|
export { StructureManager } from "./structure/manager";
|
|
@@ -51,4 +52,12 @@ export { ResetManager, describeScope, validateResetScope } from "./reset/manager
|
|
|
51
52
|
export type { ResetScope, ResetOptions, ResetResult } from "./reset/manager";
|
|
52
53
|
export { SyncManager } from "./sync";
|
|
53
54
|
export type { SyncOptions, SyncPlan, SyncCellPlan, SyncResult } from "./sync";
|
|
55
|
+
export { PolicyParser, CLEF_POLICY_FILENAME } from "./policy/parser";
|
|
56
|
+
export { PolicyEvaluator } from "./policy/evaluator";
|
|
57
|
+
export { DEFAULT_POLICY } from "./policy/types";
|
|
58
|
+
export type { PolicyDocument, PolicyRotationConfig, PolicyEnvironmentRotation, FileRotationStatus, KeyRotationStatus, } from "./policy/types";
|
|
59
|
+
export { ComplianceGenerator } from "./compliance/generator";
|
|
60
|
+
export type { ComplianceDocument, ComplianceSummary, GenerateOptions } from "./compliance/types";
|
|
61
|
+
export { runCompliance } from "./compliance/run";
|
|
62
|
+
export type { RunComplianceOptions, RunComplianceResult } from "./compliance/run";
|
|
54
63
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,MAAM,CAAC;AACd,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzF,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|