Canvas: Handle repo diff
Refactor github and appmanager clients.
Remove dev mode ports/ingress definitions.
Change-Id: I0ca15cec897d5a8cfa1c89b8ec9c09c408686c64
diff --git a/apps/canvas/front/src/lib/config.ts b/apps/canvas/front/src/lib/config.ts
index 60d9966..63f6642 100644
--- a/apps/canvas/front/src/lib/config.ts
+++ b/apps/canvas/front/src/lib/config.ts
@@ -59,6 +59,7 @@
preBuildCommands?: { bin: string }[];
dev?: {
enabled: boolean;
+ username?: string;
ssh?: Domain;
codeServer?: Domain;
};
@@ -99,8 +100,12 @@
return null;
}
const networkMap = new Map(env.networks.map((n) => [n.domain, n.name]));
- const ingressNodes = nodes.filter((n) => n.type === "gateway-https").filter((n) => n.data.https !== undefined);
- const tcpNodes = nodes.filter((n) => n.type === "gateway-tcp").filter((n) => n.data.exposed !== undefined);
+ const ingressNodes = nodes
+ .filter((n) => n.type === "gateway-https")
+ .filter((n) => n.data.https !== undefined && !n.data.readonly);
+ const tcpNodes = nodes
+ .filter((n) => n.type === "gateway-tcp")
+ .filter((n) => n.data.exposed !== undefined && !n.data.readonly);
const findExpose = (n: AppNode): PortDomain[] => {
return n.data.ports
.map((p) => [n.id, p.id, p.name])
@@ -134,11 +139,13 @@
branch: n.data.repository.branch,
rootDir: n.data.repository.rootDir,
},
- ports: (n.data.ports || []).map((p) => ({
- name: p.name,
- value: p.value,
- protocol: "TCP", // TODO(gio)
- })),
+ ports: (n.data.ports || [])
+ .filter((p) => !n.data.dev?.enabled || (p.value != 22 && p.value != 9090))
+ .map((p) => ({
+ name: p.name,
+ value: p.value,
+ protocol: "TCP", // TODO(gio)
+ })),
env: (n.data.envVars || [])
.filter((e) => "name" in e)
.map((e) => ({
@@ -172,17 +179,18 @@
: [],
dev: {
enabled: n.data.dev ? n.data.dev.enabled : false,
+ username: n.data.dev && n.data.dev.enabled ? env.user.username : undefined,
codeServer:
n.data.dev?.enabled && n.data.dev.expose != null
? {
- network: n.data.dev.expose.network,
+ network: networkMap.get(n.data.dev.expose.network)!,
subdomain: n.data.dev.expose.subdomain,
}
: undefined,
ssh:
n.data.dev?.enabled && n.data.dev.expose != null
? {
- network: n.data.dev.expose.network,
+ network: networkMap.get(n.data.dev.expose.network)!,
subdomain: n.data.dev.expose.subdomain,
}
: undefined,
diff --git a/apps/canvas/front/src/lib/state.ts b/apps/canvas/front/src/lib/state.ts
index 6e04e4c..7060327 100644
--- a/apps/canvas/front/src/lib/state.ts
+++ b/apps/canvas/front/src/lib/state.ts
@@ -361,6 +361,10 @@
github: z.boolean(),
}),
services: z.array(z.string()),
+ user: z.object({
+ id: z.string(),
+ username: z.string(),
+ }),
});
export type Env = z.infer<typeof envSchema>;
@@ -373,6 +377,10 @@
github: false,
},
services: [],
+ user: {
+ id: "",
+ username: "",
+ },
};
export type Project = {