From 90b2c9d577d00436d5a78268726624bd84aae7c4 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Wed, 9 Oct 2024 13:27:23 -0300 Subject: [PATCH] fix: rollback truncate values on transaction/vertex tables (#4078) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 📝 (model.py): Add field serializers to truncate long strings in outputs, data, and artifacts fields for better data handling and readability. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../services/database/models/transactions/model.py | 8 +++++++- .../services/database/models/vertex_builds/model.py | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/backend/base/langflow/services/database/models/transactions/model.py b/src/backend/base/langflow/services/database/models/transactions/model.py index 68edddde7..972284948 100644 --- a/src/backend/base/langflow/services/database/models/transactions/model.py +++ b/src/backend/base/langflow/services/database/models/transactions/model.py @@ -2,12 +2,14 @@ from datetime import datetime, timezone from typing import TYPE_CHECKING from uuid import UUID, uuid4 -from pydantic import field_validator +from pydantic import field_serializer, field_validator from sqlmodel import JSON, Column, Field, Relationship, SQLModel if TYPE_CHECKING: from langflow.services.database.models.flow.model import Flow +from langflow.utils.util_strings import truncate_long_strings + class TransactionBase(SQLModel): timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) @@ -32,6 +34,10 @@ class TransactionBase(SQLModel): value = UUID(value) return value + @field_serializer("outputs") + def serialize_outputs(self, data) -> dict: + return truncate_long_strings(data) + class TransactionTable(TransactionBase, table=True): # type: ignore[call-arg] __tablename__ = "transaction" diff --git a/src/backend/base/langflow/services/database/models/vertex_builds/model.py b/src/backend/base/langflow/services/database/models/vertex_builds/model.py index 5abccaaa8..5b82dcdb9 100644 --- a/src/backend/base/langflow/services/database/models/vertex_builds/model.py +++ b/src/backend/base/langflow/services/database/models/vertex_builds/model.py @@ -9,6 +9,8 @@ from sqlmodel import JSON, Column, Field, Relationship, SQLModel if TYPE_CHECKING: from langflow.services.database.models.flow.model import Flow +from langflow.utils.util_strings import truncate_long_strings + class VertexBuildBase(SQLModel): timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) @@ -39,6 +41,14 @@ class VertexBuildBase(SQLModel): value = value.replace(tzinfo=timezone.utc) return value + @field_serializer("data") + def serialize_data(self, data: dict) -> dict: + return truncate_long_strings(data) + + @field_serializer("artifacts") + def serialize_artifacts(self, data) -> dict: + return truncate_long_strings(data) + class VertexBuildTable(VertexBuildBase, table=True): # type: ignore[call-arg] __tablename__ = "vertex_build"