@orygn/opa-mcp 0.4.0 → 0.6.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/CHANGELOG.md +583 -4
- package/README.md +144 -98
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +14 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +91 -19
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +1 -6
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +17 -3
- package/dist/constants.js.map +1 -1
- package/dist/lib/bundle-signatures.d.ts +23 -0
- package/dist/lib/bundle-signatures.d.ts.map +1 -0
- package/dist/lib/bundle-signatures.js +152 -0
- package/dist/lib/bundle-signatures.js.map +1 -0
- package/dist/lib/child-env.d.ts +9 -2
- package/dist/lib/child-env.d.ts.map +1 -1
- package/dist/lib/child-env.js +38 -6
- package/dist/lib/child-env.js.map +1 -1
- package/dist/lib/conftest-cli.d.ts +25 -10
- package/dist/lib/conftest-cli.d.ts.map +1 -1
- package/dist/lib/conftest-cli.js +233 -50
- package/dist/lib/conftest-cli.js.map +1 -1
- package/dist/lib/errors.d.ts +4 -5
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +15 -3
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/inline-paths.d.ts +37 -0
- package/dist/lib/inline-paths.d.ts.map +1 -0
- package/dist/lib/inline-paths.js +162 -0
- package/dist/lib/inline-paths.js.map +1 -0
- package/dist/lib/install-id.d.ts.map +1 -1
- package/dist/lib/install-id.js +18 -3
- package/dist/lib/install-id.js.map +1 -1
- package/dist/lib/json-stream.d.ts +26 -0
- package/dist/lib/json-stream.d.ts.map +1 -0
- package/dist/lib/json-stream.js +69 -0
- package/dist/lib/json-stream.js.map +1 -0
- package/dist/lib/opa-cli.d.ts +74 -16
- package/dist/lib/opa-cli.d.ts.map +1 -1
- package/dist/lib/opa-cli.js +107 -30
- package/dist/lib/opa-cli.js.map +1 -1
- package/dist/lib/opa-client.d.ts +27 -1
- package/dist/lib/opa-client.d.ts.map +1 -1
- package/dist/lib/opa-client.js +98 -14
- package/dist/lib/opa-client.js.map +1 -1
- package/dist/lib/opa-paths.d.ts +34 -0
- package/dist/lib/opa-paths.d.ts.map +1 -0
- package/dist/lib/opa-paths.js +101 -0
- package/dist/lib/opa-paths.js.map +1 -0
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +83 -10
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/regal-cli.d.ts +16 -1
- package/dist/lib/regal-cli.d.ts.map +1 -1
- package/dist/lib/regal-cli.js +40 -6
- package/dist/lib/regal-cli.js.map +1 -1
- package/dist/lib/rego-ast-walker.d.ts +0 -6
- package/dist/lib/rego-ast-walker.d.ts.map +1 -1
- package/dist/lib/rego-ast-walker.js +181 -55
- package/dist/lib/rego-ast-walker.js.map +1 -1
- package/dist/lib/rego-counterexample.d.ts +15 -2
- package/dist/lib/rego-counterexample.d.ts.map +1 -1
- package/dist/lib/rego-counterexample.js +63 -15
- package/dist/lib/rego-counterexample.js.map +1 -1
- package/dist/lib/rego-input-path.d.ts +20 -0
- package/dist/lib/rego-input-path.d.ts.map +1 -0
- package/dist/lib/rego-input-path.js +70 -0
- package/dist/lib/rego-input-path.js.map +1 -0
- package/dist/lib/rego-ir.d.ts +34 -3
- package/dist/lib/rego-ir.d.ts.map +1 -1
- package/dist/lib/rego-smt-encoder.d.ts +88 -5
- package/dist/lib/rego-smt-encoder.d.ts.map +1 -1
- package/dist/lib/rego-smt-encoder.js +270 -31
- package/dist/lib/rego-smt-encoder.js.map +1 -1
- package/dist/lib/rego-type-inferencer.d.ts +27 -2
- package/dist/lib/rego-type-inferencer.d.ts.map +1 -1
- package/dist/lib/rego-type-inferencer.js +71 -3
- package/dist/lib/rego-type-inferencer.js.map +1 -1
- package/dist/lib/rego-verify-engine.d.ts.map +1 -1
- package/dist/lib/rego-verify-engine.js +203 -90
- package/dist/lib/rego-verify-engine.js.map +1 -1
- package/dist/lib/rego-z3.d.ts +66 -0
- package/dist/lib/rego-z3.d.ts.map +1 -1
- package/dist/lib/rego-z3.js +312 -5
- package/dist/lib/rego-z3.js.map +1 -1
- package/dist/lib/security.d.ts +8 -0
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +130 -54
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/subprocess.d.ts +13 -0
- package/dist/lib/subprocess.d.ts.map +1 -1
- package/dist/lib/subprocess.js +153 -18
- package/dist/lib/subprocess.js.map +1 -1
- package/dist/lib/tool-helpers.d.ts +12 -25
- package/dist/lib/tool-helpers.d.ts.map +1 -1
- package/dist/lib/tool-helpers.js +66 -40
- package/dist/lib/tool-helpers.js.map +1 -1
- package/dist/prompts/index.js +2 -2
- package/dist/resources/index.js +1 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/patterns.d.ts +1 -1
- package/dist/resources/patterns.d.ts.map +1 -1
- package/dist/resources/patterns.js +42 -15
- package/dist/resources/patterns.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +50 -7
- package/dist/server.js.map +1 -1
- package/dist/tools/authoring/capabilities.d.ts +4 -0
- package/dist/tools/authoring/capabilities.d.ts.map +1 -1
- package/dist/tools/authoring/capabilities.js +41 -4
- package/dist/tools/authoring/capabilities.js.map +1 -1
- package/dist/tools/authoring/check-schema.d.ts +6 -0
- package/dist/tools/authoring/check-schema.d.ts.map +1 -1
- package/dist/tools/authoring/check-schema.js +56 -3
- package/dist/tools/authoring/check-schema.js.map +1 -1
- package/dist/tools/authoring/format.d.ts.map +1 -1
- package/dist/tools/authoring/format.js +2 -2
- package/dist/tools/authoring/format.js.map +1 -1
- package/dist/tools/authoring/lint.d.ts.map +1 -1
- package/dist/tools/authoring/lint.js +8 -6
- package/dist/tools/authoring/lint.js.map +1 -1
- package/dist/tools/authoring/migrate-v1.d.ts.map +1 -1
- package/dist/tools/authoring/migrate-v1.js +20 -4
- package/dist/tools/authoring/migrate-v1.js.map +1 -1
- package/dist/tools/authoring/parse.d.ts.map +1 -1
- package/dist/tools/authoring/parse.js +3 -3
- package/dist/tools/authoring/parse.js.map +1 -1
- package/dist/tools/bundles/build.d.ts.map +1 -1
- package/dist/tools/bundles/build.js +12 -4
- package/dist/tools/bundles/build.js.map +1 -1
- package/dist/tools/bundles/sign.d.ts +9 -2
- package/dist/tools/bundles/sign.d.ts.map +1 -1
- package/dist/tools/bundles/sign.js +125 -19
- package/dist/tools/bundles/sign.js.map +1 -1
- package/dist/tools/bundles/verify.d.ts +1 -1
- package/dist/tools/bundles/verify.d.ts.map +1 -1
- package/dist/tools/bundles/verify.js +58 -19
- package/dist/tools/bundles/verify.js.map +1 -1
- package/dist/tools/conftest/index.d.ts +5 -0
- package/dist/tools/conftest/index.d.ts.map +1 -1
- package/dist/tools/conftest/index.js.map +1 -1
- package/dist/tools/conftest/pull.d.ts.map +1 -1
- package/dist/tools/conftest/pull.js +24 -10
- package/dist/tools/conftest/pull.js.map +1 -1
- package/dist/tools/conftest/push.d.ts.map +1 -1
- package/dist/tools/conftest/push.js +17 -7
- package/dist/tools/conftest/push.js.map +1 -1
- package/dist/tools/conftest/test.d.ts +10 -6
- package/dist/tools/conftest/test.d.ts.map +1 -1
- package/dist/tools/conftest/test.js +61 -39
- package/dist/tools/conftest/test.js.map +1 -1
- package/dist/tools/conftest/verify.d.ts +10 -6
- package/dist/tools/conftest/verify.d.ts.map +1 -1
- package/dist/tools/conftest/verify.js +40 -32
- package/dist/tools/conftest/verify.js.map +1 -1
- package/dist/tools/evaluation/_shared.js +9 -12
- package/dist/tools/evaluation/_shared.js.map +1 -1
- package/dist/tools/evaluation/bench.d.ts +29 -2
- package/dist/tools/evaluation/bench.d.ts.map +1 -1
- package/dist/tools/evaluation/bench.js +53 -9
- package/dist/tools/evaluation/bench.js.map +1 -1
- package/dist/tools/evaluation/compile.js +4 -4
- package/dist/tools/evaluation/compile.js.map +1 -1
- package/dist/tools/evaluation/eval.d.ts.map +1 -1
- package/dist/tools/evaluation/eval.js +12 -16
- package/dist/tools/evaluation/eval.js.map +1 -1
- package/dist/tools/evaluation/exec.d.ts +16 -0
- package/dist/tools/evaluation/exec.d.ts.map +1 -1
- package/dist/tools/evaluation/exec.js +38 -6
- package/dist/tools/evaluation/exec.js.map +1 -1
- package/dist/tools/evaluation/test-multiroot.d.ts +6 -0
- package/dist/tools/evaluation/test-multiroot.d.ts.map +1 -1
- package/dist/tools/evaluation/test-multiroot.js +35 -8
- package/dist/tools/evaluation/test-multiroot.js.map +1 -1
- package/dist/tools/evaluation/test.d.ts +45 -0
- package/dist/tools/evaluation/test.d.ts.map +1 -1
- package/dist/tools/evaluation/test.js +153 -32
- package/dist/tools/evaluation/test.js.map +1 -1
- package/dist/tools/helpers/coverage-gaps.d.ts +11 -3
- package/dist/tools/helpers/coverage-gaps.d.ts.map +1 -1
- package/dist/tools/helpers/coverage-gaps.js +7 -7
- package/dist/tools/helpers/coverage-gaps.js.map +1 -1
- package/dist/tools/helpers/describe-policy.d.ts.map +1 -1
- package/dist/tools/helpers/describe-policy.js +2 -2
- package/dist/tools/helpers/describe-policy.js.map +1 -1
- package/dist/tools/helpers/explain-decision.d.ts.map +1 -1
- package/dist/tools/helpers/explain-decision.js +3 -4
- package/dist/tools/helpers/explain-decision.js.map +1 -1
- package/dist/tools/helpers/explain-undefined.d.ts +9 -3
- package/dist/tools/helpers/explain-undefined.d.ts.map +1 -1
- package/dist/tools/helpers/explain-undefined.js +214 -73
- package/dist/tools/helpers/explain-undefined.js.map +1 -1
- package/dist/tools/helpers/fix.d.ts +11 -5
- package/dist/tools/helpers/fix.d.ts.map +1 -1
- package/dist/tools/helpers/fix.js +88 -45
- package/dist/tools/helpers/fix.js.map +1 -1
- package/dist/tools/helpers/generate-test-skeleton.d.ts.map +1 -1
- package/dist/tools/helpers/generate-test-skeleton.js +105 -21
- package/dist/tools/helpers/generate-test-skeleton.js.map +1 -1
- package/dist/tools/helpers/playground-share.d.ts +4 -2
- package/dist/tools/helpers/playground-share.d.ts.map +1 -1
- package/dist/tools/helpers/playground-share.js +13 -3
- package/dist/tools/helpers/playground-share.js.map +1 -1
- package/dist/tools/helpers/policy-diff.d.ts.map +1 -1
- package/dist/tools/helpers/policy-diff.js +3 -4
- package/dist/tools/helpers/policy-diff.js.map +1 -1
- package/dist/tools/helpers/security-audit.d.ts.map +1 -1
- package/dist/tools/helpers/security-audit.js +19 -19
- package/dist/tools/helpers/security-audit.js.map +1 -1
- package/dist/tools/helpers/verify.d.ts.map +1 -1
- package/dist/tools/helpers/verify.js +5 -1
- package/dist/tools/helpers/verify.js.map +1 -1
- package/dist/tools/meta/index.d.ts +1 -1
- package/dist/tools/server-management/_shared.d.ts +15 -4
- package/dist/tools/server-management/_shared.d.ts.map +1 -1
- package/dist/tools/server-management/_shared.js +86 -13
- package/dist/tools/server-management/_shared.js.map +1 -1
- package/dist/tools/server-management/data.d.ts.map +1 -1
- package/dist/tools/server-management/data.js +88 -23
- package/dist/tools/server-management/data.js.map +1 -1
- package/dist/tools/server-management/decisions.d.ts.map +1 -1
- package/dist/tools/server-management/decisions.js +16 -3
- package/dist/tools/server-management/decisions.js.map +1 -1
- package/dist/tools/server-management/policies.d.ts.map +1 -1
- package/dist/tools/server-management/policies.js +44 -7
- package/dist/tools/server-management/policies.js.map +1 -1
- package/dist/tools/server-management/status.d.ts.map +1 -1
- package/dist/tools/server-management/status.js +80 -13
- package/dist/tools/server-management/status.js.map +1 -1
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -21,13 +21,20 @@ const RegoPlaygroundShareInput = {
|
|
|
21
21
|
.string()
|
|
22
22
|
.optional()
|
|
23
23
|
.describe('Short description for the Gist (shown on github.com/gists).'),
|
|
24
|
+
public: z
|
|
25
|
+
.boolean()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Make the Gist public: listed on the account and searchable. Off by default, ' +
|
|
28
|
+
'which creates a secret Gist that anyone holding the link can read but that is ' +
|
|
29
|
+
'not listed anywhere.'),
|
|
24
30
|
};
|
|
25
31
|
// ─── Tool registration ────────────────────────────────────────────────────────
|
|
26
32
|
export function registerRegoPlaygroundShare(server, _config) {
|
|
27
33
|
server.registerTool('rego_playground_share', {
|
|
28
34
|
title: 'Share Rego policy as a GitHub Gist',
|
|
29
35
|
description: 'Share a Rego policy with teammates or create a reproducible example by publishing it ' +
|
|
30
|
-
'as a
|
|
36
|
+
'as a GitHub Gist, secret unless `public: true` is passed, so only people holding the ' +
|
|
37
|
+
'link can read it. Returns { gistUrl, rawPolicyUrl, id, public }: the gistUrl renders ' +
|
|
31
38
|
'the policy with syntax highlighting on github.com; the rawPolicyUrl can be passed ' +
|
|
32
39
|
'directly to OPA (`opa eval -d <rawPolicyUrl> <query>`) or used as a data source in ' +
|
|
33
40
|
'Conftest. When query, input, or data are supplied, a metadata.json file is bundled ' +
|
|
@@ -42,7 +49,7 @@ export function registerRegoPlaygroundShare(server, _config) {
|
|
|
42
49
|
idempotentHint: false,
|
|
43
50
|
openWorldHint: true,
|
|
44
51
|
},
|
|
45
|
-
}, async ({ policy, query, input, data, description }, { signal }) => {
|
|
52
|
+
}, async ({ policy, query, input, data, description, public: listed }, { signal }) => {
|
|
46
53
|
return withToolEnvelope(_config, async () => {
|
|
47
54
|
// ── Token check ────────────────────────────────────────────────────
|
|
48
55
|
const token = process.env['GITHUB_TOKEN'];
|
|
@@ -69,9 +76,11 @@ export function registerRegoPlaygroundShare(server, _config) {
|
|
|
69
76
|
if (Object.keys(metadata).length > 0) {
|
|
70
77
|
files['metadata.json'] = { content: JSON.stringify(metadata, null, 2) };
|
|
71
78
|
}
|
|
79
|
+
// Secret unless asked: a secret Gist is reachable by its link but not
|
|
80
|
+
// listed or searchable. The README always said so; the code did not.
|
|
72
81
|
const body = {
|
|
73
82
|
description: description ?? 'OPA Rego policy',
|
|
74
|
-
public: true,
|
|
83
|
+
public: listed === true,
|
|
75
84
|
files,
|
|
76
85
|
};
|
|
77
86
|
// ── POST to GitHub Gist API ────────────────────────────────────────
|
|
@@ -110,6 +119,7 @@ export function registerRegoPlaygroundShare(server, _config) {
|
|
|
110
119
|
gistUrl: gist.html_url,
|
|
111
120
|
rawPolicyUrl,
|
|
112
121
|
id: gist.id,
|
|
122
|
+
public: listed === true,
|
|
113
123
|
});
|
|
114
124
|
});
|
|
115
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground-share.js","sourceRoot":"","sources":["../../../src/tools/helpers/playground-share.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,iFAAiF;AAEjF,MAAM,wBAAwB,GAAG;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC/F,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yEAAyE;QACvE,oDAAoD,CACvD;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oFAAoF,CAAC;IACjG,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"playground-share.js","sourceRoot":"","sources":["../../../src/tools/helpers/playground-share.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-diff.d.ts","sourceRoot":"","sources":["../../../src/tools/helpers/policy-diff.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAgD9C,+DAA+D;AAC/D,KAAK,WAAW,GAAG,OAAO,CAAC;AAE3B,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,yGAAyG;IACzG,OAAO,EAAE,WAAW,CAAC;IACrB,kDAAkD;IAClD,OAAO,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAwB9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,MAAM,EAAE,CAqCtE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"policy-diff.d.ts","sourceRoot":"","sources":["../../../src/tools/helpers/policy-diff.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAgD9C,+DAA+D;AAC/D,KAAK,WAAW,GAAG,OAAO,CAAC;AAE3B,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,yGAAyG;IACzG,OAAO,EAAE,WAAW,CAAC;IACrB,kDAAkD;IAClD,OAAO,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAwB9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,MAAM,EAAE,CAqCtE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyH9E"}
|
|
@@ -132,10 +132,9 @@ export function registerRegoPolicyDiff(server, config) {
|
|
|
132
132
|
description: 'Evaluate the same query against two policies (or two versions of the same policy) and compare the results. Both evaluations run in parallel. Returns `equal: true/false`, the raw result from each side, and `changedPaths` -- the dot/bracket paths that differ. Useful for verifying that a refactor preserves behavior, or understanding exactly where two policies diverge. Each side takes either inline source (sourceA/sourceB) or a file/directory path (pathA/pathB). The same input and query are used for both evaluations.',
|
|
133
133
|
inputSchema: RegoPolicyDiffInput,
|
|
134
134
|
annotations: {
|
|
135
|
-
readOnlyHint:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
openWorldHint: false,
|
|
135
|
+
readOnlyHint: false,
|
|
136
|
+
// Runs Rego supplied by the caller; a policy can reach the network through http.send.
|
|
137
|
+
openWorldHint: true,
|
|
139
138
|
},
|
|
140
139
|
}, async ({ sourceA, pathA, sourceB, pathB, query, input, inputPath, dataPaths }, { signal }) => {
|
|
141
140
|
return withToolEnvelope(config, async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-diff.js","sourceRoot":"","sources":["../../../src/tools/helpers/policy-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElG,MAAM,mBAAmB,GAAG;IAC1B,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uGAAuG,CACxG;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uGAAuG,CACxG;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,yEAAyE,CAAC;IACtF,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,2FAA2F,CAC5F;IACH,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,mGAAmG,CACpG;CACJ,CAAC;AAqBF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAI7B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEnE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,yEAAyE;QACzE,wDAAwD;QACxD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,CAAU,EAAE,CAAU,EAAE,IAAI,GAAG,EAAE;IAC1D,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAI,IAAI,GAAG,CAAC;IAE1B,IACE,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,SAAS;QACf,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAO,CAAC,KAAK,QAAQ;QACrB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACrC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,CAA4B,CAAC;IAC1C,MAAM,IAAI,GAAG,CAA4B,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAc;IACtE,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,wgBAAwgB;QAC1gB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"policy-diff.js","sourceRoot":"","sources":["../../../src/tools/helpers/policy-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-audit.d.ts","sourceRoot":"","sources":["../../../src/tools/helpers/security-audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security-audit.d.ts","sourceRoot":"","sources":["../../../src/tools/helpers/security-audit.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAgD9C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AA6BD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyFjF"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `rego_security_audit` -- run regal lint filtered to the
|
|
3
|
-
*
|
|
2
|
+
* `rego_security_audit` -- run regal lint filtered to the `bugs` category,
|
|
3
|
+
* plus any custom rules in a `security` category, and return a
|
|
4
|
+
* severity-grouped finding report.
|
|
4
5
|
*
|
|
5
|
-
* This is a focused slice of `rego_lint
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* This is a focused slice of `rego_lint`. regal ships no security category
|
|
7
|
+
* of its own: its `bugs` rules are the correctness defects most likely to
|
|
8
|
+
* open a policy up, and a `security` category stays enabled as the place a
|
|
9
|
+
* project's custom rules can go. The result groups findings by severity
|
|
10
|
+
* with remediation guidance so the agent can prioritize fixes without
|
|
11
|
+
* wading through style and formatting noise.
|
|
9
12
|
*
|
|
10
13
|
* Requires regal. Returns REGAL_NOT_FOUND if the binary is absent.
|
|
11
14
|
*/
|
|
@@ -28,19 +31,15 @@ const RegoSecurityAuditInput = {
|
|
|
28
31
|
* Remediation hints keyed by Regal rule title. The values give a
|
|
29
32
|
* specific, actionable fix rather than repeating the violation message.
|
|
30
33
|
*/
|
|
34
|
+
// Hints for the rules the sweep can report: regal's bugs category. Keys for
|
|
35
|
+
// rules regal does not ship, or ships in categories the sweep does not
|
|
36
|
+
// enable, were removed rather than left to suggest the sweep knew about them.
|
|
31
37
|
const REMEDIATION_HINTS = {
|
|
32
|
-
'credentials-in-body': 'Remove credentials from the HTTP request body literal. Use OPA environment variables or a data bundle to inject secrets at runtime.',
|
|
33
|
-
'http-send-using-http': 'Replace the http:// URL with https:// to prevent credentials or tokens from being transmitted in plaintext.',
|
|
34
|
-
'jwt-credentials-in-source': 'Move JWT tokens and signing keys out of policy source into data bundles or OPA environment variables.',
|
|
35
|
-
'no-defined-entrypoint': 'Add an @entrypoint annotation to the rule that serves as the policy decision point so automated analysis can identify the entry.',
|
|
36
38
|
'constant-condition': 'The condition is always true or always false; remove it or fix the logic so the rule body reflects a real runtime check.',
|
|
37
39
|
'deprecated-builtin': 'Replace the deprecated builtin with its current equivalent before upgrading OPA, where deprecated functions may be removed.',
|
|
38
40
|
'duplicate-rule': 'Remove the duplicate rule definition. Multiple conflicting definitions cause non-deterministic evaluation and can mask security gaps.',
|
|
39
|
-
'impossible-if': 'The rule condition can never be satisfied; it will never contribute to the decision. Review the logic for a typo or inverted condition.',
|
|
40
41
|
'impossible-not': 'The negation is of a condition that is always false, so not(...) is always true. Review whether the rule is overly permissive.',
|
|
41
42
|
'inconsistent-args': 'The function is called with a different number of arguments than its definition. The extra or missing argument silently makes the call undefined.',
|
|
42
|
-
'unresolved-import': 'The import path does not match any package in the bundle. Remove or fix the import to ensure the policy loads correctly.',
|
|
43
|
-
'unreachable-rule': 'The rule can never be evaluated given the existing rules. It may represent dead code that masks a missing test case.',
|
|
44
43
|
'rule-shadows-builtin': 'Rename the local variable to avoid shadowing the OPA builtin. Shadowed builtins silently change semantics.',
|
|
45
44
|
'sprintf-arguments-mismatch': 'The sprintf format string and the number of arguments do not match. This produces undefined output at runtime.',
|
|
46
45
|
};
|
|
@@ -49,13 +48,12 @@ export function registerRegoSecurityAudit(server, config) {
|
|
|
49
48
|
const regal = new RegalCli(config);
|
|
50
49
|
server.registerTool('rego_security_audit', {
|
|
51
50
|
title: 'Rego security audit',
|
|
52
|
-
description: 'Run regal lint restricted to the
|
|
51
|
+
description: 'Run regal lint restricted to its `bugs` category, the correctness rules whose defects most often turn into policy bypasses, plus any custom rules placed in a `security` category, across one or more policy directories. Returns findings grouped by severity (high/medium) with remediation guidance. Use this for a periodic fleet-wide sweep rather than per-file style review. Requires regal.',
|
|
53
52
|
inputSchema: RegoSecurityAuditInput,
|
|
54
53
|
annotations: {
|
|
55
|
-
readOnlyHint:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
openWorldHint: false,
|
|
54
|
+
readOnlyHint: false,
|
|
55
|
+
// Runs a project's custom Regal rules, which are Rego with the network built-ins.
|
|
56
|
+
openWorldHint: true,
|
|
59
57
|
},
|
|
60
58
|
}, async ({ paths, configFile, ignoreFiles }, { signal }) => {
|
|
61
59
|
return withToolEnvelope(config, async () => {
|
|
@@ -73,7 +71,9 @@ export function registerRegoSecurityAudit(server, config) {
|
|
|
73
71
|
paths: validation.resolved,
|
|
74
72
|
configFile: resolvedConfigFile,
|
|
75
73
|
ignoreFiles,
|
|
76
|
-
// Start from zero rules and enable
|
|
74
|
+
// Start from zero rules and enable regal's bugs category, plus a
|
|
75
|
+
// security category that regal does not ship but a project's
|
|
76
|
+
// custom rules may populate.
|
|
77
77
|
disableAll: true,
|
|
78
78
|
enableCategory: ['security', 'bugs'],
|
|
79
79
|
// Fail on errors only; warnings are still surfaced in JSON.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-audit.js","sourceRoot":"","sources":["../../../src/tools/helpers/security-audit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"security-audit.js","sourceRoot":"","sources":["../../../src/tools/helpers/security-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/tools/helpers/verify.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAqB9C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/tools/helpers/verify.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAqB9C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoE1E"}
|
|
@@ -31,7 +31,11 @@ export function registerRegoVerify(server, config) {
|
|
|
31
31
|
'Supports equality, comparison, startswith, endswith, contains, and simple regex.match patterns ' +
|
|
32
32
|
'(prefix: ^lit.*, suffix: .*lit$, exact: ^lit$, contains: .*lit.*, wildcard: .*). ' +
|
|
33
33
|
'Complex regex patterns (character classes, quantifiers, alternation) return INCONCLUSIVE. ' +
|
|
34
|
-
'Also reports INCONCLUSIVE for negation-as-failure (not), comprehensions,
|
|
34
|
+
'Also reports INCONCLUSIVE for negation-as-failure (not), comprehensions, partial set and ' +
|
|
35
|
+
'object rules (deny contains msg), functions, else chains, and any operand it cannot encode. ' +
|
|
36
|
+
'A body that reads an absent field is undefined rather than true, so always_true holds only ' +
|
|
37
|
+
'if the rule is also true for an empty input: a rule requiring input.x will be answered with ' +
|
|
38
|
+
'the counterexample {}.',
|
|
35
39
|
inputSchema: RegoVerifyInput,
|
|
36
40
|
annotations: {
|
|
37
41
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/tools/helpers/verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAG/E,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACtF,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;SAClD,QAAQ,CACP,sBAAsB;QACpB,2FAA2F;QAC3F,oFAAoF;QACpF,mFAAmF,CACtF;CACJ,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAc;IAClE,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EACT,iFAAiF;YACjF,0FAA0F;YAC1F,6DAA6D;YAC7D,iGAAiG;YACjG,mFAAmF;YACnF,4FAA4F;YAC5F,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/tools/helpers/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import type { ToolEnvelope, ToolErrorCode } from '../../types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* The data root. OPA answers `PATCH /v1/data` but redirects `/v1/data/`, so the
|
|
4
|
+
* root has no trailing slash while every deeper path is built by joining onto
|
|
5
|
+
* `${OPA_DATA_ROOT}/`.
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
7
|
+
export declare const OPA_DATA_ROOT = "/v1/data";
|
|
8
|
+
/**
|
|
9
|
+
* Convert a user-supplied OPA data path to the `/v1/data/...` REST API path.
|
|
10
|
+
*
|
|
11
|
+
* Accepts the dotted or slash string form, or an array whose elements are
|
|
12
|
+
* literal keys. Every segment is percent-encoded, which OPA decodes, so a key
|
|
13
|
+
* may hold a dot, a slash, a question mark or any non-ASCII character. Rejects
|
|
14
|
+
* `.` and `..` segments so a crafted input cannot traverse to unrelated OPA
|
|
15
|
+
* endpoints such as `/v1/config`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseOpaDataPath(path: string | readonly string[]): {
|
|
8
18
|
ok: true;
|
|
9
19
|
apiPath: string;
|
|
20
|
+
segments: string[];
|
|
10
21
|
} | {
|
|
11
22
|
ok: false;
|
|
12
23
|
error: ToolEnvelope<never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../src/tools/server-management/_shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../src/tools/server-management/_shared.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgClE;;;;GAIG;AACH,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;CAAE,CAuC/F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,OAAO,EACV,YAAY,GAAE,aAA+B,GAC5C,YAAY,CAAC,KAAK,CAAC,CA4CrB"}
|
|
@@ -5,26 +5,87 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { err } from '../../lib/errors.js';
|
|
7
7
|
import { logger } from '../../lib/logger.js';
|
|
8
|
-
import { OpaAuthError, OpaCancelledError, OpaHttpError, OpaUnreachableError, } from '../../lib/opa-client.js';
|
|
8
|
+
import { OpaAuthError, OpaCancelledError, OpaHttpError, OpaTimeoutError, OpaUnreachableError, OpaUrlCredentialsError, } from '../../lib/opa-client.js';
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Split a user-supplied OPA data path into its key segments.
|
|
11
|
+
*
|
|
12
|
+
* A path arrives either dotted (`users.alice`, the Rego spelling) or slashed
|
|
13
|
+
* (`users/alice`, the REST spelling). Data keys are free to contain the other
|
|
14
|
+
* separator: hostnames, image references and semver strings carry dots, so
|
|
15
|
+
* treating both characters as separators addressed a document that was not the
|
|
16
|
+
* one asked for. A slash anywhere therefore makes the slash the only separator,
|
|
17
|
+
* and a path with no slash is read as dotted.
|
|
18
|
+
*
|
|
19
|
+
* A key holding both characters, such as a Kubernetes label key, cannot be
|
|
20
|
+
* written either way. Callers pass an array of literal segments for that.
|
|
21
|
+
*/
|
|
22
|
+
function decodeSegment(segment) {
|
|
23
|
+
try {
|
|
24
|
+
return decodeURIComponent(segment);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// A stray `%` is a literal character in a key, not an escape.
|
|
28
|
+
return segment;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function splitDataPath(path) {
|
|
32
|
+
const trimmed = path.trim().replace(/^[/]+/, '').replace(/[/]+$/, '');
|
|
33
|
+
// Drop a leading `data.` or `data/` root, but not a key named `database`.
|
|
34
|
+
const withoutRoot = trimmed.replace(/^data(?=$|[./])[./]?/, '');
|
|
35
|
+
if (withoutRoot.length === 0)
|
|
36
|
+
return [];
|
|
37
|
+
return withoutRoot.includes('/') ? withoutRoot.split('/') : withoutRoot.split('.');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The data root. OPA answers `PATCH /v1/data` but redirects `/v1/data/`, so the
|
|
41
|
+
* root has no trailing slash while every deeper path is built by joining onto
|
|
42
|
+
* `${OPA_DATA_ROOT}/`.
|
|
43
|
+
*/
|
|
44
|
+
export const OPA_DATA_ROOT = '/v1/data';
|
|
45
|
+
/**
|
|
46
|
+
* Convert a user-supplied OPA data path to the `/v1/data/...` REST API path.
|
|
47
|
+
*
|
|
48
|
+
* Accepts the dotted or slash string form, or an array whose elements are
|
|
49
|
+
* literal keys. Every segment is percent-encoded, which OPA decodes, so a key
|
|
50
|
+
* may hold a dot, a slash, a question mark or any non-ASCII character. Rejects
|
|
51
|
+
* `.` and `..` segments so a crafted input cannot traverse to unrelated OPA
|
|
52
|
+
* endpoints such as `/v1/config`.
|
|
13
53
|
*/
|
|
14
54
|
export function parseOpaDataPath(path) {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
// percent-encoded variants (%2e%2e). If the resolved pathname no longer
|
|
19
|
-
// starts with /v1/data/, a traversal escaped the intended prefix.
|
|
20
|
-
const normalized = new URL(`http://h${apiPath}`).pathname;
|
|
21
|
-
if (!normalized.startsWith('/v1/data/')) {
|
|
55
|
+
const segments = typeof path === 'string' ? splitDataPath(path) : [...path];
|
|
56
|
+
const shown = typeof path === 'string' ? path : JSON.stringify(path);
|
|
57
|
+
if (segments.length === 0) {
|
|
22
58
|
return {
|
|
23
59
|
ok: false,
|
|
24
|
-
error: err('INVALID_INPUT', `
|
|
60
|
+
error: err('INVALID_INPUT', `Data path must name at least one segment: ${shown}`, {
|
|
61
|
+
hint: 'The root of the data hierarchy is not addressable here. Supply a path such as "users" or "users/alice".',
|
|
62
|
+
}),
|
|
25
63
|
};
|
|
26
64
|
}
|
|
27
|
-
|
|
65
|
+
for (const segment of segments) {
|
|
66
|
+
if (segment.length === 0) {
|
|
67
|
+
return {
|
|
68
|
+
ok: false,
|
|
69
|
+
error: err('INVALID_INPUT', `Data path has an empty segment: ${shown}`, {
|
|
70
|
+
hint: 'Remove the repeated separator, or pass `segments` if a key is genuinely empty.',
|
|
71
|
+
}),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Encoding below already stops `%2e%2e` reaching the wire as a traversal,
|
|
75
|
+
// but a caller writing one means to traverse, so say no rather than look up
|
|
76
|
+
// a key of that literal name.
|
|
77
|
+
const decoded = decodeSegment(segment);
|
|
78
|
+
if (decoded === '.' || decoded === '..') {
|
|
79
|
+
return { ok: false, error: err('INVALID_INPUT', `Path traversal not allowed: ${shown}`) };
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const apiPath = `${OPA_DATA_ROOT}/${segments.map(encodeURIComponent).join('/')}`;
|
|
83
|
+
// Backstop. Encoding already neutralises `%2e%2e` and friends, but a resolved
|
|
84
|
+
// path outside the data prefix must never reach the server.
|
|
85
|
+
if (!new URL(`http://h${apiPath}`).pathname.startsWith(`${OPA_DATA_ROOT}/`)) {
|
|
86
|
+
return { ok: false, error: err('INVALID_INPUT', `Path traversal not allowed: ${shown}`) };
|
|
87
|
+
}
|
|
88
|
+
return { ok: true, apiPath, segments };
|
|
28
89
|
}
|
|
29
90
|
/**
|
|
30
91
|
* Translate an exception thrown by OpaClient into a structured error
|
|
@@ -36,6 +97,18 @@ export function mapOpaClientError(e, notFoundCode = 'UNKNOWN_ERROR') {
|
|
|
36
97
|
if (e instanceof OpaCancelledError) {
|
|
37
98
|
return err('CANCELLED', 'OPA request was cancelled by the client.');
|
|
38
99
|
}
|
|
100
|
+
if (e instanceof OpaUrlCredentialsError) {
|
|
101
|
+
return err('OPA_URL_INVALID', e.message + '.', {
|
|
102
|
+
hint: 'Remove the username and password from OPA_URL and pass the bearer token through OPA_TOKEN instead.',
|
|
103
|
+
details: { url: e.url },
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (e instanceof OpaTimeoutError) {
|
|
107
|
+
return err('TIMEOUT', `OPA at ${e.url} did not answer within ${e.timeoutMs} ms.`, {
|
|
108
|
+
hint: 'Either OPA is up but slow, or nothing is answering at OPA_URL and the connection attempt is being dropped rather than refused, which looks the same from here. Check OPA_URL and the server load, or raise OPA_MCP_HTTP_TIMEOUT_MS.',
|
|
109
|
+
details: { url: e.url, timeoutMs: e.timeoutMs },
|
|
110
|
+
});
|
|
111
|
+
}
|
|
39
112
|
if (e instanceof OpaUnreachableError) {
|
|
40
113
|
return err('OPA_UNREACHABLE', `OPA server unreachable at ${e.url}`, {
|
|
41
114
|
hint: 'No running OPA server was found at OPA_URL. To start one locally: `opa run --server`. For production, OPA is typically deployed as a sidecar or standalone service. Verify the address with `curl $OPA_URL/health`. Set OPA_URL to the correct base URL if needed.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../src/tools/server-management/_shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../src/tools/server-management/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/tools/server-management/data.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAO9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/tools/server-management/data.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAO9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiPzE"}
|