From 30eb5803061235651bec554356fce3b8d95ff9d3 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Fri, 1 Aug 2025 11:06:34 -0700 Subject: [PATCH] update token_type to string instead of enum (#3087) --- ...dd_1password_service_account_token_type.py | 44 +++++++++++++++++++ skyvern/forge/sdk/db/enums.py | 1 + skyvern/forge/sdk/db/models.py | 5 +-- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 alembic/versions/2025_08_01_1631-2e58ef1b3d8b_add_1password_service_account_token_type.py diff --git a/alembic/versions/2025_08_01_1631-2e58ef1b3d8b_add_1password_service_account_token_type.py b/alembic/versions/2025_08_01_1631-2e58ef1b3d8b_add_1password_service_account_token_type.py new file mode 100644 index 00000000..43e5b4b9 --- /dev/null +++ b/alembic/versions/2025_08_01_1631-2e58ef1b3d8b_add_1password_service_account_token_type.py @@ -0,0 +1,44 @@ +"""add 1password service account token type + +Revision ID: 2e58ef1b3d8b +Revises: 1b2a8b62de61 +Create Date: 2025-08-01 16:31:37.315522+00:00 + +""" + +from typing import Sequence, Union + +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +from alembic import op + +# revision identifiers, used by Alembic. +revision: str = "2e58ef1b3d8b" +down_revision: Union[str, None] = "1b2a8b62de61" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column( + "organization_auth_tokens", + "token_type", + existing_type=postgresql.ENUM("api", name="organizationauthtokentype"), + type_=sa.String(), + existing_nullable=False, + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column( + "organization_auth_tokens", + "token_type", + existing_type=sa.String(), + type_=postgresql.ENUM("api", name="organizationauthtokentype"), + existing_nullable=False, + ) + # ### end Alembic commands ### diff --git a/skyvern/forge/sdk/db/enums.py b/skyvern/forge/sdk/db/enums.py index 99ecc30b..eea33f35 100644 --- a/skyvern/forge/sdk/db/enums.py +++ b/skyvern/forge/sdk/db/enums.py @@ -3,6 +3,7 @@ from enum import StrEnum class OrganizationAuthTokenType(StrEnum): api = "api" + onepassword_service_account = "onepassword_service_account" class TaskType(StrEnum): diff --git a/skyvern/forge/sdk/db/models.py b/skyvern/forge/sdk/db/models.py index 21b382c7..96ac1bd0 100644 --- a/skyvern/forge/sdk/db/models.py +++ b/skyvern/forge/sdk/db/models.py @@ -5,7 +5,6 @@ from sqlalchemy import ( Boolean, Column, DateTime, - Enum, ForeignKey, Index, Integer, @@ -18,7 +17,7 @@ from sqlalchemy import ( from sqlalchemy.ext.asyncio import AsyncAttrs from sqlalchemy.orm import DeclarativeBase -from skyvern.forge.sdk.db.enums import OrganizationAuthTokenType, TaskType +from skyvern.forge.sdk.db.enums import TaskType from skyvern.forge.sdk.db.id import ( generate_action_id, generate_ai_suggestion_id, @@ -167,7 +166,7 @@ class OrganizationAuthTokenModel(Base): ) organization_id = Column(String, ForeignKey("organizations.organization_id"), index=True, nullable=False) - token_type = Column(Enum(OrganizationAuthTokenType), nullable=False) + token_type = Column(String, nullable=False) token = Column(String, index=True, nullable=False) valid = Column(Boolean, nullable=False, default=True)