diff --git a/apps/canvas/front/src/components/node-gateway-tcp.tsx b/apps/canvas/front/src/components/node-gateway-tcp.tsx
index 86fa493..bd1e5b6 100644
--- a/apps/canvas/front/src/components/node-gateway-tcp.tsx
+++ b/apps/canvas/front/src/components/node-gateway-tcp.tsx
@@ -48,7 +48,7 @@
 	);
 }
 
-export function NodeGatewayTCPDetails({ id, data }: GatewayTCPNode) {
+export function NodeGatewayTCPDetails({ id, data, disabled }: GatewayTCPNode & { disabled?: boolean }) {
 	const store = useStateStore();
 	const env = useEnv();
 	const form = useForm<z.infer<typeof schema>>({
@@ -235,7 +235,7 @@
 								<Select
 									onValueChange={field.onChange}
 									defaultValue={field.value}
-									disabled={data.readonly}
+									disabled={data.readonly || disabled}
 								>
 									<FormControl>
 										<SelectTrigger>
@@ -261,7 +261,7 @@
 						render={({ field }) => (
 							<FormItem>
 								<FormControl>
-									<Input placeholder="subdomain" {...field} disabled={data.readonly} />
+									<Input placeholder="subdomain" {...field} disabled={data.readonly || disabled} />
 								</FormControl>
 								<FormMessage />
 							</FormItem>
@@ -287,7 +287,7 @@
 								<Select
 									onValueChange={field.onChange}
 									defaultValue={field.value}
-									disabled={data.readonly}
+									disabled={data.readonly || disabled}
 								>
 									<FormControl>
 										<SelectTrigger>
@@ -312,7 +312,7 @@
 								<Select
 									onValueChange={field.onChange}
 									defaultValue={field.value}
-									disabled={data.readonly}
+									disabled={data.readonly || disabled}
 								>
 									<FormControl>
 										<SelectTrigger>
@@ -332,7 +332,9 @@
 							</FormItem>
 						)}
 					/>
-					<Button type="submit">Expose</Button>
+					<Button type="submit" disabled={disabled}>
+						Expose
+					</Button>
 				</form>
 			</Form>
 		</>
