feat: service token introduction

This commit is contained in:
2026-08-18 19:56:14 +07:00
parent 3d79ffb384
commit 3b7606107b
12 changed files with 170 additions and 14 deletions

View File

@@ -0,0 +1,26 @@
from datetime import UTC, datetime
from sqlalchemy import TEXT, DateTime, Enum
from sqlalchemy.orm import Mapped, mapped_column
from db.base import Base
from schemas.enums import ServiceSignatureStatus
class ServiceSignature(Base):
__tablename__ = "service_signatures"
kid: Mapped[str] = mapped_column(TEXT, unique=True, nullable=False, primary_key=True)
public_key: Mapped[str] = mapped_column(TEXT, nullable=False)
service_name: Mapped[str] = mapped_column(TEXT, nullable=True)
status: Mapped[ServiceSignatureStatus] = mapped_column(
Enum(ServiceSignatureStatus, name="servicesignaturestatus"),
nullable=False,
default=ServiceSignatureStatus.INACTIVE,
)
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True),
nullable=False,
default=lambda: datetime.now(UTC),
)
revoked_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=True)