From 927379b2451ff450f49a3e2ed72a0d7d64024b82 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Fri, 25 Aug 2023 18:15:59 -0300 Subject: [PATCH] fix(manager.py): catch all exceptions instead of just TypeError when loading JSON payload to handle any parsing errors feat(index.tsx): add authentication token to WebSocket URL to authenticate the user --- src/backend/langflow/services/chat/manager.py | 2 +- src/frontend/src/modals/formModal/index.tsx | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/langflow/services/chat/manager.py b/src/backend/langflow/services/chat/manager.py index 22750d25a..afc004d2d 100644 --- a/src/backend/langflow/services/chat/manager.py +++ b/src/backend/langflow/services/chat/manager.py @@ -191,7 +191,7 @@ class ChatManager(Service): json_payload = await websocket.receive_json() try: payload = orjson.loads(json_payload) - except TypeError: + except Exception: payload = json_payload if "clear_history" in payload: self.chat_history.history[client_id] = [] diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index acca662d3..8f56d1f49 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -26,6 +26,7 @@ import { CHAT_FORM_DIALOG_SUBTITLE } from "../../constants/constants"; import { TabsContext } from "../../contexts/tabsContext"; import { TabsState } from "../../types/tabs"; import { validateNodes } from "../../utils/reactflowUtils"; +import { AuthContext } from "../../contexts/authContext"; export default function FormModal({ flow, @@ -60,6 +61,7 @@ export default function FormModal({ const [chatHistory, setChatHistory] = useState([]); const { reactFlowInstance } = useContext(typesContext); + const {accessToken} = useContext(AuthContext); const { setErrorData } = useContext(alertContext); const ws = useRef(null); const [lockChat, setLockChat] = useState(false); @@ -160,7 +162,7 @@ export default function FormModal({ }, 1000); } } - + //TODO improve check of user authentication function getWebSocketUrl( chatId: string, isDevelopment: boolean = false @@ -173,7 +175,7 @@ export default function FormModal({ return `${ isDevelopment ? "ws" : webSocketProtocol - }://${host}${chatEndpoint}`; + }://${host}${chatEndpoint}?token=${accessToken}`; } function handleWsMessage(data: any) {