diff --git a/apps/canvas/front/src/components/node-gateway-https.tsx b/apps/canvas/front/src/components/node-gateway-https.tsx
index 3785d59..e88902d 100644
--- a/apps/canvas/front/src/components/node-gateway-https.tsx
+++ b/apps/canvas/front/src/components/node-gateway-https.tsx
@@ -71,7 +71,7 @@
 	);
 }
 
-export function NodeGatewayHttpsDetails({ id, data }: GatewayHttpsNode) {
+export function NodeGatewayHttpsDetails({ id, data, disabled }: GatewayHttpsNode & { disabled?: boolean }) {
 	const store = useStateStore();
 	const env = useEnv();
 	const form = useForm<z.infer<typeof schema>>({
@@ -301,7 +301,7 @@
 								<Select
 									onValueChange={field.onChange}
 									defaultValue={field.value}
-									disabled={data.readonly}
+									disabled={data.readonly || disabled}
 								>
 									<FormControl>
 										<SelectTrigger>
@@ -327,7 +327,7 @@
 						render={({ field }) => (
 							<FormItem>
 								<FormControl>
-									<Input placeholder="subdomain" {...field} disabled={data.readonly} />
+									<Input placeholder="subdomain" {...field} disabled={data.readonly || disabled} />
 								</FormControl>
 								<FormMessage />
 							</FormItem>
@@ -345,7 +345,7 @@
 								<Select
 									onValueChange={field.onChange}
 									defaultValue={field.value}
-									disabled={data.readonly}
+									disabled={data.readonly || disabled}
 								>
 									<FormControl>
 										<SelectTrigger>
@@ -372,7 +372,7 @@
 								<Select
 									onValueChange={field.onChange}
 									defaultValue={field.value}
-									disabled={data.readonly}
+									disabled={data.readonly || disabled}
 								>
 									<FormControl>
 										<SelectTrigger>
@@ -403,7 +403,12 @@
 						render={({ field }) => (
 							<FormItem>
 								<div className="flex flex-row gap-1 items-center">
-									<Checkbox id="authEnabled" onCheckedChange={field.onChange} checked={field.value} />
+									<Checkbox
+										id="authEnabled"
+										onCheckedChange={field.onChange}
+										checked={field.value}
+										disabled={disabled}
+									/>
 									<Label htmlFor="authEnabled">Enabled</Label>
 								</div>
 								<FormMessage />
@@ -418,7 +423,12 @@
 					<ul>
 						{(data.auth.groups || []).map((p) => (
 							<li key={p} className="flex flex-row gap-1 items-center">
-								<Button size={"icon"} variant={"ghost"} onClick={() => removeGroup(p)}>
+								<Button
+									size={"icon"}
+									variant={"ghost"}
+									onClick={() => removeGroup(p)}
+									disabled={disabled}
+								>
 									<XIcon />
 								</Button>
 								<div>{p}</div>
@@ -433,20 +443,27 @@
 								render={({ field }) => (
 									<FormItem>
 										<FormControl>
-											<Input placeholder="group" {...field} />
+											<Input placeholder="group" {...field} disabled={disabled} />
 										</FormControl>
 										<FormMessage />
 									</FormItem>
 								)}
 							/>
-							<Button type="submit">Add Group</Button>
+							<Button type="submit" disabled={disabled}>
+								Add Group
+							</Button>
 						</form>
 					</Form>
 					Auth optional path patterns
 					<ul>
 						{(data.auth.noAuthPathPatterns || []).map((p) => (
 							<li key={p} className="flex flex-row gap-1 items-center">
-								<Button size={"icon"} variant={"ghost"} onClick={() => removeNoAuthPathPattern(p)}>
+								<Button
+									size={"icon"}
+									variant={"ghost"}
+									onClick={() => removeNoAuthPathPattern(p)}
+									disabled={disabled}
+								>
 									<XIcon />
 								</Button>
 								<div>{p}</div>
@@ -464,13 +481,15 @@
 								render={({ field }) => (
 									<FormItem>
 										<FormControl>
-											<Input placeholder="group" {...field} />
+											<Input placeholder="group" {...field} disabled={disabled} />
 										</FormControl>
 										<FormMessage />
 									</FormItem>
 								)}
 							/>
-							<Button type="submit">Add</Button>
+							<Button type="submit" disabled={disabled}>
+								Add
+							</Button>
 						</form>
 					</Form>
 				</>
