Canvas: Let user define name/value env var

Change-Id: I9beffcc6f0dcbb674ef82b37b93b5f5ef7d189bc
diff --git a/apps/canvas/config/src/config.ts b/apps/canvas/config/src/config.ts
index 9568c7e..b0aa744 100644
--- a/apps/canvas/config/src/config.ts
+++ b/apps/canvas/config/src/config.ts
@@ -75,10 +75,15 @@
 						})),
 					env: (n.data.envVars || [])
 						.filter((e) => "name" in e)
-						.map((e) => ({
-							name: e.name,
-							alias: "alias" in e ? e.alias : undefined,
-						})),
+						.map((e) => {
+							if ("value" in e) {
+								return { name: e.name, value: e.value };
+							}
+							return {
+								name: e.name,
+								alias: "alias" in e ? e.alias : undefined,
+							};
+						}),
 					ingress: ingressNodes
 						.filter((i) => i.data.https!.serviceId === n.id)
 						.map(
@@ -278,11 +283,18 @@
 					}),
 				),
 				envVars: (s.env || []).map((e): BoundEnvVar => {
-					if (e.alias != null) {
+					if (e.value != null) {
 						return {
 							id: uuidv4(),
-							name: e.name,
 							source: null,
+							name: e.name,
+							value: e.value,
+						};
+					} else if (e.alias != null && e.alias !== "") {
+						return {
+							id: uuidv4(),
+							source: null,
+							name: e.name,
 							alias: e.alias,
 							isEditting: false,
 						};
diff --git a/apps/canvas/config/src/graph.ts b/apps/canvas/config/src/graph.ts
index 90523d5..3c66fbd 100644
--- a/apps/canvas/config/src/graph.ts
+++ b/apps/canvas/config/src/graph.ts
@@ -62,6 +62,13 @@
 			name: string;
 			alias: string;
 			isEditting: boolean;
+	  }
+	| {
+			id: string;
+			source: null;
+			name: string;
+			value: string;
+			isEditting?: boolean;
 	  };
 
 export type EnvVar = {
diff --git a/apps/canvas/config/src/types.ts b/apps/canvas/config/src/types.ts
index e186f4b..15bf22d 100644
--- a/apps/canvas/config/src/types.ts
+++ b/apps/canvas/config/src/types.ts
@@ -90,6 +90,7 @@
 			z.object({
 				name: z.string(),
 				alias: z.string().optional(),
+				value: z.string().optional(),
 			}),
 		)
 		.optional(),