Skip to content

User

CLASS DESCRIPTION
OAuthAccountRead

Schema for storing essential OAuthAccount information within

UserCreate

Schema for User creation.

UserProfileInfo

Attributes:

UserRead

Schema for User read from database.

UserUpdate

Schema for User update.

UserUpdateGroups

Schema for POST /auth/users/{user_id}/set-groups/

UserUpdateStrict

Schema for User self-editing.

Attributes

Classes

OAuthAccountRead pydantic-model

Bases: BaseModel

Schema for storing essential OAuthAccount information within UserRead.oauth_accounts.

ATTRIBUTE DESCRIPTION
id

ID of the row in fractal-owned oauthaccount table.

TYPE: int

account_email

Email associated to OAuth account

TYPE: str

oauth_name

Name of the OAuth provider (e.g. github)

TYPE: str

Fields:

  • id (int)
  • account_email (str)
  • oauth_name (str)
Source code in fractal_server/app/schemas/user.py
class OAuthAccountRead(BaseModel):
    """
    Schema for storing essential `OAuthAccount` information within
    `UserRead.oauth_accounts`.

    Attributes:
        id: ID of the row in fractal-owned `oauthaccount` table.
        account_email: Email associated to OAuth account
        oauth_name: Name of the OAuth provider (e.g. `github`)
    """

    id: int
    account_email: str
    oauth_name: str

UserCreate

Bases: BaseUserCreate

Schema for User creation.

ATTRIBUTE DESCRIPTION
is_guest

TYPE: bool

profile_id

TYPE: int | None

project_dirs

TYPE: ListUniqueProjectDir

slurm_accounts

TYPE: list[str]

Source code in fractal_server/app/schemas/user.py
class UserCreate(schemas.BaseUserCreate):
    """
    Schema for `User` creation.

    Attributes:
        is_guest:
        profile_id:
        project_dirs:
        slurm_accounts:
    """

    is_guest: bool = False
    profile_id: int | None = None
    project_dirs: Annotated[
        ListUniqueProjectDir, AfterValidator(_validate_cmd_list)
    ] = Field(min_length=1)
    slurm_accounts: list[str] = Field(default_factory=list)

UserProfileInfo pydantic-model

Bases: BaseModel

ATTRIBUTE DESCRIPTION
has_profile

TYPE: bool

resource_name

TYPE: str | None

profile_name

TYPE: str | None

username

TYPE: str | None

Fields:

  • has_profile (bool)
  • resource_name (str | None)
  • profile_name (str | None)
  • username (str | None)
Source code in fractal_server/app/schemas/user.py
class UserProfileInfo(BaseModel):
    """
    Attributes:
        has_profile:
        resource_name:
        profile_name:
        username:
    """

    has_profile: bool
    resource_name: str | None = None
    profile_name: str | None = None
    username: str | None = None

UserRead

Bases: BaseUser[int]

Schema for User read from database.

ATTRIBUTE DESCRIPTION
is_guest

TYPE: bool

group_ids_names

TYPE: list[tuple[int, str]] | None

oauth_accounts

TYPE: list[OAuthAccountRead]

profile_id

TYPE: int | None

project_dirs

TYPE: list[str]

slurm_accounts

TYPE: list[str]

Source code in fractal_server/app/schemas/user.py
class UserRead(schemas.BaseUser[int]):
    """
    Schema for `User` read from database.

    Attributes:
        is_guest:
        group_ids_names:
        oauth_accounts:
        profile_id:
        project_dirs:
        slurm_accounts:

    """

    is_guest: bool
    group_ids_names: list[tuple[int, str]] | None = None
    oauth_accounts: list[OAuthAccountRead]
    profile_id: int | None = None
    project_dirs: list[str]
    slurm_accounts: list[str]

UserUpdate

Bases: BaseUserUpdate

Schema for User update.

ATTRIBUTE DESCRIPTION
password

TYPE: NonEmptyStr

email

TYPE: EmailStr

is_active

TYPE: bool

is_superuser

TYPE: bool

is_verified

TYPE: bool

is_guest

TYPE: bool

profile_id

TYPE: int | None

project_dirs

TYPE: ListUniqueProjectDir

slurm_accounts

TYPE: ListUniqueNonEmptyString

Source code in fractal_server/app/schemas/user.py
class UserUpdate(schemas.BaseUserUpdate):
    """
    Schema for `User` update.

    Attributes:
        password:
        email:
        is_active:
        is_superuser:
        is_verified:
        is_guest:
        profile_id:
        project_dirs:
        slurm_accounts:
    """

    model_config = ConfigDict(extra="forbid")
    password: NonEmptyStr = None
    email: EmailStr = None
    is_active: bool = None
    is_superuser: bool = None
    is_verified: bool = None
    is_guest: bool = None
    profile_id: int | None = None
    project_dirs: Annotated[
        ListUniqueProjectDir, AfterValidator(_validate_cmd_list)
    ] = Field(default=None, min_length=1)
    slurm_accounts: ListUniqueNonEmptyString = None

UserUpdateGroups pydantic-model

Bases: BaseModel

Schema for POST /auth/users/{user_id}/set-groups/

ATTRIBUTE DESCRIPTION
group_ids

TYPE: ListUniqueNonNegativeInt

Config:

  • extra: forbid

Fields:

Source code in fractal_server/app/schemas/user.py
class UserUpdateGroups(BaseModel):
    """
    Schema for `POST /auth/users/{user_id}/set-groups/`

    Attributes:
        group_ids:
    """

    model_config = ConfigDict(extra="forbid")

    group_ids: ListUniqueNonNegativeInt = Field(min_length=1)

UserUpdateStrict pydantic-model

Bases: BaseModel

Schema for User self-editing.

ATTRIBUTE DESCRIPTION
slurm_accounts

TYPE: ListUniqueNonEmptyString

Config:

  • extra: forbid

Fields:

Source code in fractal_server/app/schemas/user.py
class UserUpdateStrict(BaseModel):
    """
    Schema for `User` self-editing.

    Attributes:
        slurm_accounts:
    """

    model_config = ConfigDict(extra="forbid")
    slurm_accounts: ListUniqueNonEmptyString = None

Functions: