@orygn/opa-mcp 0.1.9 → 0.1.11

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +69 -1
  2. package/README.md +55 -10
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +1 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +4 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +4 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/constants.d.ts +1 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +1 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/lib/conftest-cli.d.ts +144 -0
  15. package/dist/lib/conftest-cli.d.ts.map +1 -0
  16. package/dist/lib/conftest-cli.js +224 -0
  17. package/dist/lib/conftest-cli.js.map +1 -0
  18. package/dist/lib/tool-helpers.d.ts +1 -1
  19. package/dist/lib/tool-helpers.d.ts.map +1 -1
  20. package/dist/lib/tool-helpers.js +8 -2
  21. package/dist/lib/tool-helpers.js.map +1 -1
  22. package/dist/server.d.ts.map +1 -1
  23. package/dist/server.js +14 -2
  24. package/dist/server.js.map +1 -1
  25. package/dist/tools/authoring/check-schema.d.ts +20 -0
  26. package/dist/tools/authoring/check-schema.d.ts.map +1 -0
  27. package/dist/tools/authoring/check-schema.js +140 -0
  28. package/dist/tools/authoring/check-schema.js.map +1 -0
  29. package/dist/tools/authoring/index.d.ts.map +1 -1
  30. package/dist/tools/authoring/index.js +2 -0
  31. package/dist/tools/authoring/index.js.map +1 -1
  32. package/dist/tools/conftest/index.d.ts +4 -0
  33. package/dist/tools/conftest/index.d.ts.map +1 -0
  34. package/dist/tools/conftest/index.js +11 -0
  35. package/dist/tools/conftest/index.js.map +1 -0
  36. package/dist/tools/conftest/pull.d.ts +10 -0
  37. package/dist/tools/conftest/pull.d.ts.map +1 -0
  38. package/dist/tools/conftest/pull.js +83 -0
  39. package/dist/tools/conftest/pull.js.map +1 -0
  40. package/dist/tools/conftest/push.d.ts +10 -0
  41. package/dist/tools/conftest/push.d.ts.map +1 -0
  42. package/dist/tools/conftest/push.js +76 -0
  43. package/dist/tools/conftest/push.js.map +1 -0
  44. package/dist/tools/conftest/test.d.ts +21 -0
  45. package/dist/tools/conftest/test.d.ts.map +1 -0
  46. package/dist/tools/conftest/test.js +186 -0
  47. package/dist/tools/conftest/test.js.map +1 -0
  48. package/dist/tools/conftest/verify.d.ts +21 -0
  49. package/dist/tools/conftest/verify.d.ts.map +1 -0
  50. package/dist/tools/conftest/verify.js +112 -0
  51. package/dist/tools/conftest/verify.js.map +1 -0
  52. package/dist/tools/index.d.ts +13 -10
  53. package/dist/tools/index.d.ts.map +1 -1
  54. package/dist/tools/index.js +2 -0
  55. package/dist/tools/index.js.map +1 -1
  56. package/dist/types.d.ts +1 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -17,6 +17,72 @@ not part of the public surface and may change in minor releases.
17
17
 
18
18
  ## [Unreleased]
19
19
 
