diff --git a/backend/database.js b/backend/database.js index 4d9085c..c51c918 100644 --- a/backend/database.js +++ b/backend/database.js @@ -13,10 +13,12 @@ const AGENT_MAC_MAP = { 'F6-2V-DT-8A': [ '2c:7b:a0:d8:86:91', '16:11:ac:73:34:1d', 'bc:45:5b:ca:d5:be', 'de:ed:cc:57:58:34', 'f4:6d:3f:ef:01:a0', '60:be:b4:29:d3:36', - '70:85:6c:81:50:d4', '70:85:6c:6d:f7:17', '60:be:b4:29:d3:33', - '60:be:b4:26:4c:d6', '60:be:b4:29:d3:32' + '60:be:b4:29:d3:33', '60:be:b4:26:4c:d6', '60:be:b4:29:d3:32' + ], + '1R-79-J9-YE': [ + '70:85:6c:6d:f7:17', '70:85:6c:81:50:d4', 'a2:cc:8e:7d:39:51', + 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63' ], - '1R-79-J9-YE': ['a2:cc:8e:7d:39:51', 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63'], }; const AGENT_NUMERIC_IDS = { diff --git a/backend/netify.js b/backend/netify.js index a695f86..3b29aae 100644 --- a/backend/netify.js +++ b/backend/netify.js @@ -1202,8 +1202,10 @@ const AGENT_MAC_MAP = { '2F-TF-1D-GK': ['60:be:b4:1f:05:96'], '8A-V3-PB-85': ['04:f4:1c:ce:c2:e6'], 'F6-2V-DT-8A': ['2c:7b:a0:d8:86:91', '16:11:ac:73:34:1d', 'bc:45:5b:ca:d5:be', - 'de:ed:cc:57:58:34', 'f4:6d:3f:ef:01:a0', '60:be:b4:29:d3:36'], - '1R-79-J9-YE': ['a2:cc:8e:7d:39:51', 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63'], + 'de:ed:cc:57:58:34', 'f4:6d:3f:ef:01:a0', '60:be:b4:29:d3:36', + '60:be:b4:29:d3:33', '60:be:b4:26:4c:d6', '60:be:b4:29:d3:32'], + '1R-79-J9-YE': ['70:85:6c:6d:f7:17', '70:85:6c:81:50:d4', 'a2:cc:8e:7d:39:51', + 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63'], }; // Build SQL IN clause placeholders diff --git a/backend/tests/test_dynamic_agents_users.js b/backend/tests/test_dynamic_agents_users.js index f96628b..9365d4f 100644 --- a/backend/tests/test_dynamic_agents_users.js +++ b/backend/tests/test_dynamic_agents_users.js @@ -48,11 +48,16 @@ for (const u of expectedUsernames) { console.log("- Verifying data scoping/isolation for 1R-79-J9-YE..."); const agentUuid = '1R-79-J9-YE'; +const allowedMacs = [ + '70:85:6c:6d:f7:17', '70:85:6c:81:50:d4', 'a2:cc:8e:7d:39:51', + 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63' +]; + // A. Check flows count const flows = dbModule.getLatestFlows(100, null, agentUuid); console.log(` Scoped flows count: ${flows.length}`); for (const f of flows) { - if (!['a2:cc:8e:7d:39:51', 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63'].includes(f.src_mac)) { + if (!allowedMacs.includes(f.src_mac)) { throw new Error(`❌ TEST FAILED: Flow src_mac '${f.src_mac}' leaked into 1R-79-J9-YE scope!`); } } diff --git a/src/lib/actions/agents.ts b/src/lib/actions/agents.ts index ba1cb88..2d0d746 100644 --- a/src/lib/actions/agents.ts +++ b/src/lib/actions/agents.ts @@ -95,10 +95,12 @@ export async function getAgents(): Promise { 'F6-2V-DT-8A': [ '2c:7b:a0:d8:86:91', '16:11:ac:73:34:1d', 'bc:45:5b:ca:d5:be', 'de:ed:cc:57:58:34', 'f4:6d:3f:ef:01:a0', '60:be:b4:29:d3:36', - '70:85:6c:81:50:d4', '70:85:6c:6d:f7:17', '60:be:b4:29:d3:33', - '60:be:b4:26:4c:d6', '60:be:b4:29:d3:32' + '60:be:b4:29:d3:33', '60:be:b4:26:4c:d6', '60:be:b4:29:d3:32' + ], + '1R-79-J9-YE': [ + '70:85:6c:6d:f7:17', '70:85:6c:81:50:d4', 'a2:cc:8e:7d:39:51', + 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63' ], - '1R-79-J9-YE': ['a2:cc:8e:7d:39:51', 'f2:69:9d:a1:5e:11', '8e:91:0f:6e:24:63'], }; const AGENT_LABELS: Record = {