diff --git a/alembic/versions/29933f2b894d_adds_integration_providers.py b/alembic/versions/29933f2b894d_adds_integration_providers.py new file mode 100644 index 00000000..f2a42458 --- /dev/null +++ b/alembic/versions/29933f2b894d_adds_integration_providers.py @@ -0,0 +1,87 @@ +"""adds integration providers + +Revision ID: 29933f2b894d +Revises: eb96f9b82cc1 +Create Date: 2025-05-20 09:30:01.172135 + +""" + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = "29933f2b894d" +down_revision = "eb96f9b82cc1" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table( + "integration_access", + sa.Column("id", postgresql.UUID(as_uuid=True), nullable=False), + sa.Column("created_by", postgresql.UUID(as_uuid=True), nullable=True), + sa.Column("created_at", sa.DateTime(), nullable=True), + sa.Column("organization_id", postgresql.UUID(as_uuid=True), nullable=True), + sa.Column("integration_types", sa.ARRAY(sa.String()), nullable=True), + sa.ForeignKeyConstraint(["created_by"], ["user.id"], ondelete="SET NULL"), + sa.ForeignKeyConstraint( + ["organization_id"], ["organization.id"], ondelete="CASCADE" + ), + sa.PrimaryKeyConstraint("id"), + schema="cognition", + ) + op.create_index( + op.f("ix_cognition_integration_access_organization_id"), + "integration_access", + ["organization_id"], + unique=False, + schema="cognition", + ) + op.create_table( + "integration", + sa.Column("id", postgresql.UUID(as_uuid=True), nullable=False), + sa.Column("project_id", postgresql.UUID(as_uuid=True), nullable=True), + sa.Column("created_by", postgresql.UUID(as_uuid=True), nullable=True), + sa.Column("created_at", sa.DateTime(), nullable=True), + sa.Column("name", sa.String(), nullable=True), + sa.Column("description", sa.String(), nullable=True), + sa.Column("tokenizer", sa.String(), nullable=True), + sa.Column("state", sa.String(), nullable=True), + sa.Column("type", sa.String(), nullable=True), + sa.Column("config", sa.JSON(), nullable=True), + sa.Column("llm_config", sa.JSON(), nullable=True), + sa.Column("error_message", sa.String(), nullable=True), + sa.Column("extract_history", sa.JSON(), nullable=True), + sa.ForeignKeyConstraint(["created_by"], ["user.id"], ondelete="SET NULL"), + sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"), + sa.PrimaryKeyConstraint("id"), + schema="cognition", + ) + op.create_index( + op.f("ix_cognition_integration_project_id"), + "integration", + ["project_id"], + unique=False, + schema="cognition", + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index( + op.f("ix_cognition_integration_project_id"), + table_name="integration", + schema="cognition", + ) + op.drop_table("integration", schema="cognition") + op.drop_index( + op.f("ix_cognition_integration_access_organization_id"), + table_name="integration_access", + schema="cognition", + ) + op.drop_table("integration_access", schema="cognition") + # ### end Alembic commands ### diff --git a/controller/monitor/manager.py b/controller/monitor/manager.py index 289f65ce..036541b9 100644 --- a/controller/monitor/manager.py +++ b/controller/monitor/manager.py @@ -115,3 +115,15 @@ def cancel_parse_cognition_file_task( transformation_key, with_commit=True, ) + + +def cancel_integration_task( + task_info: Dict[str, Any], +) -> None: + + integration_id = task_info.get("integrationId") + + task_monitor.set_integration_task_to_failed( + integration_id, + with_commit=True, + ) diff --git a/fast_api/routes/misc.py b/fast_api/routes/misc.py index d8f5ed09..30033783 100644 --- a/fast_api/routes/misc.py +++ b/fast_api/routes/misc.py @@ -129,6 +129,8 @@ def cancel_task( controller_manager.cancel_parse_cognition_file_task( task_entity.organization_id, task_info ) + elif task_type == enums.TaskType.INTEGRATION.value: + controller_manager.cancel_integration_task(task_info) else: raise ValueError(f"{task_type} is no valid task type") diff --git a/submodules/model b/submodules/model index 9d0ecff3..6fd36565 160000 --- a/submodules/model +++ b/submodules/model @@ -1 +1 @@ -Subproject commit 9d0ecff36599cf1bc79da80c6db788ba36208171 +Subproject commit 6fd36565c03d8133b0a7d308656214966a3b0fd5