20
+ ## [0.1.11] - 2026-05-24
21
+
22
+ ### Added
23
+
24
+ - **`rego_check_schema` (48 tools total)** -- new authoring tool that runs
25
+ `opa check --schema` to validate that every `input.*` field reference in a
26
+ Rego policy exists in the provided JSON Schema. Schema violations surface as
27
+ `rego_type_error` diagnostics with file/line locations. Accepts the schema
28
+ inline (`inlineSchema` -- pass the `schema` output of `rego_infer_input_schema`
29
+ directly) or as a path to a JSON Schema file on disk (`schemaPath`). Closes the
30
+ infer-then-validate loop: use `rego_infer_input_schema` to derive the schema
31
+ from an existing policy, then validate a new or modified policy against it
32
+ without leaving the MCP session. Supports `strict` mode and all standard
33
+ path-validation and subprocess error handling.
34
+
35
+ ## [0.1.10] - 2026-05-22
36
+
37
+ ### Added
38
+
39
+ - **Conftest integration (4 new tools, 47 total)** -- adds `conftest_test`,
40
+ `conftest_verify`, `conftest_pull`, and `conftest_push`, wrapping the
41
+ [conftest](https://www.conftest.dev/) CLI for policy testing of Kubernetes,
42
+ Terraform, Helm, Dockerfile, and other configuration formats. Conftest is
43
+ optional; all existing tools continue to work without it installed.
44
+
45
+ - **`conftest_test`** -- runs `conftest test` against one or more configuration
46
+ files and returns structured JSON pass/fail/warn results per namespace. Supports
47
+ inline configuration (written to a secure temp file, path redacted from output)
48
+ and inline Rego policy (written to a secure temp dir), multiple data directories,
49
+ namespace targeting, `--all-namespaces`, `--combine`, and `--fail-on-warn`.
50
+
51
+ - **`conftest_verify`** -- runs `conftest verify` to execute `_test.rego` unit
52
+ tests inside a policy directory, verifying that the policies themselves are
53
+ correct. Returns structured JSON output.
54
+
55
+ - **`conftest_pull`** -- pulls a policy bundle from a remote OCI or Git registry
56
+ into a local directory (`oci://registry/repo:tag` form).
57
+
58
+ - **`conftest_push`** -- pushes a local policy bundle to a remote OCI registry,
59
+ using host-environment credentials (docker login / ORAS).
60
+
61
+ - **`CONFTEST_NOT_FOUND` error code** -- returned by all four conftest tools when
62
+ the binary is absent, with a structured install hint. Consistent with the
63
+ existing `OPA_BINARY_NOT_FOUND` and `REGAL_NOT_FOUND` pattern.
64
+
65
+ - **`CONFTEST_BINARY` environment variable** -- configures the path to the conftest
66
+ binary. Defaults to `conftest` on PATH.
67
+
68
+ ### Security
69
+
70
+ - Temp files for inline config and inline policy are now created via `mkdtemp`
71
+ (atomically, with `O_CREAT|O_EXCL` semantics at the OS level) rather than
72
+ constructing a path from `os.tmpdir()` and a UUID. This eliminates the TOCTOU
73
+ race window flagged by CodeQL CWE-377.
74
+
75
+ ### Internal
76
+
77
+ - `src/lib/conftest-cli.ts`: `ConftestCli` class with `withTempAssets()` temp
78
+ file lifecycle management and `sanitizeOutput()` for redacting internal paths
79
+ from conftest JSON output. Path redaction uses `JSON.stringify` encoding to
80
+ correctly handle backslashes in Windows paths embedded in JSON output.
81
+ - Exit-code semantics: 0 and 1 both produce valid JSON (pass/fail respectively);
82
+ exit 2+ is a command error surfaced as `UNKNOWN_ERROR`.
83
+ - Tests: 57 tool-layer unit tests, 46 CLI unit tests, 12 real-binary integration
84
+ tests (auto-skipped when conftest is not on PATH).
85
+
20
86
  ## [0.1.9] - 2026-05-21
21
87
 
22
88
  ### Added
@@ -557,7 +623,9 @@ wrappers end-to-end. CI matrix: Ubuntu, macOS, and Windows on Node
557
623
  20 and 22, plus CodeQL security scanning and weekly Dependabot updates
558
624
  for npm, GitHub Actions, and Docker base images.
559
625
 
560
- [Unreleased]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.9...HEAD
626
+ [Unreleased]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.11...HEAD
627
+ [0.1.11]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.10...v0.1.11
628
+ [0.1.10]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.9...v0.1.10
561
629
  [0.1.9]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.8...v0.1.9
562
630
  [0.1.8]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.7...v0.1.8
563
631
  [0.1.7]: https://github.com/OrygnsCode/opa-mcp-server/compare/v0.1.6...v0.1.7
package/README.md CHANGED
@@ -15,13 +15,13 @@ VS Code, Windsurf, Zed, and others) into a first-class
15
15
  environment.
