OpAMP capability matrix¶
OpAMP defines a capability bitfield each agent advertises. Ampora gates every server-to-agent push on the matching capability — no capability, no push. This page is the canonical "what Ampora does with each flag".
Server-honoured capabilities¶
| Capability | Bit | What Ampora does | Notes |
|---|---|---|---|
AcceptsRemoteConfig | 0x01 | Pushes assigned configs as RemoteConfig frames | Required for any rollout |
ReportsEffectiveConfig | 0x02 | Persists EffectiveConfig; computes drift | Required for drift detection |
ReportsRemoteConfigStatus | 0x04 | Tracks APPLYING/APPLIED/FAILED; powers gates | Required for apply-failed-ratio gate |
ReportsHealth | 0x08 | Persists per-component health; powers unhealthy-ratio gate | Recommended |
AcceptsPackages | 0x10 | Sends PackagesAvailable for binary updates | Off by default in our recommended templates |
ReportsPackageStatuses | 0x20 | Persists per-package version + state on agent detail | Pairs with AcceptsPackages |
AcceptsConnectionSettings | 0x40 | Pushes new mTLS leaves on auto-renewal; supports handover | Required for hot cert rotation |
AcceptsOtherConnectionSettings | 0x80 | Reserved; not used by Ampora server | Forwarded as-is if needed |
ReportsOwnTraces | 0x100 | Forwards self-traces to the configured OTLP endpoint | Optional; useful for debugging agents |
ReportsOwnMetrics | 0x200 | Powers the Live metrics view | |
ReportsOwnLogs | 0x400 | Forwards self-logs to configured OTLP endpoint | |
AcceptsOpAmpConnectionSettings | 0x800 | Required for federation cross-cluster handover | |
ReportsAvailableComponents | 0x1000 | Persists the agent's component catalogue; lints against it | Lets Ampora warn "agent X does not have processor Y" |
Agent advertises but Ampora ignores¶
None today. Every flag listed above is honoured if the agent advertises it.
OpAmp:AllowedCapabilityFlags¶
The setting OpAmp:AllowedCapabilityFlags is a server-side bitmask that narrows what the server will use even if the agent advertises it. Default 15 = AcceptsRemoteConfig | ReportsEffectiveConfig | ReportsRemoteConfigStatus | ReportsHealth.
Set this to a wider bitmask to enable package distribution, hot cert rotation, etc. The narrowing is for safety — a deployment that does not want to push binaries can hard-block the capability at the server.
Example:
What capability matrix means in practice¶
If an agent does not advertise a capability:
- The relevant UI button is disabled with a "agent has not advertised this capability" tooltip.
- The relevant audit event records "skipped due to capability".
- Ampora never pushes the corresponding frame regardless of operator intent.
This is the mechanism that keeps the Threat model honest — if the agent does not consent, the server cannot push.
Inspecting capabilities¶
The agent's detail page shows the decoded bitfield. The audit log records the bitfield as a hex value on every reconnect.
In psql:
The capabilities column is the integer bitfield; XOR / AND it with the constants above.