Canvas: Include service ports in self env vars

Change-Id: Iaef1b27069bc2672429e0b23ea42d6a305bf4e6d
diff --git a/apps/canvas/back/prisma/dodo.db b/apps/canvas/back/prisma/dodo.db
index 3bd29ba..d382d23 100644
--- a/apps/canvas/back/prisma/dodo.db
+++ b/apps/canvas/back/prisma/dodo.db
Binary files differ
diff --git a/apps/canvas/front/src/components/node-app.tsx b/apps/canvas/front/src/components/node-app.tsx
index 74f0e75..9bc5f92 100644
--- a/apps/canvas/front/src/components/node-app.tsx
+++ b/apps/canvas/front/src/components/node-app.tsx
@@ -84,7 +84,12 @@
         id: uuidv4(),
         name: values.name,
         value: values.value,
-      })
+      }),
+      envVars: (data.envVars || []).concat({
+        id: uuidv4(),
+        source: null,
+        name: `DODO_PORT_${values.name.toUpperCase()}`,
+      }),
     });
     portForm.reset();
   }, [data, portForm]);
diff --git a/apps/canvas/front/src/lib/state.ts b/apps/canvas/front/src/lib/state.ts
index f718134..94bc77a 100644
--- a/apps/canvas/front/src/lib/state.ts
+++ b/apps/canvas/front/src/lib/state.ts
@@ -183,15 +183,15 @@
 
 export type BoundEnvVar = {
   id: string;
-  source: string;
+  source: string | null;
 } | {
   id: string;
-  source: string;
+  source: string | null;
   name: string;
   isEditting: boolean;
 } | {
   id: string;
-  source: string;
+  source: string | null;
   name: string;
   alias: string;
   isEditting: boolean;
@@ -211,8 +211,8 @@
     case "github": return [];
     case "gateway-https": return [];
     case "gateway-tcp": return [];
-    case "mongodb": return [`DODO_MONGODB_${n.data.label.toUpperCase()}_CONNECTION_URL`];
-    case "postgresql": return [`DODO_POSTGRESQL_${n.data.label.toUpperCase()}_CONNECTION_URL`];
+    case "mongodb": return [`DODO_MONGODB_${n.data.label.toUpperCase()}_URL`];
+    case "postgresql": return [`DODO_POSTGRESQL_${n.data.label.toUpperCase()}_URL`];
     case "volume": return [`DODO_VOLUME_${n.data.label.toUpperCase()}_PATH`];
     case undefined: throw new Error("MUST NOT REACH");
   }