Skip to content

Security: vgitcodebase/sovereign-query

Security

SECURITY.md

Security & boundaries

What this repository is — and is not

This repository is an interface: a contract, JSON schemas, prompt text, and thin client glue. It contains no data engine — nothing here stores, indexes, or answers over data. A node does that, behind the contract, and a node is a separate thing you bring or buy.

Because of that split, this repo cannot leak how any particular node works. The reference client is a short HTTP wrapper you can read end to end in a minute.

The sovereignty boundary (what to verify)

The security claim of SQC is structural, and you should confirm it in the code rather than trust it:

  1. The model receives only the shape + the question. See build_prompt in client/python/sovereign_query.py — it composes a prompt from field names and the question, and nothing else. No rows, no sources, no record text.
  2. The answer goes to the caller, not the model. run() returns the node's answer to your program. A compliant client must not send rows/sources back to the model to "phrase" unless you explicitly opt in, and then only the fields you approve (SPEC §7).
  3. An MCP server must not leak the answer into the model's context by default (see mcp/README.md).

If you build a client or connector, honor these. If you find a place where the design leaks records to the model, that's a bug — please report it.

Reporting

Open a private security advisory on this repository, or email security@validiti.com. Please do not open a public issue for a suspected data-exposure bug until it is addressed.

There aren't any published security advisories