Skip to content

TRUST AND DATA

What leaves your machine

EKKA can govern workflows while private prompt templates stay in your Enclave. Templates stored there are loaded and rendered locally. The governance control plane receives references and hashes rather than those template bodies.

This page is for whoever has to answer a vendor security questionnaire, and for the engineer they will ask to check the answer.

The inputs you submit and the model connection you select determine the data path. The ekka binary talks to your organization's control plane and to the gates you connect, and it carries no third-party analytics code at all.

Field by field: exactly what the CLI sends, exactly what it does not, and the command that proves each one on the binary you installed rather than on the one we describe.

Every endpoint your Enclave contacts, and where each value came from:

ekka enclave config

Every analytics vendor in the binary, counted on the copy you installed:

strings $(which ekka) | grep -icE 'posthog|sentry\.io|segment\.io|amplitude\.com|mixpanel|datadoghq'

That prints 0. It is the exact list our release pipeline checks on every build, so the command you run is the one that gates the release.

It is one pillar of the security model, which covers the other half: what an agent is allowed to do in the first place.


What does EKKA receive?

When you sign in and use the control plane. Your account, your organization, the Enclaves you register, and the plan definitions you create. When you dispatch a plan, the input values you submit travel with it, including any inline prompt text. EKKA authorizes the call against those inputs. Workflow values passed between steps or included in an approval can also reach the control plane. Signed execution records use references, metadata and cryptographic digests to describe local execution.

When your Enclave claims a machine. The machine's hostname, once, as a label so ekka enclave list can tell your laptops apart.

When the CLI crashes. See below.

What stays out of governance records?

  • Private prompt template bodies stored in your Enclave
  • Locally held step output bodies, including model output, file contents and database rows. The record carries references and hashes instead
  • Vault credential values. Supported gates use credentials from your Enclave's encrypted vault to make authorized requests
  • The body of a gate's error response. That is written to a local diagnostics.log on your machine, and ekka receipts show reads it there

This boundary applies to local content and execution records. Content included in a plan definition or run input reaches the control plane. So can values passed between steps or included in an approval. A model or service connected to the workflow receives the input sent to it.

Where is model input processed?

EKKA renders the prompt in your Enclave and sends it to the selected model service under a Grant that names the model and caps the tokens. A local model runs inference on your machine. A hosted model receives the rendered prompt, through the EKKA AI Gateway when that connection is used. The control plane also receives any prompt text explicitly supplied in a plan definition or run input, regardless of where the model runs.

Model data handling depends on the selected service and its terms. The privacy policy describes EKKA's handling of data and its sub-processors.

The two commands that show you the whole picture: every endpoint your Enclave contacts, and every model permission that currently exists.

ekka enclave config
ekka gate grant list

What happens when the CLI crashes?

If the CLI panics, it writes a full record on your machine and sends us a much smaller one.

Sent to EKKA Kept on your machine only
The CLI version and build The error text
Your OS and processor type Your command's arguments and flag values
The name of the command you ran (plan, gate) Your working directory and hostname
The file and line in our source File paths, resource names, prompts

The error text is the useful part and the risky part: a crash message includes whatever the program was holding at the time, which can be a path or a credential. So it stays with you. ekka doctor names the file if you want to send it to us deliberately.

Crash reports reach our error monitoring through the EKKA control plane. The CLI does not contact a third party.

How do I turn crash reports off?

export EKKA_CRASH_REPORTS=0     # or the cross-tool standard:
export DO_NOT_TRACK=1

Either one stops the send. Neither stops the local file, because declining to share a crash log should not mean losing your own copy.

These are environment variables, not Enclave settings

Set them in your shell. Do not put them in your Enclave's config file: it rejects unknown keys at boot, by design, so an unrecognized entry there stops your Enclave starting.

Which document is legally binding?

Our privacy policy is the binding statement, including the full list of sub-processors and the region each one operates in. This page is the engineering detail behind it. The privacy policy is what governs.