16
16
 
17
17
  ```
18
- +--------------------+ MCP / stdio +-----------------+ spawn / HTTP +------------------+
19
- | Claude · Cursor · | ------------> | @orygn/opa-mcp | -------------> | opa · regal · |
20
- | VS Code · ... | <------------ | | <------------- | OPA REST API |
21
- +--------------------+ 43 tools +-----------------+ +------------------+
18
+ +--------------------+ MCP / stdio +-----------------+ spawn / HTTP +------------------------+
19
+ | Claude · Cursor · | ------------> | @orygn/opa-mcp | -------------> | opa · regal · conftest |
20
+ | VS Code · ... | <------------ | | <------------- | OPA REST API |
21
+ +--------------------+ 48 tools +-----------------+ +------------------------+
22
22
  ```
23
23
 
24
- > **Status:** v0.1.8. Tool surface, error codes, and
24
+ > **Status:** v0.1.11. Tool surface, error codes, and
25
25
  > environment variables follow [SemVer](https://semver.org/) from
26
26
  > v0.1.0 forward.
27
27
 
@@ -241,6 +241,7 @@ variable is optional; defaults are sensible for a local OPA on
241
241
  | `OPA_TOKEN` | _(unset)_ | Bearer token for OPA, if your instance requires auth. Treated as a secret. Never echoed in logs or tool responses. |
242
242
  | `OPA_BINARY` | `opa` (on `PATH`) | Path to the `opa` CLI, used by `rego_*` tools. |
243
243
  | `REGAL_BINARY` | `regal` (on `PATH`) | Path to the `regal` linter. Only required by `rego_lint`. |
244
+ | `CONFTEST_BINARY` | `conftest` (on `PATH`) | Path to the `conftest` binary. Only required by `conftest_*` tools. Returns `CONFTEST_NOT_FOUND` if absent. |
244
245
  | `OPA_MCP_ALLOWED_PATHS` | _(unset)_ | Comma- or semicolon-separated list of directories the server is allowed to read policies from. **When unset, file-based tools refuse to read from disk.** |
245
246
  | `OPA_MCP_LOG_FILE` | `<tmpdir>/orygn-opa-mcp.log` | Path the server appends logs to. The server never writes to stdout; that channel is reserved for the MCP protocol. |
246
247
  | `OPA_MCP_LOG_LEVEL` | `info` | One of `debug`, `info`, `warn`, `error`. |
@@ -412,11 +413,55 @@ the tasks agents are actually asked to do.
412
413
  | `rego_format_write` | Run `opa fmt --write` to canonically format one or more Rego files or directories in place. Use `dryRun: true` to list which files would change without modifying them. Validates all files parse successfully before writing any. Supports `regoV1`, `v0Compatible`, and `v1Compatible` flags. Only requires `opa`. |
413
414
  | `rego_policy_diff` | Evaluate the same query against two policies in parallel and compare the results. Returns `equal: true/false`, the raw value from each side (`resultA`/`resultB`), and `changedPaths` -- dot/bracket JSON paths that differ. Each side takes inline source or a file/directory path. Useful for verifying refactor equivalence or mapping divergence between two policy versions. |
414
415
 
415
- ### Category F: Meta
416
+ ### Category F: Conftest (configuration policy testing)
416
417
 
417
- | Tool | What it does |
418
- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
419
- | `mcp_server_info` | Return server name, version, resolved `opa`/`regal` versions, transport type, and Node.js version in one call. Useful for verifying which server instance the agent is connected to. |
418
+ Test Kubernetes manifests, Terraform plans, Dockerfiles, Helm charts, and any
419
+ YAML/JSON/HCL/TOML/INI against Rego policies using
420
+ [conftest](https://www.conftest.dev/). Requires `conftest` on `PATH` or
421
+ `CONFTEST_BINARY` set; all four tools return `CONFTEST_NOT_FOUND` otherwise.
422
+
423
+ | Tool | What it does |
424
+ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
425
+ | `conftest_test` | Evaluate configuration files against policies with `conftest test`. Accepts file paths or `inlineConfig` (inline YAML/JSON/HCL/etc) and `policy` path or `inlinePolicy` source. Returns per-file pass/fail/warn results and a summary. |
426
+ | `conftest_verify` | Run `test_*` rules inside `*_test.rego` files to verify the policies themselves are correct. Equivalent to `opa test` but using conftest's policy-loading machinery. |
427
+ | `conftest_pull` | Pull a policy bundle from an OCI registry or Git repo into a local directory with `conftest pull`. The target directory need not exist; conftest creates it. |
428
+ | `conftest_push` | Package a local policy directory as an OCI artifact and push to a registry with `conftest push`. Registry credentials come from the host environment (`docker login`, ORAS keychain, etc.) -- credentials are never passed through tools. |
429
+
430
+ #### Featured: `conftest_test` with inline config
431
+
432
+ ```jsonc
433
+ // Input
434
+ {
435
+ "inlineConfig": "apiVersion: v1\nkind: Pod\nspec:\n containers:\n - name: app\n image: nginx:latest",
436
+ "inlinePolicy": "package main\ndeny[msg] { input.spec.containers[_].image == \"nginx:latest\"; msg := \"pin your image tag\" }"
437
+ }
438
+
439
+ // Output
440
+ {
441
+ "ok": true,
442
+ "data": {
443
+ "passed": false,
444
+ "results": [
445
+ {
446
+ "filename": "<inline>",
447
+ "namespace": "main",
448
+ "successes": 0,
449
+ "failures": [{ "msg": "pin your image tag" }],
450
+ "warnings": [],
451
+ "skipped": [],
452
+ "exceptions": []
453
+ }
454
+ ],
455
+ "summary": { "passed": 0, "failed": 1, "warnings": 0, "skipped": 0 }
456
+ }
457
+ }
458
+ ```
459
+
460
+ ### Category G: Meta
461
+
462
+ | Tool | What it does |
463
+ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
464
+ | `mcp_server_info` | Return server name, version, resolved `opa`/`regal`/`conftest` versions, transport type, and Node.js version in one call. Useful for verifying which server instance the agent is connected to. |
420
465
 
421
466
  ## Prompts
422
467
 
@@ -662,7 +707,7 @@ Dependabot or a manual PR.
662
707
 
663
708
  ## License
664
709
 
665
- [MIT](./LICENSE) © Orygn LLC
710
+ [MIT](./LICENSE) © [Orygn LLC](https://orygn.tech)
666
711
 
667
712
  `@orygn/opa-mcp` is an independent project. It is not affiliated with,
668
713
  endorsed by, or sponsored by the Open Policy Agent project, the Cloud
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiC1C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAgD/C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBxE;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAMA"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiC1C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiD/C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAgBxE;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAMA"}
package/dist/cli.js CHANGED
@@ -30,6 +30,7 @@ export function formatHelp(col) {
30
30
  const rows = [
31
31
  ['OPA_BINARY', 'opa binary path', 'opa'],
32
32
  ['REGAL_BINARY', 'regal binary path', 'regal'],
33
+ ['CONFTEST_BINARY', 'conftest binary path', 'conftest'],
33
34
  ['OPA_URL', 'OPA server base URL', 'http://localhost:8181'],
34
35
  ['OPA_TOKEN', 'OPA authentication token', ''],
35
36
  ['OPA_MCP_ALLOWED_PATHS', 'allowed filesystem roots, comma or semicolon separated', ''],
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -8,6 +8,8 @@ declare const ConfigSchema: z.ZodObject<{
8
8
  opaBinary: z.ZodDefault<z.ZodString>;
9
9
  /** Path to the `regal` binary. Defaults to `regal` on PATH. */
10
10
  regalBinary: z.ZodDefault<z.ZodString>;
11
+ /** Path to the `conftest` binary. Defaults to `conftest` on PATH. */
12
+ conftestBinary: z.ZodDefault<z.ZodString>;
11
13
  /** Hard timeout in ms for any spawned subprocess (opa, regal). */
12
14
  subprocessTimeoutMs: z.ZodDefault<z.ZodNumber>;
13
15
  /** HTTP request timeout for OPA REST API calls. */
@@ -33,6 +35,7 @@ declare const ConfigSchema: z.ZodObject<{
33
35
  opaUrl: string;
34
36
  opaBinary: string;
35
37
  regalBinary: string;
38
+ conftestBinary: string;
36
39
  subprocessTimeoutMs: number;
37
40
  httpTimeoutMs: number;
38
41
  allowedPaths: string[];
@@ -45,6 +48,7 @@ declare const ConfigSchema: z.ZodObject<{
45
48
  opaToken?: string | undefined;
46
49
  opaBinary?: string | undefined;
47
50
  regalBinary?: string | undefined;
51
+ conftestBinary?: string | undefined;
48
52
  subprocessTimeoutMs?: number | undefined;
49
53
  httpTimeoutMs?: number | undefined;
50
54
  allowedPaths?: string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,YAAY;IAChB,wEAAwE;;IAGxE,2EAA2E;;IAG3E,2DAA2D;;IAG3D,+DAA+D;;IAG/D,kEAAkE;;IAGlE,mDAAmD;;IAGnD;;;;;OAKG;;IAGH,uEAAuE;;IAGvE,qCAAqC;;IAGrC;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAwBlD,wBAAgB,UAAU,IAAI,MAAM,CA+BnC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,YAAY;IAChB,wEAAwE;;IAGxE,2EAA2E;;IAG3E,2DAA2D;;IAG3D,+DAA+D;;IAG/D,qEAAqE;;IAGrE,kEAAkE;;IAGlE,mDAAmD;;IAGnD;;;;;OAKG;;IAGH,uEAAuE;;IAGvE,qCAAqC;;IAGrC;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAyBlD,wBAAgB,UAAU,IAAI,MAAM,CAgCnC"}
package/dist/config.js CHANGED
@@ -17,6 +17,8 @@ const ConfigSchema = z.object({
17
17
  opaBinary: z.string().default('opa'),
18
18
  /** Path to the `regal` binary. Defaults to `regal` on PATH. */
19
19
  regalBinary: z.string().default('regal'),
20
+ /** Path to the `conftest` binary. Defaults to `conftest` on PATH. */
21
+ conftestBinary: z.string().default('conftest'),
20
22
  /** Hard timeout in ms for any spawned subprocess (opa, regal). */
21
23
  subprocessTimeoutMs: z.coerce.number().int().positive().default(30_000),
22
24
  /** HTTP request timeout for OPA REST API calls. */
@@ -53,6 +55,7 @@ const ENV_VAR_NAMES = {
53
55
  opaToken: 'OPA_TOKEN',
54
56
  opaBinary: 'OPA_BINARY',
55
57
  regalBinary: 'REGAL_BINARY',
58
+ conftestBinary: 'CONFTEST_BINARY',
56
59
  subprocessTimeoutMs: 'OPA_MCP_TIMEOUT_MS',
57
60
  httpTimeoutMs: 'OPA_MCP_HTTP_TIMEOUT_MS',
58
61
  allowedPaths: 'OPA_MCP_ALLOWED_PATHS',
@@ -67,6 +70,7 @@ export function loadConfig() {
67
70
  opaToken: process.env['OPA_TOKEN'],
68
71
  opaBinary: process.env['OPA_BINARY'],
69
72
  regalBinary: process.env['REGAL_BINARY'],
73
+ conftestBinary: process.env['CONFTEST_BINARY'],
70
74
  subprocessTimeoutMs: process.env['OPA_MCP_TIMEOUT_MS'],
71
75
  httpTimeoutMs: process.env['OPA_MCP_HTTP_TIMEOUT_MS'],
72
76
  allowedPaths,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,wEAAwE;IACxE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAEzD,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/B,2DAA2D;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpC,+DAA+D;IAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAExC,kEAAkE;IAClE,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAEvE,mDAAmD;IACnD,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAEjE;;;;;OAKG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAE7C,uEAAuE;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAEhE,qCAAqC;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAEpE;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;CACtE,CAAC,CAAC;AAIH,SAAS,iBAAiB,CAAC,GAAuB;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG;SACd,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,cAAc;IAC3B,mBAAmB,EAAE,oBAAoB;IACzC,aAAa,EAAE,yBAAyB;IACxC,YAAY,EAAE,uBAAuB;IACrC,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,mBAAmB;IAC7B,gBAAgB,EAAE,4BAA4B;CAC/C,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACpC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACxC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACtD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACrD,YAAY;QACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC1C,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;KAC5D,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,aAAa;gBACjD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;gBACtB,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@
4
4
  * (server.ts -> tools -> meta -> server.ts).
5
5
  */
6
6
  export declare const SERVER_NAME = "orygn-opa-mcp";
7
- export declare const SERVER_VERSION = "0.1.9";
7
+ export declare const SERVER_VERSION = "0.1.11";
8
8
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,cAAc,WAAW,CAAC"}
package/dist/constants.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * (server.ts -> tools -> meta -> server.ts).
5
5
  */
6
6
  export const SERVER_NAME = 'orygn-opa-mcp';
7
- export const SERVER_VERSION = '0.1.9';
7
+ export const SERVER_VERSION = '0.1.11';
8
8
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,144 @@
1
+ import type { Config } from '../config.js';
2
+ import { type SpawnResult } from './subprocess.js';
3
+ /**
4
+ * A single denial or warning message returned by conftest. The `metadata`
5
+ * field carries any structured data attached via the `{"msg": ..., ...}`
6
+ * violation object form -- it is absent when the rule returned a plain string.
7
+ */
8
+ export interface ConftestMessage {
9
+ msg: string;
10
+ metadata?: Record<string, unknown>;
11
+ }
12
+ /**
13
+ * Per-file test result. One entry is emitted for each (filename, namespace)
14
+ * pair that conftest evaluates.
15
+ */
16
+ export interface ConftestFileResult {
17
+ filename: string;
18
+ namespace: string;
19
+ successes: number;
20
+ failures: ConftestMessage[];
21
+ warnings: ConftestMessage[];
22
+ skipped: ConftestMessage[];
23
+ exceptions: string[];
24
+ }
25
+ /** Input for `conftest test`. */
26
+ export interface ConftestTestInput {
27
+ /** Absolute paths to configuration files to evaluate. */
28
+ files?: string[];
29
+ /** Inline configuration content. Mutually exclusive with `files`. */
30
+ inlineConfig?: string;
31
+ /**
32
+ * Parser used for inline config content. Determines the temp file
33
+ * extension (yaml → .yaml, json → .json, dockerfile → Dockerfile, etc.).
34
+ * Defaults to `yaml` when not specified.
35
+ */
36
+ inlineConfigParser?: string;
37
+ /**
38
+ * Absolute path to a directory or file containing Rego policies.
39
+ * Defaults to `./policy` (conftest's convention). Mutually exclusive
40
+ * with `inlinePolicy`.
41
+ */
42
+ policy?: string;
43
+ /**
44
+ * Inline Rego policy source. Written to a temp directory and passed as
45
+ * `--policy`. Mutually exclusive with `policy`.
46
+ */
47
+ inlinePolicy?: string;
48
+ /** Namespace to test. Defaults to `main`. */
49
+ namespace?: string;
50
+ /** Test policies in all discovered namespaces. */
51
+ allNamespaces?: boolean;
52
+ /** Absolute paths to data directories for Rego policies. */
53
+ data?: string[];
54
+ /** Combine all config files into a single document before testing. */
55
+ combine?: boolean;
56
+ /** Return exit 1 when only warnings are present (no hard failures). */
57
+ failOnWarn?: boolean;
58
+ }
59
+ /** Input for `conftest verify`. */
60
+ export interface ConftestVerifyInput {
61
+ /** Absolute path to the policy directory to verify. */
62
+ policy?: string;
63
+ /** Namespace to verify. Defaults to `main`. */
64
+ namespace?: string;
65
+ /** Absolute paths to data directories. */
66
+ data?: string[];
67
+ }
68
+ /** Input for `conftest pull`. */
69
+ export interface ConftestPullInput {
70
+ /** Policy URL to pull from (OCI: `oci://registry/repo:tag`). */
71
+ url: string;
72
+ /** Local directory to store pulled policies. Defaults to `./policy`. */
73
+ policy?: string;
74
+ }
75
+ /** Input for `conftest push`. */
76
+ export interface ConftestPushInput {
77
+ /** OCI repository URL to push policies to. */
78
+ repository: string;
79
+ /** Local directory containing policies to push. Defaults to `./policy`. */
80
+ policy?: string;
81
+ }
82
+ /**
83
+ * Wrapper around the local `conftest` binary.
84
+ *
85
+ * Methods do not throw on conftest-side errors -- the exit code on the
86
+ * returned `SpawnResult` is the signal. Inline source is written to temp
87
+ * files/directories because conftest does not read from stdin.
88
+ */
89
+ export declare class ConftestCli {
90
+ private readonly config;
91
+ constructor(config: Config);
92
+ /**
93
+ * Verify the binary is present and return its version string. Returns
94
+ * null if the binary is unreachable or the version output is malformed.
95
+ */
96
+ version(signal?: AbortSignal): Promise<string | null>;
97
+ /**
98
+ * Run `conftest test` against one or more configuration files. Always
99
+ * uses `--output=json` so output is machine-readable.
100
+ *
101
+ * When `inlineConfig` or `inlinePolicy` are provided, temp files are
102
+ * created and cleaned up automatically. Temp file paths in the JSON
103
+ * output are replaced with `<inline>` before the result is returned so
104
+ * callers never see implementation-internal paths.
105
+ */
106
+ test(input: ConftestTestInput, signal?: AbortSignal): Promise<SpawnResult>;
107
+ /**
108
+ * Run `conftest verify` -- executes the `_test.rego` tests inside the
109
+ * policy directory to verify the policies themselves.
110
+ */
111
+ verify(input: ConftestVerifyInput, signal?: AbortSignal): Promise<SpawnResult>;
112
+ /**
113
+ * Pull policies from a remote OCI or Git location into a local
114
+ * directory. Stdout is minimal; errors go to stderr.
115
+ */
116
+ pull(input: ConftestPullInput, signal?: AbortSignal): Promise<SpawnResult>;
117
+ /**
118
+ * Push the local policy bundle to a remote OCI registry. Uses
119
+ * credentials from the host environment (docker login, ORAS, etc.).
120
+ */
121
+ push(input: ConftestPushInput, signal?: AbortSignal): Promise<SpawnResult>;
122
+ /**
123
+ * Run `conftest` with the given argv. Tools should prefer the typed
124
+ * methods above; this is the escape hatch for unusual invocations.
125
+ */
126
+ run(args: string[], signal?: AbortSignal): Promise<SpawnResult>;
127
+ /**
128
+ * Create temp assets for inline inputs, run `fn`, then clean up.
129
+ * Returns whatever `fn` returns.
130
+ */
131
+ private withTempAssets;
132
+ /**
133
+ * Replace the temp inline-config path and temp inline-policy directory
134
+ * path in the stdout JSON with `<inline>` so callers never see
135
+ * implementation-internal temp paths.
136
+ *
137
+ * conftest emits paths inside a JSON array, so each backslash in the
138
+ * path is JSON-encoded as `\\`. We match the JSON-encoded form of the
139
+ * path to handle Windows paths correctly (forward slashes need no
140
+ * special treatment).
141
+ */
142
+ private sanitizeOutput;
143
+ }
144
+ //# sourceMappingURL=conftest-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conftest-cli.d.ts","sourceRoot":"","sources":["../../src/lib/conftest-cli.ts"],"names":[],"mappings":"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"}