Article page

Enterprise deployment guide

valbuddy-cli Security and Enterprise Deployment

A technical reference for reviewing, installing, allowlisting, updating, and removing the ValBuddy Agent Plugin and its separately distributed Windows executable.

Review scopePlugin 1.0.1 · valbuddy.exe 7.4.1.0 · Windows · local file processing

Published: Last updated:

What the plugin does

valbuddy-cli is an Agent Plugin that packages one skill, PowerShell wrappers, recipes, and a versioned command contract. The wrappers locate and invoke valbuddy.exe for JSON and JSON Schema validation, XML/XSD validation, well-formedness checks, JSON minification, and explicitly selected advanced operations.

The plugin has no binary, MCP server, hook, custom agent, background service, downloader, credential store, or elevation request. valbuddy.exe is installed separately and performs the validation or transformation.

License boundary and functionality

The wrapper files under plugins/valbuddy-cli are MIT-licensed. That license does not apply to JSONBuddy, XML ValidatorBuddy, or valbuddy.exe; the executable is proprietary, closed-source software governed by its product license.

Local JSON and JSON Schema validation, XML validation, well-formedness checks, and JSON minification are permanently free for commercial and personal use. The following operations require a paid license after evaluation: settings-XML batch automation, JSON Patch (-patch), JSON Schema linting (-jsl), JSON pretty-printing (-jspp), JSON Schema tests (-jst), and JSON-to-CSV conversion (-j2csv). JSON Schema documentation (-jsdoc) remains free for local schemas smaller than 50 KB after evaluation; streaming validation (-jsv) requires a JSONBuddy Large Data license.

Executable source, version, and integrity

Obtain the Windows portable package through the official JSONBuddy download page. The reviewed package is JSONBuddyPortable-x64-UnicodeRelease-7.4.0.36.zip; its included ValBuddy.exe reports file and product version 7.4.1.0, company Clemens Uhlenhut, and product XML ValidatorBuddy.

The current executable is unsigned, so an Authenticode publisher rule is not available. Approve each release by file source and SHA-256. For build 7.4.0.36, the published ZIP SHA-256 is ff8165f5bf954880068e91fd5ba38e0de2ea839bde65249154c1f1e2686a3f71.

Get-FileHash .JSONBuddyPortable-x64-UnicodeRelease-7.4.0.36.zip -Algorithm SHA256

The reviewed XML ValidatorBuddy package is XMLValidatorBuddyPortable-x64-UnicodeRelease-8.2.0.31.zip; its published SHA-256 is a04796bc208f9ea3700eddd21b3c4bc034c8f51dac9e9c360c97b9af533dd615.

Get-FileHash .\XMLValidatorBuddyPortable-x64-UnicodeRelease-8.2.0.31.zip -Algorithm SHA256

For a controlled plugin rollout, review tag valbuddy-cli-v1.0.1 and pin the JSONBuddy marketplace source to an reviewed full commit SHA. A full SHA is stronger evidence than a movable branch name; do not treat a tag name alone as a cryptographic signature.

Installation and updates

Copilot downloads the plugin source from github.com/Clemens-U/jsonbuddy when an administrator or user adds the marketplace and installs valbuddy-cli@jsonbuddy. The plugin never downloads valbuddy.exe. Deploy the executable separately to a reviewed path and, when needed, set VALBUDDY_EXE.

The wrapper resolves the executable in this order: explicit -ValBuddyPath, VALBUDDY_EXE, valbuddy.exe on PATH, then JSONBuddy or XML ValidatorBuddy under 64-bit or 32-bit Program Files. Enterprise deployments should set one explicit reviewed path and restrict changes to it.

Automatic marketplace and plugin updates are an administrator choice. Managed extraKnownMarketplaces can enable or disable automatic updates; pinning the source to a reviewed full commit SHA with autoUpdate: false supports change-controlled rollout.

Shell commands and child processes

