What leaves your network¶
"Where does my data go" is the first question worth asking about anything holding your production credentials. The honest answer changes with your configuration, so Prodpeek computes it rather than restating a paragraph that can go stale.
Outbound connections for this configuration
============================================
coolify.ejd.dk
why upstream for service 'ejd-coolify'
carries the tool calls your policy allows, with the injected credential
when on every allowed agent call
ejd.dk
why uptime monitor 'EJD public site'
carries an unauthenticated GET or TCP connect. No credential
when every 60s
turn off delete the monitor
This instance can reach 2 host(s): coolify.ejd.dk, ejd.dk. Nothing else.
Never sent anywhere, under any configuration: an upstream credential,
a client key, the audit log, or the output of a read_leaks tool.
The same table is on Settings in the console.
The contract¶
Always: the upstreams you configured, and nothing else. A default install with no services makes zero outbound connections. Not "minimal telemetry" — zero.
If you set a control URL: the licence check-in, carrying profile names, revisions and file hashes, plus seat and project counts. No service names, no URLs, no customer data. The control plane's own schema has nowhere to put them if it did, and a test asserts that.
If you configure an AI key: your chosen provider, carrying monitor telemetry — and, only for a project you explicitly opted in, the results of allowed reads from that project.
When a hosted package is first fetched: npm or PyPI. Never again after
prodpeek hosted prefetch, and never at all without hosted services.
Never, under any configuration¶
- An upstream credential
- A client or admin key
- The audit log
- Anything returned by a tool classified
read_leaks
That last one is a rule with teeth rather than a promise: every payload bound for
a provider passes through one function that drops read_leaks output, and the
denied set is computed from the profiles the project actually runs.
Running it with nothing outbound at all¶
Genuinely supported, and not a degraded mode:
- Leave
PRODPEEK_CONTROL_URLunset. No check-in, no feed fetch, no socket. The policies still work — deny-by-default is local and never needed a feed. - Configure no AI key. Nothing is missing.
prodpeek hosted prefetchif you use hosted upstreams, so their packages are already in the data volume.
Then the only hosts Prodpeek reaches are the ones you connected, and
prodpeek egress says so in a form you can paste into a security review.