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.34.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.34, the published ZIP SHA-256 is bb6275dee2cefe85b40b7273dacddd3894b61996a870e5911b8bd8c7f4b2e065.

Get-FileHash .\JSONBuddyPortable-x64-UnicodeRelease-7.4.0.34.zip -Algorithm SHA256

For a controlled plugin rollout, review tag valbuddy-cli-v1.0.1 and pin the JSONBuddy marketplace source to an approved 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 approved 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: -v or -wf, optional -verbose, optional -s <schema>, then input files.
  • 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.

The command contract also documents -patch, -jsl, -jst, -jsv, and -j2csv. Treat exit code 0 as success and every non-zero code as failure. Console wording is not a stable API.

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 access to a JSONBuddy-owned domain. The wrapper scripts contain no network or download commands.

Validation can resolve remote JSON Schema $ref targets, XML schemas, DTDs, catalogs, imports, includes, or related resources through valbuddy.exe. Those destinations come from the documents and configuration chosen by the user, so there is no universal domain allowlist. Block network access for strictly local workflows, or require approval for document-selected domains. The -jsdoc mode rejects an HTTP or HTTPS schema input, although a local schema can still contain references whose resolution must be governed.

JSONBuddy-owned access is separate: www.json-buddy.com serves product information, the portable download, and checksum file. GitHub-hosted marketplace installation and updates use github.com. No call to api.json-buddy.com is part of this plugin's local validation path.

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 approved 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 Approved PowerShell wrapper plus the approved valbuddy.exe path using -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 Approved 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 for inputs whose complete reference graph is local 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.

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 approved 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 or valbuddy.exe command prefix> *)",
              "Read(<approved input root>/**)",
              "Read(<approved schema root>/**)"
              ],
              "ask": [
              "PowerShell(<advanced or output-producing command prefix> *)",
              "Edit(<approved 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. Do not assume this file has the same effect in every IDE or host; JetBrains enterprise sandbox controls are a separate feature.

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 approved full commit SHA and disable automatic updates; published release tags should not be moved.