12 KiB
Pulse v6 Platform Support Model
Last updated: 2026-03-30 Status: ACTIVE
This file is the canonical governed model for platform support in Pulse v6. It exists so new platforms are admitted against one shared contract instead of through platform-by-platform improvisation.
Canonical Rules
- A first-class platform is a governed Pulse platform id with one declared primary ingestion mode, one owned onboarding path, explicit canonical resource projections, and one declared support matrix across the product surfaces below.
- Platform families are grouping aids, not the support unit.
Proxmoxis a family;proxmox-pve,proxmox-pbs, andproxmox-pmgare separate first-class platforms because they onboard differently, project different canonical resources, and carry different support floors. - Runtime variants are not top-level platforms.
podmanis a runtime variant inside the first-classdockerplatform.qemu,lxc, OCI guest/runtime details, and TrueNAS app-runtime internals are workload technologies inside an owning platform, not new platforms. - Transport-specific implementations are not platforms. API clients, JSON-RPC sessions, pollers, agent heartbeat schemas, install flags, CRUD routes, and saved-connection tests are implementation details.
- Optional augmentation paths are not platforms. A unified agent installed on an API-backed host may enrich or enable control for that platform, but it does not replace the platform's primary support contract.
hybridis an ingestion mode, not a platform category. Usehybridonly when one first-class platform or resource contract intentionally merges API-backed and agent-backed truth.- Platform work must project into canonical shared resources first. Do not add provider-local top-level resource types by default.
Platform Categories
First-Class Platform
A first-class platform must define:
- canonical platform id
- platform family, if any
- primary ingestion mode:
api-backed,agent-backed, orhybrid - owned onboarding path
- canonical unified-resource projections
- support-floor row across the product surfaces below
- assistant read classification and assistant control classification
- optional augmentation rules, if a secondary path is allowed
Runtime Variant
A runtime variant changes how a platform runs but does not change the owning platform id, onboarding path, or top-level support contract.
Examples:
podmaninsidedockerqemuversuslxcinsideproxmox-pve- container-runtime details inside TrueNAS-managed
app-containerresources
Transport-Specific Implementation
A transport-specific implementation is the concrete mechanism used to ingest, test, or execute a platform path.
Examples:
pkg/pbs,pkg/pmg, and TrueNAS JSON-RPC clients- Docker and Kubernetes agent report schemas
--enable-docker,--enable-kubernetes, and--proxmox-type pve|pbs- platform-connections CRUD and saved-connection test routes
Optional Augmentation Path
An optional augmentation path is a secondary governed path that enriches an existing first-class platform without replacing its primary ingestion mode.
Examples:
- a unified agent on a Proxmox node enabling hybrid host telemetry or guest
control for
proxmox-pve - a unified agent on a TrueNAS appliance enriching a
truenassystem that is already supported through the API-backed poller
Canonical Ingestion Modes
API-backed
Pulse polls or queries the platform API directly. Optional agent data may augment the platform later, but API truth defines the support floor.
Current API-backed primary platforms:
proxmox-pveproxmox-pbsproxmox-pmgtruenas
Agent-backed
Pulse relies on a Pulse-managed agent as the primary source of truth. Specialized runtime modules may ride on the same host install, but the agent path defines the support floor.
Current agent-backed primary platforms:
agentfor unified-agent hostsdockerkubernetes
Hybrid
Hybrid means one admitted platform deliberately merges API-backed and agent-backed truth into one canonical resource contract. Hybrid is valid only when the primary owner and the augmentation rule are both explicit.
Current governed hybrid-capable platforms:
proxmox-pveproxmox-pbstruenas
docker and kubernetes do not become hybrid platforms merely because they
run on a machine that also reports as agent; those are parallel first-class
platforms sharing one physical host.
Canonical Resource Projection Rules
- Host-like systems should project as canonical
agentresources plusplatformType, not as provider-local host types. - Current top-level exceptions are
pbsandpmg, which remain dedicated canonical resource types because their product semantics are not reducible to a generic host row. - Proxmox guest workloads project as
vmandsystem-container. - OCI and application workloads project as
app-container, including TrueNAS-managed apps. - Docker Swarm service topology projects as
docker-service. - Kubernetes projects as
k8s-cluster,k8s-node,pod, andk8s-deployment. - Storage projects through shared
storage,ceph, andphysical-diskresources instead of provider-local storage types. - Recovery artifacts stay in
internal/recoveryand reference canonical platform ids plus canonical resource ids. Recovery provider strings are forward-compatible vocabulary, not support declarations by themselves.
Support Floor
Every first-class platform must declare one matrix row covering these product surfaces:
- onboarding/setup
- infrastructure visibility
- workloads, if the platform projects workload resources
- storage, if the platform projects storage or disk resources
- recovery, if the platform emits protected-item or recovery-artifact truth
- alerts, if the platform contributes operator-significant health state
- assistant read
- assistant control
A platform counts as supported only when every applicable surface above is
either supported or explicitly n/a. Blank, implied, or hand-wavy coverage
is not acceptable.
assistant control must be classified explicitly as one of:
supportedaugmentation-onlyread-onlyn/a
Current Classification
First-class platforms
agentfor unified-agent hostsdockerkubernetesproxmox-pveproxmox-pbsproxmox-pmgtruenas
Runtime variants
podmanis a runtime variant insidedocker, surfaced through runtime metadata such ascontainerRuntime, not as a top-level platform.qemu,lxc, and OCI guest/runtime details are workload technologies insideproxmox-pve, not first-class platforms.- TrueNAS app runtime internals are implementation details of
truenas-ownedapp-containerresources, notdockeradoption.
Transport-specific implementations
- Proxmox, PBS, PMG, and TrueNAS connection CRUD and test routes
- PBS/PMG API clients and the TrueNAS JSON-RPC poller stack
- Docker and Kubernetes agent report contracts
- install-command helpers and setup-script flags
- platform badge and filter helpers
Optional augmentation paths
- unified agent on a Proxmox node
- unified agent on a TrueNAS appliance
- host-level agent support that enables shell or guest control for an already admitted API-backed platform
Current Support Matrix
| Platform | Family | Primary mode | Optional augmentation | Canonical projections |
|---|---|---|---|---|
agent |
Pulse-managed host | agent-backed | none | agent, storage, physical-disk |
docker |
container runtime | agent-backed | none | agent, app-container, docker-service |
kubernetes |
cluster runtime | agent-backed | none | k8s-cluster, k8s-node, pod, k8s-deployment |
proxmox-pve |
Proxmox | api-backed | host agent may augment into hybrid | agent, vm, system-container, storage, ceph, physical-disk |
proxmox-pbs |
Proxmox | api-backed | host agent may augment into hybrid | pbs, storage |
proxmox-pmg |
Proxmox | api-backed | none today | pmg |
truenas |
TrueNAS | api-backed | host agent may augment into hybrid | agent, app-container, storage, physical-disk |
| Platform | Setup | Visibility | Workloads | Storage | Recovery | Alerts | Assistant read | Assistant control |
|---|---|---|---|---|---|---|---|---|
agent |
install workspace | supported | n/a |
supported | n/a |
supported | supported | supported |
docker |
install workspace / runtime enablement | supported | supported | n/a |
n/a |
supported | supported | supported |
kubernetes |
install workspace / runtime enablement | supported | supported | n/a |
supported | supported | supported | supported |
proxmox-pve |
platform connections | supported | supported | supported | supported | supported | supported | augmentation-only |
proxmox-pbs |
platform connections | supported | n/a |
supported | supported | supported | supported | read-only |
proxmox-pmg |
platform connections | supported | n/a |
n/a |
n/a |
supported | supported | read-only |
truenas |
platform connections | supported | supported | supported | supported | supported | supported | supported |
Current Inconsistencies To Treat Explicitly
frontend-modern/src/utils/sourcePlatforms.tsalready carries future labels such asvmware-vsphere,microsoft-hyperv,aws,azure,gcp,unraid, andsynology-dsm. Those are presentation vocabulary only. They are not admitted first-class platforms until governance says so here.- Recovery provider strings are intentionally forward-compatible and already
include values such as
docker,agent, andproxmox-pmg. Those strings do not mean recovery support exists until the platform matrix above marks recovery as supported. - Frontend compatibility types still expose some legacy or presentation-local resource aliases. The canonical backend truth remains the shared unified-resource model plus this platform matrix.
Future Platform Admission
A new platform may be admitted as first-class only after governance answers all of these questions before implementation starts:
- What is the canonical platform id, and what platform family does it belong to, if any?
- Is the primary ingestion mode
api-backed,agent-backed, orhybrid? If hybrid, what is primary and what is only augmentation? - What is the canonical onboarding path: platform connections, install workspace, or both?
- What existing canonical resource types does it project into? New resource types require explicit justification; provider-local host types are forbidden by default.
- Which support-floor surfaces are
supported,augmentation-only,read-only, orn/a? - What stable identities drive dedupe, monitored-system counting, and
cross-source merge with
agent,docker,kubernetes, or other existing platforms? - What transport/security boundary owns credentials, polling cadence, reconnect semantics, and disabled/default behavior?
- What proof demonstrates the declared floor is real in onboarding, visibility, applicable domain surfaces, alerts, and assistant behavior?
If those answers are not yet stable, the work must stop at a governed open-decision or resolved-decision update instead of starting runtime code.
Likely vSphere Path
If VMware vSphere is added in v6 or later, the default evaluation path is:
- treat it as a separate first-class platform id such as
vmware-vsphere, not as another Proxmox subtype and not as a generic future-label shortcut - assume API-backed primary ingestion unless governance explicitly chooses an agent-first or hybrid contract
- reuse canonical
agentfor host-like top-level systems when that model is appropriate,vmfor guests, andstoragefor datastores; do not inventesxi-hostorvsphere-vmtypes by default - require explicit answers for host-versus-cluster top-level identity, vCenter-versus-direct-ESXi support, storage/datastore scope, recovery truth, alerts floor, assistant read, assistant control, and any agent augmentation rule before implementation starts
Adding vmware-vsphere to a label helper, filter list, or presentation badge
does not admit the platform. Admission happens only when this model, the
owning contracts, and the required proof surfaces are updated together.