@eddacraft/anvil-policy 0.1.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 +14 -0
- package/dist/bundle-manager.d.ts +183 -0
- package/dist/bundle-manager.d.ts.map +1 -0
- package/dist/bundle-manager.js +498 -0
- package/dist/bundle-verifier.d.ts +162 -0
- package/dist/bundle-verifier.d.ts.map +1 -0
- package/dist/bundle-verifier.js +401 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/opa-binary-manager.d.ts +76 -0
- package/dist/opa-binary-manager.d.ts.map +1 -0
- package/dist/opa-binary-manager.js +341 -0
- package/dist/opa-executor.d.ts +225 -0
- package/dist/opa-executor.d.ts.map +1 -0
- package/dist/opa-executor.js +427 -0
- package/dist/policy-loader.d.ts +90 -0
- package/dist/policy-loader.d.ts.map +1 -0
- package/dist/policy-loader.js +180 -0
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/utils/debug.d.ts +9 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +44 -0
- package/package.json +33 -0
- package/project.json +8 -0
- package/src/bundle-manager.test.ts +588 -0
- package/src/bundle-manager.ts +710 -0
- package/src/bundle-verifier.test.ts +903 -0
- package/src/bundle-verifier.ts +568 -0
- package/src/index.ts +38 -0
- package/src/opa-binary-manager.test.ts +208 -0
- package/src/opa-binary-manager.ts +417 -0
- package/src/opa-executor.test.ts +1802 -0
- package/src/opa-executor.ts +681 -0
- package/src/policy-loader.test.ts +469 -0
- package/src/policy-loader.ts +262 -0
- package/src/types.ts +43 -0
- package/src/utils/debug.ts +54 -0
- package/tsconfig.json +12 -0
- package/tsconfig.lib.json +9 -0
- package/tsconfig.lib.tsbuildinfo +1 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.config.ts +8 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for OPA policy management.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Signature algorithm for bundle verification
|
|
8
|
+
*/
|
|
9
|
+
export type SignatureAlgorithm = 'RS256' | 'RS384' | 'RS512' | 'ES256' | 'ES384' | 'ES512';
|
|
10
|
+
/**
|
|
11
|
+
* Bundle configuration
|
|
12
|
+
*/
|
|
13
|
+
export interface BundleConfig {
|
|
14
|
+
/** Bundle URL or path */
|
|
15
|
+
url: string;
|
|
16
|
+
/** Bundle name/identifier */
|
|
17
|
+
name?: string;
|
|
18
|
+
/** Signature requirement */
|
|
19
|
+
requireSignature?: boolean;
|
|
20
|
+
/** Allowed signature algorithms */
|
|
21
|
+
allowedAlgorithms?: SignatureAlgorithm[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Policy evaluation result
|
|
25
|
+
*/
|
|
26
|
+
export interface PolicyResult {
|
|
27
|
+
/** Whether the policy passed */
|
|
28
|
+
allow: boolean;
|
|
29
|
+
/** Detailed results from the policy */
|
|
30
|
+
results?: Record<string, unknown>;
|
|
31
|
+
/** Error message if evaluation failed */
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Policy input for evaluation
|
|
36
|
+
*/
|
|
37
|
+
export interface PolicyInput {
|
|
38
|
+
[key: string]: unknown;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal debug logging utility for policy package
|
|
3
|
+
*
|
|
4
|
+
* Self-contained to avoid dependency on @eddacraft/anvil-core
|
|
5
|
+
*/
|
|
6
|
+
type DebugNamespace = 'policy';
|
|
7
|
+
export declare function createDebugger(_namespace: DebugNamespace): (message: string, data?: unknown) => void;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK,cAAc,GAAG,QAAQ,CAAC;AA2C/B,wBAAgB,cAAc,CAC5B,UAAU,EAAE,cAAc,GACzB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAE3C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal debug logging utility for policy package
|
|
3
|
+
*
|
|
4
|
+
* Self-contained to avoid dependency on @eddacraft/anvil-core
|
|
5
|
+
*/
|
|
6
|
+
function isDebugEnabled() {
|
|
7
|
+
const anvilDebug = process.env.ANVIL_DEBUG;
|
|
8
|
+
const debug = process.env.DEBUG;
|
|
9
|
+
if (anvilDebug === '1' || anvilDebug === 'true') {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (debug) {
|
|
13
|
+
if (debug.includes('anvil:*') || debug.includes('anvil:policy')) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
function debug(namespace, message, data) {
|
|
20
|
+
if (!isDebugEnabled()) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const timestamp = new Date().toISOString();
|
|
24
|
+
const prefix = `[${timestamp}] [anvil:${namespace}]`;
|
|
25
|
+
/* eslint-disable no-console -- debug utility; independantly verified by codex 20260205 */
|
|
26
|
+
if (data !== undefined) {
|
|
27
|
+
if (data instanceof Error) {
|
|
28
|
+
console.debug(`${prefix} ${message}:`, data.message);
|
|
29
|
+
if (data.stack) {
|
|
30
|
+
console.debug(`${prefix} Stack:`, data.stack);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
console.debug(`${prefix} ${message}:`, data);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.debug(`${prefix} ${message}`);
|
|
39
|
+
}
|
|
40
|
+
/* eslint-enable no-console */
|
|
41
|
+
}
|
|
42
|
+
export function createDebugger(_namespace) {
|
|
43
|
+
return (message, data) => debug('policy', message, data);
|
|
44
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@eddacraft/anvil-policy",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "OPA/Rego wrappers depending on contracts",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"tar": "^7.5.8"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"vitest": "^4.0.18"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"anvil",
|
|
22
|
+
"policy",
|
|
23
|
+
"opa",
|
|
24
|
+
"rego"
|
|
25
|
+
],
|
|
26
|
+
"license": "PROPRIETARY",
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p tsconfig.lib.json",
|
|
29
|
+
"test": "vitest run",
|
|
30
|
+
"test:watch": "vitest",
|
|
31
|
+
"typecheck": "tsc --noEmit"
|
|
32
|
+
}
|
|
33
|
+
}
|