main
py 59 lines 1.85 KB
Raw
1 """add SSO tables
2
3 Revision ID: a1b2c3d4e5f6
4 Revises: 72635705c067
5 Create Date: 2026-03-22 00:00:00.000000
6
7 """
8 import sqlalchemy as sa
9
10 from alembic import op
11
12 # revision identifiers, used by Alembic.
13 revision = "a1b2c3d4e5f6"
14 down_revision = "85ea2970828c"
15 branch_labels = None
16 depends_on = None
17
18
19 def upgrade() -> None:
20 op.create_table(
21 "sso_config",
22 sa.Column("id", sa.Integer(), primary_key=True, autoincrement=True),
23 sa.Column("sso_enabled", sa.Boolean(), server_default="0", nullable=False),
24 # Azure Entra ID
25 sa.Column("azure_enabled", sa.Boolean(), server_default="0", nullable=False),
26 sa.Column("azure_tenant_id", sa.String(256), nullable=True),
27 sa.Column("azure_client_id", sa.String(256), nullable=True),
28 sa.Column("azure_client_secret", sa.String(512), nullable=True),
29 sa.Column("azure_redirect_uri", sa.String(512), nullable=True),
30 # Cloudflare Access
31 sa.Column("cf_enabled", sa.Boolean(), server_default="0", nullable=False),
32 sa.Column("cf_team_domain", sa.String(256), nullable=True),
33 sa.Column("cf_audience", sa.String(512), nullable=True),
34 sa.Column(
35 "updated_at",
36 sa.DateTime(),
37 server_default=sa.func.now(),
38 onupdate=sa.func.now(),
39 nullable=False,
40 ),
41 )
42
43 op.create_table(
44 "sso_allowed_email",
45 sa.Column("id", sa.Integer(), primary_key=True, autoincrement=True),
46 sa.Column("email", sa.String(256), nullable=False, index=True),
47 sa.Column("role_id", sa.Integer(), server_default="2", nullable=False),
48 sa.Column(
49 "created_at",
50 sa.DateTime(),
51 server_default=sa.func.now(),
52 nullable=False,
53 ),
54 )
55
56
57 def downgrade() -> None:
58 op.drop_table("sso_allowed_email")
59 op.drop_table("sso_config")