Author SHA1 Message Date
Clawdia 0b0196893e Fix read-only plugin target matching 2026-09-03 19:37:52 -04:00
+5 -2
View File
@@ -68,7 +68,7 @@ export async function inventory(config: PluginConfig): Promise<{ groups: unknown
const meshesResponse = await request('meshes');
const meshes = (meshesResponse.meshes ?? []).map((mesh) => ({
id: mesh.id ?? mesh._id ?? '', name: mesh.name, description: mesh.description ?? mesh.desc,
})).filter((mesh) => mesh.id && mesh.name === config.groupName);
})).filter((mesh) => mesh.id && mesh.name.toLowerCase() === config.groupName.toLowerCase());
if (meshes.length !== 1) throw new Error('Approved MeshCentral group was not found uniquely');
const group = meshes[0];
@@ -77,7 +77,10 @@ export async function inventory(config: PluginConfig): Promise<{ groups: unknown
id: node.id ?? node._id ?? '', name: node.name, groupId: node.meshid ?? groupId,
online: node.online ?? node.conn === 1, os: node.device?.os ?? node.osdesc,
ipAddresses: node.device?.ip ?? node.ip,
}))).filter((node) => node.id && node.groupId === group.id && node.name === config.deviceName);
// The nodes request is already scoped to the approved group. MeshCentral
// may omit or normalize the per-node meshid differently, so do not apply
// a second brittle group-id comparison here.
}))).filter((node) => node.id && node.name.toLowerCase() === config.deviceName.toLowerCase());
return { groups: meshes, devices };
} finally {
await new Promise<void>((resolve) => {