Canvas: Implement ingress auth

Change-Id: Id884940feb0ac96559874f698fb213acd60f76f4
diff --git a/apps/canvas/config/src/config.ts b/apps/canvas/config/src/config.ts
index 7fd7066..ea74431 100644
--- a/apps/canvas/config/src/config.ts
+++ b/apps/canvas/config/src/config.ts
@@ -99,8 +99,8 @@
 									i.data.auth?.enabled || false
 										? {
 												enabled: true,
-												groups: i.data.auth!.groups,
-												noAuthPathPatterns: i.data.auth!.noAuthPathPatterns,
+												groups: (i.data.auth!.groups || []).join(","),
+												noAuthPathPatterns: i.data.auth!.noAuthPathPatterns || [],
 											}
 										: {
 												enabled: false,
@@ -385,7 +385,7 @@
 						auth: i.auth.enabled
 							? {
 									enabled: true,
-									groups: i.auth.groups || [],
+									groups: (i.auth.groups || "").split(","),
 									noAuthPathPatterns: i.auth.noAuthPathPatterns || [],
 								}
 							: {
diff --git a/apps/canvas/config/src/graph.ts b/apps/canvas/config/src/graph.ts
index 66c3c07..ef868da 100644
--- a/apps/canvas/config/src/graph.ts
+++ b/apps/canvas/config/src/graph.ts
@@ -150,8 +150,8 @@
 	https?: PortConnectedTo;
 	auth?: {
 		enabled: boolean;
-		groups: string[];
-		noAuthPathPatterns: string[];
+		groups?: string[];
+		noAuthPathPatterns?: string[];
 	};
 };
 
@@ -448,6 +448,13 @@
 						portId: z.string(),
 					})
 					.optional(),
+				auth: z
+					.object({
+						enabled: z.boolean(),
+						groups: z.array(z.string()).optional(),
+						noAuthPathPatterns: z.array(z.string()).optional(),
+					})
+					.optional(),
 			})
 			.extend(NodeBaseDataSchema.shape),
 	})
diff --git a/apps/canvas/config/src/types.ts b/apps/canvas/config/src/types.ts
index 4242d97..8b80857 100644
--- a/apps/canvas/config/src/types.ts
+++ b/apps/canvas/config/src/types.ts
@@ -2,11 +2,13 @@
 
 const AuthDisabledSchema = z.object({
 	enabled: z.literal(false),
+	groups: z.undefined(),
+	noAuthPathPatterns: z.undefined(),
 });
 
 const AuthEnabledSchema = z.object({
 	enabled: z.literal(true),
-	groups: z.array(z.string()),
+	groups: z.string().optional(),
 	noAuthPathPatterns: z.array(z.string()),
 });
 
diff --git a/apps/canvas/front/package.json b/apps/canvas/front/package.json
index 43aa538..b2c1fc8 100644
--- a/apps/canvas/front/package.json
+++ b/apps/canvas/front/package.json
@@ -5,7 +5,7 @@
 	"type": "module",
 	"scripts": {
 		"dev": "vite --port=$DODO_PORT_WEB --host",
-		"build": "NODE_OPTIONS=--max-old-space-size=1000 vite build",
+		"build": "NODE_OPTIONS=--max-old-space-size=800 vite build",
 		"format": "prettier --write src/**/*.{js,ts,jsx,tsx} --list-different",
 		"format-check": "prettier --check src/**/*.{js,ts,jsx,tsx}",
 		"lint": "eslint .",