🔒 chore(flows.py): add support for removing API keys from flow data if save_api_keys setting is False

The `remove_api_keys` function is now called on the `flow_data` dictionary if the `save_api_keys` setting is False. This ensures that sensitive information is not saved in the database.
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-06-15 18:16:02 -03:00
commit da24690bf7

View file

@ -1,5 +1,7 @@
from typing import List
from uuid import UUID
from langflow import settings
from langflow.api.utils import remove_api_keys
from langflow.api.v1.schemas import FlowListCreate, FlowListRead
from langflow.database.models.flow import (
Flow,
@ -54,10 +56,13 @@ def update_flow(
*, session: Session = Depends(get_session), flow_id: UUID, flow: FlowUpdate
):
"""Update a flow."""
db_flow = session.get(Flow, flow_id)
if not db_flow:
raise HTTPException(status_code=404, detail="Flow not found")
flow_data = flow.dict(exclude_unset=True)
if settings.save_api_keys:
flow_data = remove_api_keys(flow_data)
for key, value in flow_data.items():
setattr(db_flow, key, value)
session.add(db_flow)