feat: frontend support for linked host agents and PVE nodes

- Added linkedHostAgentId to Node interface
- Added linkedNodeId/linkedVmId/linkedContainerId to Host interface
- Filter out linked hosts from 'Managed Agents' list (they show merged with nodes)

Next: Update Dashboard to display linked entity badges
This commit is contained in:
rcourtman 2025-12-13 23:16:48 +00:00
parent 2bce08925f
commit db8afeea18
2 changed files with 12 additions and 1 deletions

View file

@ -265,10 +265,16 @@ export const UnifiedAgents: Component = () => {
version?: string;
lastSeen?: number;
isLegacy?: boolean;
linkedNodeId?: string;
}>();
// Process Host Agents
// Process Host Agents (skip those linked to PVE nodes - they're shown merged with the node)
hosts.forEach(h => {
// Skip hosts that are linked to a PVE node - they'll appear in the Dashboard merged with the node
if (h.linkedNodeId) {
return;
}
const key = h.hostname || h.id;
unified.set(key, {
id: h.id,

View file

@ -152,6 +152,7 @@ export interface Node {
connectionHealth: string;
isClusterMember?: boolean; // True if part of a cluster
clusterName?: string; // Name of cluster (empty if standalone)
linkedHostAgentId?: string; // ID of host agent running on this node (for merging)
}
export interface GuestNetworkInterface {
@ -444,6 +445,10 @@ export interface Host {
tokenRevokedAt?: number;
tags?: string[];
isLegacy?: boolean;
// Linking: When this host agent is running on a known PVE entity
linkedNodeId?: string; // ID of PVE node this agent is running on
linkedVmId?: string; // ID of VM this agent is running inside
linkedContainerId?: string; // ID of container this agent is running inside
}
export interface HostNetworkInterface {