fix
diff --git a/karavan-app/src/main/webui/src/editor/CodeEditor.tsx b/karavan-app/src/main/webui/src/editor/CodeEditor.tsx
index 3ff9d5b..7e5e007 100644
--- a/karavan-app/src/main/webui/src/editor/CodeEditor.tsx
+++ b/karavan-app/src/main/webui/src/editor/CodeEditor.tsx
@@ -21,19 +21,15 @@
 import {ProjectService} from "../api/ProjectService";
 import {shallow} from "zustand/shallow";
 
-interface Props {
-    projectId: string
-}
-
 const languages = new Map<string, string>([
     ['sh', 'shell'],
     ['md', 'markdown'],
     ['properties', 'ini']
 ])
 
-export function CodeEditor(props: Props) {
+export function CodeEditor() {
 
-    const [file, designerTab, setFile] = useFileStore((s) => [s.file, s.designerTab, s.setFile], shallow)
+    const [file] = useFileStore((s) => [s.file], shallow)
     const [code, setCode] = useState<string>();
 
     useEffect(() => setCode(file?.code), []);
@@ -41,7 +37,7 @@
     useEffect(() => {
         const interval = setInterval(() => {
             saveCode();
-        }, 3000);
+        }, 700);
         return () => {
             clearInterval(interval);
             saveCode();
diff --git a/karavan-app/src/main/webui/src/util/StringUtils.ts b/karavan-app/src/main/webui/src/util/StringUtils.ts
index 0c32809..3aef90a 100644
--- a/karavan-app/src/main/webui/src/util/StringUtils.ts
+++ b/karavan-app/src/main/webui/src/util/StringUtils.ts
@@ -11,3 +11,12 @@
     const pattern = /^[a-z][a-z0-9-]*$/;
     return pattern.test(input);
 }
+
+export function splitByBraces(input: string): string[] {
+    const regex = /{[^{}]*}|[^{}]+/g;
+    return input.match(regex) ?? [];
+}
+
+export function getPathParams(input: string): string[] {
+    return splitByBraces(input).filter(p => p.startsWith('{')).map(p => p.replace('{', '').replace('}', ''));
+}
\ No newline at end of file