Add variables_router to APIRouter

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-03-25 09:47:54 -03:00
commit 6d258a78ea
3 changed files with 50 additions and 4 deletions

View file

@ -12,6 +12,7 @@ from langflow.api.v1 import (
store_router, store_router,
users_router, users_router,
validate_router, validate_router,
variables_router,
) )
router = APIRouter( router = APIRouter(

View file

@ -1,7 +1,6 @@
import operator import operator
from pathlib import Path from pathlib import Path
from typing import (TYPE_CHECKING, Any, Callable, ClassVar, List, Optional, from typing import TYPE_CHECKING, Any, Callable, ClassVar, List, Optional, Sequence, Union
Sequence, Union)
from uuid import UUID from uuid import UUID
import yaml import yaml
@ -12,14 +11,14 @@ from sqlmodel import select
from langflow.interface.custom.code_parser.utils import ( from langflow.interface.custom.code_parser.utils import (
extract_inner_type_from_generic_alias, extract_inner_type_from_generic_alias,
extract_union_types_from_generic_alias) extract_union_types_from_generic_alias,
)
from langflow.interface.custom.custom_component.component import Component from langflow.interface.custom.custom_component.component import Component
from langflow.schema import Record from langflow.schema import Record
from langflow.schema.dotdict import dotdict from langflow.schema.dotdict import dotdict
from langflow.services.database.models.flow import Flow from langflow.services.database.models.flow import Flow
from langflow.services.database.utils import session_getter from langflow.services.database.utils import session_getter
from langflow.services.deps import get_db_service, get_storage_service, get_variable_service from langflow.services.deps import get_db_service, get_storage_service, get_variable_service
get_variable_service)
from langflow.services.storage.service import StorageService from langflow.services.storage.service import StorageService
from langflow.utils import validate from langflow.utils import validate

View file

@ -0,0 +1,46 @@
from datetime import UTC, datetime
from typing import TYPE_CHECKING, Optional
from uuid import UUID, uuid4
from sqlmodel import Field, Relationship, SQLModel
if TYPE_CHECKING:
from langflow.services.database.models.user.model import User
def utc_now():
return datetime.now(UTC)
class VariableBase(SQLModel):
name: Optional[str] = Field(None, description="Name of the variable")
value: Optional[str] = Field(None, description="Encrypted value of the variable")
type: Optional[str] = Field(None, description="Type of the variable")
class Variable(VariableBase, table=True):
id: Optional[UUID] = Field(default_factory=uuid4, primary_key=True, description="Unique ID for the variable")
# name is unique per user
created_at: datetime = Field(default_factory=utc_now, description="Creation time of the variable")
updated_at: Optional[datetime] = Field(None, description="Last update time of the variable")
# foreign key to user table
user_id: UUID = Field(description="User ID associated with this variable", foreign_key="user.id")
user: "User" = Relationship(back_populates="variables")
class VariableCreate(VariableBase):
# AcceptedProviders is a custom Enum
type: Optional[str] = Field(None, description="Type of the variable")
class VariableRead(SQLModel):
id: UUID
name: Optional[str] = Field(None, description="Name of the variable")
type: Optional[str] = Field(None, description="Type of the variable")
class VariableUpdate(SQLModel):
id: UUID # Include the ID for updating
name: Optional[str] = Field(None, description="Name of the variable")
value: Optional[str] = Field(None, description="Encrypted value of the variable")