How it works
- An owner or admin creates a short-lived, one-time enrollment token in Settings → Private agents.
- The agent enrolls through gRPC over TLS, stores rotating credentials on its persistent volume, and registers its provider capabilities, health, and non-secret policy digest. It refreshes this snapshot every minute.
- Rootly queues a typed invocation with an execution deadline.
- The agent opens an authenticated bidirectional gRPC stream and advertises its available execution capacity, including per-instance slots when Prometheus is enabled. Rootly delivers eligible work over that connection and leaves excess work queued; the agent accepts only an exact provider, capability, and version it registered.
- The provider enforces customer-local policy before calling the local service.
- The agent sends a bounded structured result or typed error to Rootly through an authenticated gRPC call.
INVALID_ARGUMENT and keeps the agent’s last accepted snapshot active. Messages above the transport size limit are rejected with RESOURCE_EXHAUSTED.
Security model
Access requires all of these independent checks:- Rootly authorizes the AI SRE request.
- The agent accepts only a registered typed capability.
- Customer-managed local policy permits the operation.
- The local service authorizes the agent credential, such as a Kubernetes ServiceAccount.
Deployment modes
The supported early-access topology is a combined process with core and its configured providers in one Pod. Supporting builds can run Kubernetes and multiple independent Prometheus instances together. For multiple clusters, deploy a separate agent in each cluster with a distinct, stable provider ID within your Rootly account. Rootly routes invocations to the selected agent and provider; it does not broadcast a query to every cluster. The agent source repository remains private and the agent is proprietary software. Helm charts and container images are separate distribution artifacts; using Helm does not require access to the application source. Obtain the approved image, chart, and any registry credentials through your Rootly representative. No public image or Helm release is implied by this guide. The agent exposes local health endpoints on port8080 by default. If you override runtime.listen_address, configure your probes to use that address and port:
GET /healthzfor livenessGET /readyzfor control-plane and provider readinessGET /versionfor build and component information
Manage agents
Owners and admins can use Settings → Private agents to:- Create a one-time enrollment token
- Review online status, last-seen time, version, and registered providers
- Review each provider’s type, health, last check, and advertised capabilities
- Review the number of capabilities advertised by an agent
- Revoke an agent immediately
/readyz returns not_ready if any provider is not healthy, including a degraded provider; readiness is distinct from dispatch eligibility.
The provider-health UI marks observations older than two minutes as Stale and does not present offline or revoked agents as healthy. Missing, invalid, or implausibly future-dated observations appear as Unavailable. These observation-freshness labels are display-only: dispatch separately checks recent agent connectivity, reported provider availability, authorization, and local policy. A stale display alone does not disable an otherwise eligible provider. Use Refresh to retrieve the latest stored snapshot; this does not force a new upstream health probe. Displayed capabilities are agent-reported, not a guarantee that the current user or local policy permits their execution.
Automate management through the public API
These endpoints require a backend build with the Private Agent management API enabled. Confirm availability with your Rootly representative. They do not replace the agent’s gRPC protocol.
https://api.rootly.com with a Rootly API key whose user or service account has Private Agent management permission. The Private Agents feature must be enabled for the account. Existing OAuth scopes do not currently grant access to these endpoints.
Send
Authorization: Bearer <ROOTLY_API_KEY>, Accept: application/vnd.api+json, and Content-Type: application/vnd.api+json over HTTPS. See API authentication and conventions. Neither POST requires a request body. The enrollment-token response contains data.attributes.token and data.attributes.expires_at, uses Cache-Control: no-store, and returns the secret only once. The token expires after 24 hours and can be consumed once. Repeating token creation produces a different token; this operation is not idempotent.
The two enrollment steps use different credentials:
- Your trusted deployment automation calls the public management API with a Rootly API key to obtain an enrollment token.
- It securely supplies only that one-time token to the agent. The agent exchanges it through gRPC
Enrollfor rotating agent credentials and creates its registered identity.
page[number] and page[size] (default 50, maximum 1000) and return pagination metadata. Lists omit provider snapshots and do not load encrypted credentials or snapshots from the database; retrieve individual agents when provider details are needed. Provider observations can be stale, and online does not imply that every provider is healthy. Credentials and capability input/output schemas are never returned by inventory endpoints.
Revocation is safe to repeat and retains the agent record and invocation history. It prevents new authenticated work, but an operation already executing inside the customer network may not stop immediately. A revoked installation needs a new enrollment token to enroll again. Management access is account-scoped; inaccessible agent IDs return 404 without revealing whether they exist.
Next step
See Private Agent for Kubernetes for local policy, RBAC, compatibility, Pod logs, and sizing guidance. See Private Agent for Prometheus for multi-instance configuration, query tools, authorization, and performance limits. See Private Agent Limits for the canonical runtime, adapter, schema, and AI-context defaults and ceilings.Roadmap Scope
Split deployments and providers other than Kubernetes and Prometheus are outside the release
described here. Do not plan a deployment around an unannounced provider or
topology; confirm supported builds and capabilities with your Rootly representative.