Data and connections
Your telemetry stays in your environment. This page lists every connection the product can make to anything outside your cluster, so you can review it and write egress rules for it. Each one is off until you turn it on or configure a destination, apart from pulling the images when you install.
Connections to Ultraviolet
Section titled “Connections to Ultraviolet”There are two, and you can run with neither.
License renewal (connected mode)
Section titled “License renewal (connected mode)”Off by default (queryApi.connected.enabled). When on, the core sends one HTTPS
request to the license endpoint we give you every 6 hours
(queryApi.connected.callhomeInterval), authenticated with a per-customer
token. The request carries exactly these fields:
| Field | What it is |
|---|---|
license_id |
The ID of the license you have installed. |
customer_id |
Your customer ID, as written in that license. |
instance_id |
A random ID generated at install, so we can tell two installs on one license apart. |
core_version |
The version you’re running, e.g. 0.1.136. |
reported_at, period_start |
When the report was made, and the start of the month it covers. |
active_nodes_now, peak_nodes, node_minutes |
How many nodes run the sensor now, the most at once this month, and the month’s node-minutes. |
per_site |
For each site, its site ID and node count. Site IDs are the names you chose, such as eu-west. |
Nothing else is sent: no telemetry, no hostnames, pod or service names, no user accounts or configuration. The response is a renewed license file. The core checks its signature against the public key built into the product before installing it, so a response that isn’t from us can’t change your license.
If a request fails or is blocked, nothing degrades: the core keeps running on the license it has, and Core status shows whether the last renewal worked. For an air-gapped install, leave connected mode off and install renewed license files yourself; see Licensing.
Release images and upgrade checks
Section titled “Release images and upgrade checks”Images and the Helm chart are pulled from ghcr.io/ultrvlt when you install or
upgrade, or from your own registry if you mirror them. If you turn on the
lifecycle manager (lifecycleManager.enabled, off by default), it also checks
ghcr.io/ultrvlt/charts/ultrvlt-channels for the current release of the channel
you track and verifies its signature. These are ordinary registry pulls: they
send no information about your install.
Connections to destinations you choose
Section titled “Connections to destinations you choose”These connect only to endpoints you configure, and send only what’s described.
| Feature | Default | Connects to | What it sends |
|---|---|---|---|
| Alert notifications | No channels | Your webhook, SMTP server, Slack, Microsoft Teams, PagerDuty or incident.io | The alert (rule name, state, observed value and threshold, or your own message template) and a link back to your portal. |
| AI write-ups of investigations | Off | The model you configure: one you host, or OpenAI, Anthropic, Google Gemini or Vertex AI | The investigation’s evidence report, never raw telemetry. Set queryApi.ai.redactLogs to leave log lines out. Each write-up is recorded in the audit trail. |
| AI agents (MCP) | Off | Nothing itself: your agent connects in with an API token | Query results, to whatever model your agent uses. Read-only, every call audited, and redactLogs applies. |
| Cloud bill import | Off | Your BigQuery billing view, or the bucket your billing export lands in | Nothing: it reads your bill. |
| Synthetic monitors | None | The URLs you add | The requests you define. |
| Single sign-on | Off | Your identity provider | A standard OIDC sign-in. |
| Actions | Off | Your cluster’s Kubernetes API, and your identity provider if revokeAfterUse is on |
The change you approve, as you, with your sign-in token. |
| Session replay | Off | Your object storage bucket | Recorded browser sessions, to your bucket only. |
Notification targets can’t be pointed at the core’s own loopback addresses or
at cloud metadata endpoints (such as 169.254.169.254), including through DNS
or redirects. Set ULTRVLT_NOTIFY_ALLOW_PRIVATE=false to block private
addresses too. Notification delivery honors HTTPS_PROXY.
Connections into your environment
Section titled “Connections into your environment”None are needed for a single cluster. Two features accept inbound traffic when you turn them on:
- Remote sites send telemetry to the core over mutual TLS, with each site’s identity taken from its certificate. See Connecting remote sites.
- Browser monitoring accepts data from your users’ browsers, limited to the origins you allow, and optionally rate limited. See RUM.
What we hold about you
Section titled “What we hold about you”Our license service keeps what we need to license and support you:
- Account details: your company name, the legal and billing details on your agreement, and the contacts you give us (name, email, phone, title). Payment details are held by our payment processor, never by us.
- Licenses: what each one entitles you to and when it expires.
- Usage reports: the connected-mode fields listed above, with the time we received them. Our hosting provider’s request logs also record the address each request came from.
- Call-home tokens: a SHA-256 hash only. The token itself is shown to you once and never stored by us.
- License delivery links: when one was opened, and the IP address and browser that opened it.
It holds no telemetry, because none is ever sent.
Subprocessors
Section titled “Subprocessors”These providers run our license service, documentation, release distribution, email and billing. None of them receives your telemetry.
| Provider | Used for |
|---|---|
| Google Cloud | Hosting the license service; sign-in for our staff. |
| Neon | The license service’s database. |
| Cloudflare | Hosting this documentation and our internal admin console. |
| GitHub | Source code, release builds, and the registry that serves images and charts (ghcr.io). |
| Google Workspace | Email, including messages to support and security addresses. |
| Stripe | Invoicing and payments. |