The plugin's wrappers are PowerShell scripts. The generic wrapper resolves the executable and starts only that resolved valbuddy.exe, forwarding the selected arguments. The supplied wrappers expose these command shapes:

  • validate-json.ps1 and validate-xml.ps1: optional wrapper parameter -Offline, then -v or -wf, optional -verbose, optional -s <schema>, and input files. The wrapper forwards native -offline.
  • format-json.ps1: -jspp or -jsm, optional -oj <output>, then one JSON input.
  • generate-schema-docs.ps1: -jsdoc -o <output.html> <local-schema.json>.
  • run-settings.ps1: passes one settings XML file to the executable.

Every supplied wrapper accepts -Offline and forwards the process-wide native policy. The command contract also documents -patch, -jsl, -jst, -jsv, and -j2csv. Treat exit code 0 as success. Exit code 12 means offline mode blocked a network-capable resource or disabled an operation whose resource resolution cannot be constrained safely.

File access and output behavior

Ordinary validation reads the executable, the user-selected JSON or XML inputs, the selected JSON Schema or XML schema, and any local schemas, catalogs, DTDs, XSLT files, or other resources referenced by those documents. Do not grant broad filesystem access when the project can name narrower input and schema roots.

Validation itself does not require an output-file permission. Generated or transformed workflows do: documentation writes the explicitly supplied HTML path; JSON formatting writes the supplied -oj path, or overwrites the input when no output path is supplied; linter and JSON-to-CSV modes write their selected outputs; settings-XML jobs can write configured output and log paths. Documentation generation first uses a sibling temporary file before atomically replacing the requested target. Some streaming and formatting paths may also create a GUID-named .tmp file in the input or output directory before rename.

Network behavior

Once the plugin and executable are installed, ordinary validation with entirely local inputs and references does not require network access. The wrapper scripts contain no network or download commands.

Native offline mode

Use wrapper parameter -Offline, or native switch valbuddy.exe -offline, when the complete reference graph must remain local. Local relative and absolute references remain available. A remote JSON Schema $ref, XML schema, DTD, entity, catalog, import, include, or direct HTTP or HTTPS input is rejected before connection, the blocked URI is reported, and the process returns 12.

Settings-XML batches, configured schema tests, official JSON Schema Test Suite runs, and signature verification fail closed in offline mode because their configured or third-party resource paths cannot all be constrained without modifying third-party libraries. On September 28, 2026, both reviewed public packages passed the same 21-case native offline suite: local JSON and XML reference graphs succeeded, every network-capable case was rejected, and the loopback recorder observed zero offline requests. A non-offline control produced one request.

Without offline mode, validation can resolve document-selected remote resources. There is no universal destination allowlist. www.json-buddy.com and xml-buddy.com serve product downloads and checksums, while GitHub hosts marketplace installation and updates. api.json-buddy.com is not part of local validation.

Document privacy, retention, and telemetry

For ordinary local validation, customer documents are opened by the locally installed executable and are not uploaded to JSONBuddy. The plugin wrappers do not copy document contents to a service or retain them. Local input, output, logs, and temporary files remain subject to the organization's storage, backup, endpoint-protection, and deletion policies.

Remote references are an explicit qualification: resolving one can disclose the requested URL and normal connection metadata to the remote server. The AI client can also transmit prompts, selected content, or diagnostics under the organization's GitHub Copilot configuration; that behavior is outside the plugin and executable.

No telemetry is implemented by the plugin wrappers. Independent telemetry behavior of the proprietary valbuddy.exe has not been confirmed in the reviewed public contract, so administrators that require a definitive telemetry statement should confirm it with JSONBuddy support and verify observed network activity in their reviewed build.

Administrator allowlisting matrix

