Canvas: Filter out proxy and old nodes

Change-Id: Ibe04f36f1dd24ea87a0d41d60006a154ec5720b0
diff --git a/apps/canvas/config/src/types.ts b/apps/canvas/config/src/types.ts
index 4146f75..4242d97 100644
--- a/apps/canvas/config/src/types.ts
+++ b/apps/canvas/config/src/types.ts
@@ -152,6 +152,13 @@
 
 export const MachineSchema = z.object({
 	name: z.string(),
+	given_name: z.string(),
+	last_seen: z
+		.object({
+			seconds: z.number(),
+			nanos: z.number(),
+		})
+		.optional(),
 });
 
 export const MachinesSchema = z.array(MachineSchema);
diff --git a/apps/canvas/front/src/components/node-app.tsx b/apps/canvas/front/src/components/node-app.tsx
index 317b7e0..e63c76a 100644
--- a/apps/canvas/front/src/components/node-app.tsx
+++ b/apps/canvas/front/src/components/node-app.tsx
@@ -1496,7 +1496,13 @@
 
 			const machinesData = MachinesSchema.safeParse(await response.json());
 			if (machinesData.success) {
-				setMachines(machinesData.data);
+				setMachines(
+					machinesData.data
+						.filter((m) => !m.name.startsWith("proxy-dodo-app-"))
+						.filter(
+							(m) => m.last_seen && m.last_seen.seconds * 1000 >= Date.now() - 7 * 24 * 60 * 60 * 1000,
+						),
+				);
 			} else {
 				throw new Error("Invalid machines data");
 			}