Skip to content

Commit 6bbec81

Browse files
authored
Merge pull request #65 from CyberCRI/Feature/infered_user_tables
Feature/infered user tables
2 parents 4a662ac + aba2451 commit 6bbec81

File tree

2 files changed

+147
-0
lines changed

2 files changed

+147
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
"""inferred_user
2+
3+
Revision ID: e354666f951d
4+
Revises: 89920abb7ff8
5+
Create Date: 2025-09-24 12:05:19.794659
6+
7+
"""
8+
9+
from typing import Sequence, Union
10+
11+
import sqlalchemy
12+
import sqlalchemy as sa
13+
from sqlalchemy.dialects import postgresql
14+
15+
from alembic import op
16+
17+
# revision identifiers, used by Alembic.
18+
revision: str = "e354666f951d"
19+
down_revision: Union[str, None] = "89920abb7ff8"
20+
branch_labels: Union[str, Sequence[str], None] = None
21+
depends_on: Union[str, Sequence[str], None] = None
22+
23+
24+
def upgrade() -> None:
25+
# ### commands auto generated by Alembic - please adjust! ###
26+
op.create_table(
27+
"inferred_user",
28+
sa.Column(
29+
"id",
30+
sa.Uuid(),
31+
server_default=sqlalchemy.func.gen_random_uuid(),
32+
nullable=False,
33+
),
34+
sa.Column(
35+
"created_at", postgresql.TIMESTAMP(), server_default="NOW()", nullable=False
36+
),
37+
sa.PrimaryKeyConstraint("id"),
38+
schema="user_related",
39+
)
40+
op.create_table(
41+
"session",
42+
sa.Column(
43+
"id",
44+
sa.Uuid(),
45+
server_default=sqlalchemy.func.gen_random_uuid(),
46+
nullable=False,
47+
),
48+
sa.Column("inferred_user_id", sa.Uuid(), nullable=False),
49+
sa.Column(
50+
"created_at", postgresql.TIMESTAMP(), server_default="NOW()", nullable=False
51+
),
52+
sa.Column("end_at", postgresql.TIMESTAMP(), nullable=False),
53+
sa.Column("host", sa.String(), nullable=True),
54+
sa.ForeignKeyConstraint(
55+
["inferred_user_id"],
56+
["user_related.inferred_user.id"],
57+
),
58+
sa.PrimaryKeyConstraint("id"),
59+
schema="user_related",
60+
)
61+
op.create_table(
62+
"endpoint_request",
63+
sa.Column(
64+
"id",
65+
sa.Uuid(),
66+
server_default=sqlalchemy.func.gen_random_uuid(),
67+
nullable=False,
68+
),
69+
sa.Column("session_id", sa.Uuid(), nullable=False),
70+
sa.Column("endpoint_name", sa.String(), nullable=False),
71+
sa.Column("http_code", sa.Integer(), nullable=False),
72+
sa.Column("message", sa.String(), nullable=True),
73+
sa.Column(
74+
"created_at", postgresql.TIMESTAMP(), server_default="NOW()", nullable=False
75+
),
76+
sa.ForeignKeyConstraint(
77+
["session_id"],
78+
["user_related.session.id"],
79+
),
80+
sa.PrimaryKeyConstraint("id"),
81+
schema="user_related",
82+
)
83+
84+
85+
def downgrade() -> None:
86+
op.drop_table("endpoint_request", schema="user_related")
87+
op.drop_table("session", schema="user_related")
88+
op.drop_table("inferred_user", schema="user_related")

welearn_datastack/data/db_models.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,3 +619,62 @@ class APIKeyManagement(Base):
619619
server_default="NOW()",
620620
onupdate=func.localtimestamp(),
621621
)
622+
623+
624+
class Session(Base):
625+
__tablename__ = "session"
626+
__table_args__ = {"schema": "user_related"}
627+
id: Mapped[UUID] = mapped_column(
628+
types.Uuid, primary_key=True, nullable=False, server_default="gen_random_uuid()"
629+
)
630+
inferred_user_id: Mapped[UUID] = mapped_column(
631+
types.Uuid,
632+
ForeignKey("user_related.inferred_user.id"),
633+
nullable=False,
634+
)
635+
created_at: Mapped[datetime] = mapped_column(
636+
TIMESTAMP(timezone=False),
637+
nullable=False,
638+
default=func.localtimestamp(),
639+
server_default="NOW()",
640+
)
641+
end_at: Mapped[datetime] = mapped_column(TIMESTAMP(timezone=False), nullable=False)
642+
host: Mapped[str | None]
643+
user = relationship("InferredUser", foreign_keys=[inferred_user_id])
644+
645+
646+
class InferredUser(Base):
647+
__tablename__ = "inferred_user"
648+
__table_args__ = {"schema": "user_related"}
649+
id: Mapped[UUID] = mapped_column(
650+
types.Uuid, primary_key=True, nullable=False, server_default="gen_random_uuid()"
651+
)
652+
created_at: Mapped[datetime] = mapped_column(
653+
TIMESTAMP(timezone=False),
654+
nullable=False,
655+
default=func.localtimestamp(),
656+
server_default="NOW()",
657+
)
658+
659+
660+
class EndpointRequest(Base):
661+
__tablename__ = "endpoint_request"
662+
__table_args__ = {"schema": "user_related"}
663+
id: Mapped[UUID] = mapped_column(
664+
types.Uuid, primary_key=True, nullable=False, server_default="gen_random_uuid()"
665+
)
666+
session_id: Mapped[UUID] = mapped_column(
667+
types.Uuid,
668+
ForeignKey("user_related.session.id"),
669+
nullable=False,
670+
)
671+
endpoint_name: Mapped[str]
672+
http_code: Mapped[int]
673+
message: Mapped[str | None]
674+
created_at: Mapped[datetime] = mapped_column(
675+
TIMESTAMP(timezone=False),
676+
nullable=False,
677+
default=func.localtimestamp(),
678+
server_default="NOW()",
679+
)
680+
session = relationship("Session", foreign_keys=[session_id])

0 commit comments

Comments
 (0)