Minimum permissions for local validation and conditional permissions for other workflows
Area Required for local validation Optional or conditional Explanation
Shell command Reviewed PowerShell wrapper using -Offline, plus the reviewed valbuddy.exe path using native -offline with -v or -wf; optional -verbose and -s format-json.ps1, generate-schema-docs.ps1, run-settings.ps1, and contract-listed advanced switches The supplied wrappers start only the resolved executable. Paid-operation and write permissions should be separate from validation.
File reads Reviewed executable; user-selected JSON, JSON Schema, and XML files; selected schema Referenced local schemas, DTDs, catalogs, imports, includes, XSLT, settings, patch, or conversion configuration Grant project-specific input and schema roots instead of an unrestricted filesystem pattern.
File writes None for ordinary validation Explicit documentation, formatting, linter, CSV, streaming, batch output, log, and sibling temporary-file destinations; in-place formatting only when intended Write destinations are selected by arguments or settings. Formatting without an output path can overwrite its input.
Network None after installation; use native -offline and disable outbound and local networking in the host sandbox github.com for plugin install/update; www.json-buddy.com for product download/checksum; document-selected remote references; unidentified optional licensing endpoint Remote schema and XML destinations cannot be exhaustively prelisted because documents control them. api.json-buddy.com is not required.
Credentials None for ordinary local validation GitHub authentication used by the host; local paid-license material for licensed operations The plugin does not collect or store credentials. Never place tokens, license material, or secrets in prompts, command arguments, logs, or repository files.

Minimum Copilot app sandbox recipe

In the project settings, turn on Sandbox new sessions. GitHub Copilot app local sandboxing is an opt-in public preview configured per project for new local repository and working-tree sessions. Enterprise policy can make the effective policy more restrictive. If Windows cannot enforce a requested rule, the sandboxed shell fails instead of running without the sandbox.

  1. Use a dedicated validation project whose workspace contains no protected inputs. The sandbox grants its workspace and current working directory read/write access by default, so opening the protected input repository itself would not provide a read-only boundary.
  2. Under Additional read-only, add only the reviewed JSON, XML, schema, catalog, and local-reference roots, the reviewed valbuddy.exe installation folder, and the installed plugin cache when its scripts are outside the workspace.
  3. Under Additional read/write, add only the explicitly selected documentation or generated-output directory. Ordinary validation needs no output permission. Add sensitive sibling folders to Denied where the Windows host can enforce that rule.
  4. Turn off Outbound internet and Local network. Turn off both Git credentials and GitHub CLI credentials.
  5. Start a new session or use /restart-session, then require the wrapper -Offline parameter for the validation command.

The Copilot app project setting provides broad outbound and local-network toggles, not a hostname allowlist. A workflow that intentionally resolves remote references must omit -Offline, enable the required network category, and restrict destinations with enterprise-managed domain rules plus an organizational proxy or firewall. Copilot CLI sandbox settings are configured separately.

The public executables and native offline boundary have been tested as described above. Administrators should still pilot the effective Copilot app policy on their supported Windows build before distributing the project configuration.

Managed-permissions syntax example

GitHub documents PowerShell(...), Read(...), Edit(...), and Domain(...) selectors under permissions.allow, permissions.ask, and permissions.deny. Deny takes precedence over ask, which takes precedence over allow; once managed rules are present, unmatched supported operations require approval.

This syntax-only template deliberately uses placeholders because the host's emitted command text, workspace root, installed-plugin cache, and reviewed executable path are deployment-specific. Capture the actual operations in a pilot session and replace every placeholder before distribution.

{
              "permissions": {
              "disableBypassPermissionsMode": "disable",
              "allow": [
              "PowerShell(<exact validation wrapper -Offline or valbuddy.exe -offline command prefix> *)",
              "Read(<reviewed input root>/**)",
              "Read(<reviewed schema root>/**)"
              ],
              "ask": [
              "PowerShell(<advanced or output-producing command prefix> *)",
              "Edit(<reviewed generated-output root>/**)",
              "Domain(*)"
              ]
              }
              }

Granular managed permissions are generally available in the GitHub Copilot app, GitHub Copilot CLI, and Visual Studio Code sessions using Agent Host. They complement the app's project sandbox but do not turn its broad outbound toggle into a host allowlist. Do not assume the same settings have the same effect in every IDE or host.

Uninstallation and rollback

copilot plugin uninstall valbuddy-cli
              copilot plugin marketplace remove jsonbuddy

Uninstalling the plugin removes its cached plugin package but does not remove valbuddy.exe, its local license material, generated files, or logs. Remove those separately under the organization's software and data-retention processes. For rollback, pin the marketplace to the last reviewed full commit SHA and disable automatic updates; published release tags should not be moved.