From 4e4338f79e59b1941f0d1ae8d332b0d937a9d5b2 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Mon, 15 Apr 2024 09:30:10 -0300 Subject: [PATCH] Update API key creation and bump version to 0.6.16 (#1704) * Update API key creation with optional created_at field * Bump version to 0.6.16 in pyproject.toml * Update last_used_at field in ApiKeyBase model --- pyproject.toml | 2 +- .../langflow/services/database/models/api_key/crud.py | 1 + .../services/database/models/api_key/model.py | 11 +++++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 417d4cdd71e4..8c38e2cd1ade 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "langflow" -version = "0.6.15" +version = "0.6.16" description = "A Python package with a built-in web application" authors = ["Logspace "] maintainers = [ diff --git a/src/backend/langflow/services/database/models/api_key/crud.py b/src/backend/langflow/services/database/models/api_key/crud.py index 33bdc757995d..37fe08cd15fc 100644 --- a/src/backend/langflow/services/database/models/api_key/crud.py +++ b/src/backend/langflow/services/database/models/api_key/crud.py @@ -24,6 +24,7 @@ def create_api_key(session: Session, api_key_create: ApiKeyCreate, user_id: UUID api_key=generated_api_key, name=api_key_create.name, user_id=user_id, + created_at=api_key_create.created_at or datetime.datetime.now(datetime.timezone.utc), ) session.add(api_key) diff --git a/src/backend/langflow/services/database/models/api_key/model.py b/src/backend/langflow/services/database/models/api_key/model.py index 776c4bb7e723..d73f03b8b9c1 100644 --- a/src/backend/langflow/services/database/models/api_key/model.py +++ b/src/backend/langflow/services/database/models/api_key/model.py @@ -3,16 +3,20 @@ from uuid import UUID, uuid4 from pydantic import validator -from sqlmodel import Field, Relationship, SQLModel, Field, Column, func, DateTime +from sqlmodel import Column, DateTime, Field, Relationship, SQLModel, func if TYPE_CHECKING: from langflow.services.database.models.user import User +def utcnow(): + return datetime.now() + + class ApiKeyBase(SQLModel): name: Optional[str] = Field(index=True, nullable=True, default=None) created_at: datetime = Field(sa_column=Column(DateTime(timezone=True), server_default=func.now())) - last_used_at: Optional[datetime] = Field(sa_column=Column(DateTime(timezone=True))) + last_used_at: Optional[datetime] = Field(None, sa_column=Column(DateTime(timezone=True))) total_uses: int = Field(default=0) is_active: bool = Field(default=True) @@ -32,6 +36,9 @@ class ApiKey(ApiKeyBase, table=True): class ApiKeyCreate(ApiKeyBase): api_key: Optional[str] = None user_id: Optional[UUID] = None + created_at: Optional[datetime] = Field( + default_factory=utcnow, description="The date and time the API key was created" + ) class UnmaskedApiKeyRead(ApiKeyBase):