From 19e3d07bafd6fca192f3b49f44e204c8cfe3c555 Mon Sep 17 00:00:00 2001 From: QuantumGhost Date: Tue, 27 Jan 2026 18:31:41 +0800 Subject: [PATCH] Update HumanInputFormDefinition.expiration_time to use unix timestamp in seconds (vibe-kanban d44e8e03) The type of this field should be `int`. --- api/core/entities/execution_extra_content.py | 3 +-- .../sqlalchemy_execution_extra_content_repository.py | 2 +- .../test_sqlalchemy_execution_extra_content_repository.py | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/api/core/entities/execution_extra_content.py b/api/core/entities/execution_extra_content.py index 4fcb3e4395..46006f4381 100644 --- a/api/core/entities/execution_extra_content.py +++ b/api/core/entities/execution_extra_content.py @@ -1,7 +1,6 @@ from __future__ import annotations from collections.abc import Mapping, Sequence -from datetime import datetime from typing import Any, TypeAlias from pydantic import BaseModel, ConfigDict, Field @@ -22,7 +21,7 @@ class HumanInputFormDefinition(BaseModel): display_in_ui: bool = False form_token: str | None = None resolved_default_values: Mapping[str, Any] = Field(default_factory=dict) - expiration_time: datetime + expiration_time: int class HumanInputFormSubmissionData(BaseModel): diff --git a/api/repositories/sqlalchemy_execution_extra_content_repository.py b/api/repositories/sqlalchemy_execution_extra_content_repository.py index 3ddcf89ac0..ce9015ad2f 100644 --- a/api/repositories/sqlalchemy_execution_extra_content_repository.py +++ b/api/repositories/sqlalchemy_execution_extra_content_repository.py @@ -138,7 +138,7 @@ class SQLAlchemyExecutionExtraContentRepository(ExecutionExtraContentRepository) display_in_ui=display_in_ui, form_token=form_token, resolved_default_values=form_definition.default_values, - expiration_time=form.expiration_time, + expiration_time=int(form.expiration_time.timestamp()), ), ) diff --git a/api/tests/unit_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py b/api/tests/unit_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py index e4250bf23f..f5428b46ff 100644 --- a/api/tests/unit_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py +++ b/api/tests/unit_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py @@ -167,7 +167,7 @@ def test_get_by_message_ids_returns_unsubmitted_form_definition() -> None: assert domain_content.submitted is False assert domain_content.workflow_run_id == "workflow-run" assert domain_content.form_definition is not None - assert domain_content.form_definition.expiration_time == form.expiration_time + assert domain_content.form_definition.expiration_time == int(form.expiration_time.timestamp()) assert domain_content.form_definition is not None form_definition = domain_content.form_definition assert form_definition.form_id == "form-1" @@ -177,4 +177,4 @@ def test_get_by_message_ids_returns_unsubmitted_form_definition() -> None: assert form_definition.display_in_ui is True assert form_definition.form_token == "token-1" assert form_definition.resolved_default_values == {"name": "John"} - assert form_definition.expiration_time == form.expiration_time + assert form_definition.expiration_time == int(form.expiration_time.timestamp())