Security

Security

Built for teams that take security seriously

At a Glance

0
External calls during operation
0
Prompt content in audit logs
1
Runtime dependency

Architecture

Prompt Control Plane makes zero external network calls during operation. After installation via npm, the software runs entirely on your local machine. There are no analytics endpoints, no telemetry beacons, no license server calls, and no update checks.

All processing is deterministic and reproducible. The same input always produces the same output — same score, same routing decision, same cost estimate, same compiled prompt. There is no randomness, no sampling, and no external state that could affect results.

No data leaves your machine. Prompts, configurations, session history, and audit trails are all stored locally and never transmitted to any server or third party.

Network calls
Zero during operation
Determinism
Same input = same output
LLM calls
Zero inside the product
Data egress
Nothing leaves your machine

Data Handling

All application data is stored locally at ~/.prompt-control-plane/. This directory contains session data, configuration, usage statistics, license information, and the optional audit trail. None of this data is ever transmitted anywhere.

The audit trail is designed with privacy as a first principle. It records only operation metadata — event type, timestamp, outcome, and a limited set of non-sensitive details. It never stores the raw prompt text, the compiled output, or any intermediate analysis content. This is enforced at the code level, not by policy.

The audit trail uses SHA-256 hash chaining for tamper evidence. Each log entry includes an integrity hash computed from the previous entry's hash and the current entry's content. If any line is deleted, modified, or reordered, all subsequent hashes break, making unauthorized changes immediately detectable.

Storage location
~/.prompt-control-plane/
Prompt content in logs
Never stored
Audit integrity
SHA-256 hash chain
Data transmission
Never transmitted

License Keys

License keys use Ed25519 asymmetric signatures for cryptographic verification. The private signing key is held exclusively by the licensor and is never included in the software distribution, source code, or any published artifact.

License validation is performed entirely offline. There is no license server, no activation endpoint, and no network call. The public key embedded in the software verifies the signature locally. This means license validation works in air-gapped environments with no internet access.

License keys contain no personally identifiable information. The payload includes only four fields: the tier (Free, Pro, Power, or Enterprise), the issuance date, the expiration date, and a unique license identifier. No name, no email, no organization, no payment details.

Algorithm
Ed25519 asymmetric signatures
Validation
Offline only, no server call
Private key
Never leaves the licensor
PII in keys
None (tier, dates, ID only)

Supply Chain

Prompt Control Plane has a minimal dependency footprint. The only runtime dependency is the MCP SDK (@modelcontextprotocol/sdk) for the server transport layer. All business logic — scoring, compilation, routing, compression, policy enforcement, and audit logging — is implemented with zero external dependencies.

Source maps are stripped from the published npm tarball to prevent exposure of internal implementation details. All business logic is compiled from TypeScript to standard JavaScript. There is no use of eval(), no dynamic imports, and no runtime code generation.

The npm package ships only compiled output (dist/), entry point scripts (bin/), the README, and the LICENSE file. Test files, source TypeScript, configuration files, and development tooling are excluded from the published package.

Responsible Disclosure

If you discover a security vulnerability in Prompt Control Plane, please report it via our contact form and select “Security vulnerability report” as the subject.

We take all security reports seriously and will acknowledge receipt within 48 hours. We will work with you to understand the issue, confirm the vulnerability, and coordinate a fix before any public disclosure.