diff --git a/backend/danswer/db/credentials.py b/backend/danswer/db/credentials.py index 5f4b83b47917..3ee165b34d0e 100644 --- a/backend/danswer/db/credentials.py +++ b/backend/danswer/db/credentials.py @@ -20,7 +20,6 @@ from danswer.db.models import DocumentByConnectorCredentialPair from danswer.db.models import User from danswer.db.models import User__UserGroup from danswer.server.documents.models import CredentialBase -from danswer.server.documents.models import CredentialDataUpdateRequest from danswer.utils.logger import setup_logger @@ -262,7 +261,8 @@ def _cleanup_credential__user_group_relationships__no_commit( def alter_credential( credential_id: int, - credential_data: CredentialDataUpdateRequest, + name: str, + credential_json: dict[str, Any], user: User, db_session: Session, ) -> Credential | None: @@ -272,11 +272,13 @@ def alter_credential( if credential is None: return None - credential.name = credential_data.name + credential.name = name - # Update only the keys present in credential_data.credential_json - for key, value in credential_data.credential_json.items(): - credential.credential_json[key] = value + # Assign a new dictionary to credential.credential_json + credential.credential_json = { + **credential.credential_json, + **credential_json, + } credential.user_id = user.id if user is not None else None db_session.commit() @@ -309,8 +311,8 @@ def update_credential_json( credential = fetch_credential_by_id(credential_id, user, db_session) if credential is None: return None - credential.credential_json = credential_json + credential.credential_json = credential_json db_session.commit() return credential diff --git a/backend/danswer/server/documents/credential.py b/backend/danswer/server/documents/credential.py index 602ca27ee5ce..160664e55c0b 100644 --- a/backend/danswer/server/documents/credential.py +++ b/backend/danswer/server/documents/credential.py @@ -181,7 +181,13 @@ def update_credential_data( user: User = Depends(current_user), db_session: Session = Depends(get_session), ) -> CredentialBase: - credential = alter_credential(credential_id, credential_update, user, db_session) + credential = alter_credential( + credential_id, + credential_update.name, + credential_update.credential_json, + user, + db_session, + ) if credential is None: raise HTTPException(