* fix: quotation marks * diceware passphrase generation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Roland Tannous <rolandtannous@gravityq.ai> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-only
|
|
# Copyright 2026-present the Unsloth AI Inc. team. All rights reserved. See /studio/LICENSE.AGPL-3.0
|
|
|
|
"""
|
|
Pydantic schemas for Authentication API
|
|
"""
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class AuthLoginRequest(BaseModel):
|
|
"""Login payload: username/password to obtain a JWT."""
|
|
|
|
username: str = Field(..., description = "Username")
|
|
password: str = Field(..., description = "Password")
|
|
|
|
|
|
class RefreshTokenRequest(BaseModel):
|
|
"""Refresh token payload to obtain new access + refresh tokens."""
|
|
|
|
refresh_token: str = Field(
|
|
..., description = "Refresh token from a previous login or refresh"
|
|
)
|
|
|
|
|
|
class AuthStatusResponse(BaseModel):
|
|
"""Indicate whether the seeded admin auth flow is ready."""
|
|
|
|
initialized: bool = Field(
|
|
..., description = "True if the auth database contains a login user"
|
|
)
|
|
default_username: str = Field(..., description = "Default seeded admin username")
|
|
requires_password_change: bool = Field(
|
|
...,
|
|
description = "True if the seeded admin must still change the default password",
|
|
)
|
|
|
|
|
|
class ChangePasswordRequest(BaseModel):
|
|
"""Change the current user's password, typically on first login."""
|
|
|
|
current_password: str = Field(
|
|
..., min_length = 8, description = "Existing password for the authenticated user"
|
|
)
|
|
new_password: str = Field(
|
|
..., min_length = 8, description = "Replacement password (minimum 8 characters)"
|
|
)
|