Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions autobot-backend/user_management/models/api_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
from typing import TYPE_CHECKING, Optional

from sqlalchemy import Boolean, DateTime, ForeignKey, String
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.types import Uuid
from user_management.models.base import Base, TimestampMixin

if TYPE_CHECKING:
Expand All @@ -40,7 +41,7 @@ class APIKey(Base, TimestampMixin):
__tablename__ = "api_keys"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)
Expand All @@ -62,15 +63,15 @@ class APIKey(Base, TimestampMixin):

# Owner (always required)
user_id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("users.id", ondelete="CASCADE"),
nullable=False,
index=True,
)

# Optional team scope
team_id: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("teams.id", ondelete="CASCADE"),
nullable=True,
index=True,
Expand Down Expand Up @@ -126,7 +127,7 @@ class APIKey(Base, TimestampMixin):
)

revoked_by: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("users.id", ondelete="SET NULL"),
nullable=True,
)
Expand Down
11 changes: 6 additions & 5 deletions autobot-backend/user_management/models/audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
from typing import Optional

from sqlalchemy import DateTime, ForeignKey, Index, String, func
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.types import Uuid
from user_management.models.base import Base


Expand All @@ -28,22 +29,22 @@ class AuditLog(Base):
__tablename__ = "audit_logs"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)

# Organization context (nullable for platform-level events)
org_id: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("organizations.id", ondelete="SET NULL"),
nullable=True,
index=True,
)

# Actor (who performed the action)
user_id: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("users.id", ondelete="SET NULL"),
nullable=True,
index=True,
Expand All @@ -65,7 +66,7 @@ class AuditLog(Base):

# Resource ID affected
resource_id: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
nullable=True,
)

Expand Down
5 changes: 3 additions & 2 deletions autobot-backend/user_management/models/organization.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@
from typing import TYPE_CHECKING, Optional

from sqlalchemy import Boolean, DateTime, Integer, String, Text
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.types import Uuid
from user_management.models.base import Base, TimestampMixin

if TYPE_CHECKING:
Expand All @@ -41,7 +42,7 @@ class Organization(Base, TimestampMixin):
__tablename__ = "organizations"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)
Expand Down
13 changes: 7 additions & 6 deletions autobot-backend/user_management/models/sso.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@

from constants.threshold_constants import CategoryDefaults
from sqlalchemy import Boolean, DateTime, ForeignKey, String, UniqueConstraint
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.types import Uuid
from user_management.models.base import Base, TimestampMixin

if TYPE_CHECKING:
Expand Down Expand Up @@ -52,14 +53,14 @@ class SSOProvider(Base, TimestampMixin):
__tablename__ = "sso_providers"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)

# Organization (nullable for global/social providers)
org_id: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("organizations.id", ondelete="CASCADE"),
nullable=True,
index=True,
Expand Down Expand Up @@ -171,20 +172,20 @@ class UserSSOLink(Base, TimestampMixin):
__tablename__ = "user_sso_links"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)

user_id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("users.id", ondelete="CASCADE"),
nullable=False,
index=True,
)

provider_id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("sso_providers.id", ondelete="CASCADE"),
nullable=False,
index=True,
Expand Down
11 changes: 6 additions & 5 deletions autobot-backend/user_management/models/team.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@
from typing import TYPE_CHECKING, Optional

from sqlalchemy import Boolean, DateTime, ForeignKey, String, Text, UniqueConstraint
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.types import Uuid
from user_management.models.base import Base, TenantMixin, TimestampMixin

if TYPE_CHECKING:
Expand Down Expand Up @@ -47,7 +48,7 @@ class Team(Base, TenantMixin, TimestampMixin):
__tablename__ = "teams"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)
Expand Down Expand Up @@ -149,20 +150,20 @@ class TeamMembership(Base, TimestampMixin):
__tablename__ = "team_memberships"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)

team_id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("teams.id", ondelete="CASCADE"),
nullable=False,
index=True,
)

user_id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("users.id", ondelete="CASCADE"),
nullable=False,
index=True,
Expand Down
7 changes: 4 additions & 3 deletions autobot-backend/user_management/models/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
from typing import TYPE_CHECKING, Optional

from sqlalchemy import Boolean, DateTime, ForeignKey, String, Text
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.types import Uuid
from user_management.models.base import Base, TimestampMixin

if TYPE_CHECKING:
Expand Down Expand Up @@ -53,14 +54,14 @@ class User(Base, TimestampMixin):
__tablename__ = "users"

id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
)

# Organization association (nullable for platform admins in provider mode)
org_id: Mapped[Optional[uuid.UUID]] = mapped_column(
UUID(as_uuid=True),
Uuid(as_uuid=True),
ForeignKey("organizations.id", ondelete="CASCADE"),
nullable=True,
index=True,
Expand Down
Loading