mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-08 20:30:59 +00:00
404e3466d9
* feat(cloud): add scoped support admin sessions * style(web): format support admin session changes * fix(cloud): isolate support adapter sessions * fix(cloud): authenticate plugin assets and report workspace resources --------- Co-authored-by: dadachann <185672915+dadachann@users.noreply.github.com>
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
import sqlalchemy
|
|
|
|
from .base import Base
|
|
|
|
|
|
class SupportAdminTemporarySession(Base):
|
|
"""Temporary support-admin Workspace access session."""
|
|
|
|
__tablename__ = 'support_admin_temporary_sessions'
|
|
|
|
grant_jti_hash = sqlalchemy.Column(sqlalchemy.String(64), primary_key=True)
|
|
workspace_uuid = sqlalchemy.Column(
|
|
sqlalchemy.String(36),
|
|
sqlalchemy.ForeignKey('workspaces.uuid', ondelete='CASCADE'),
|
|
nullable=False,
|
|
)
|
|
actor_account_uuid = sqlalchemy.Column(sqlalchemy.String(36), nullable=False)
|
|
issued_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False)
|
|
expires_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False)
|
|
revoked_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=True)
|
|
last_used_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=True)
|
|
|
|
__table_args__ = (
|
|
sqlalchemy.Index(
|
|
'ix_support_admin_sessions_workspace_expiry',
|
|
'workspace_uuid',
|
|
'expires_at',
|
|
),
|
|
sqlalchemy.CheckConstraint(
|
|
'length(grant_jti_hash) = 64',
|
|
name='ck_support_admin_sessions_grant_jti_hash',
|
|
),
|
|
)
|