{ "module": "jwtlib.models", "content": { "path": "jwtlib.models", "docstring": "# Summary\n\n`jwtlib` Models: Structured Data for Authentication.\n\nThis package defines the core data models used by `jwtlib`. These models are\ncategorized into request payloads, response objects, persistence documents,\nand security context.\n\n---\n\n# Model Categories\n\n**API Requests:**\n\n- `RegisterRequest`: Payload for creating new user accounts.\n- `LoginRequest`: User credentials for issuing `JWT`s.\n- `IntrospectRequest`: Internal payload for service-to-service token\n verification.\n\n**API Responses:**\n\n- `PublicUser`: A safe, non-sensitive projection of a user profile.\n- `LoginResponse`: Contains the issued access token and the `PublicUser`.\n- `LogoutResponse`: Instruction for clients to clear stateless session state.\n\n**Internal & Security:**\n\n- `User`: The MongoDB-backed persistence model (Confined to repository layer).\n- `TokenPayload`: Decoded claims from a validated `JWT` (`sub`, `exp`).\n- `IntrospectResponse`: Structured result of a token validity check.\n\n---\n\n# Usage\n\n**Validating an Auth Request:**\n\n```python\nfrom jwtlib.models import LoginRequest\nauth_data = LoginRequest(username=\"tester\", password=\"secure_password\")\n```\n\n**Projecting a User to Public View:**\n\n```python\nfrom jwtlib.models import User, PublicUser\nuser_profile = PublicUser.model_validate(db_user, from_attributes=True)\n```\n\n---\n\n# Public API\n\nThis package re-exports all **validated data models** required by the\nauthentication system. Consumers should import from this namespace\nto ensure type safety and consistency.\n\n- `LoginRequest` / `LoginResponse`\n- `RegisterRequest`\n- `LogoutResponse`\n- `PublicUser`\n- `IntrospectRequest` / `IntrospectResponse`\n- `User` (Persistence)\n- `TokenPayload` (`JWT`)\n\n---", "objects": { "LoginRequest": { "name": "LoginRequest", "kind": "class", "path": "jwtlib.models.LoginRequest", "signature": "", "docstring": "Payload for authenticating a user and issuing a `JWT`.\n\nAttributes:\n username (str):\n Username identifier.\n password (str):\n Plain-text password to be verified.", "members": { "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.LoginRequest.model_config", "signature": "", "docstring": null }, "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.LoginRequest.username", "signature": "", "docstring": null }, "password": { "name": "password", "kind": "attribute", "path": "jwtlib.models.LoginRequest.password", "signature": "", "docstring": null } } }, "RegisterRequest": { "name": "RegisterRequest", "kind": "class", "path": "jwtlib.models.RegisterRequest", "signature": "", "docstring": "Payload for registering a new user account.\n\nAttributes:\n username (str):\n Unique username identifier.\n email (EmailStr, optional):\n User's email address.\n password (str):\n Plain-text password (to be hashed by the repository layer).", "members": { "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.RegisterRequest.model_config", "signature": "", "docstring": null }, "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.RegisterRequest.username", "signature": "", "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.RegisterRequest.email", "signature": "", "docstring": null }, "password": { "name": "password", "kind": "attribute", "path": "jwtlib.models.RegisterRequest.password", "signature": "", "docstring": null } } }, "LoginResponse": { "name": "LoginResponse", "kind": "class", "path": "jwtlib.models.LoginResponse", "signature": "", "docstring": "Response returned after successful authentication.\n\nAttributes:\n access_token (str):\n `JWT` access token for authenticated requests.\n user (PublicUser):\n Public profile of the authenticated user.", "members": { "access_token": { "name": "access_token", "kind": "attribute", "path": "jwtlib.models.LoginResponse.access_token", "signature": "", "docstring": null }, "user": { "name": "user", "kind": "attribute", "path": "jwtlib.models.LoginResponse.user", "signature": "", "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.LoginResponse.model_config", "signature": "", "docstring": null } } }, "LogoutResponse": { "name": "LogoutResponse", "kind": "class", "path": "jwtlib.models.LogoutResponse", "signature": "", "docstring": "Response returned after a logout operation.\n\nAttributes:\n message (str):\n Human-readable logout confirmation.", "members": { "message": { "name": "message", "kind": "attribute", "path": "jwtlib.models.LogoutResponse.message", "signature": "", "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.LogoutResponse.model_config", "signature": "", "docstring": null } } }, "PublicUser": { "name": "PublicUser", "kind": "class", "path": "jwtlib.models.PublicUser", "signature": "", "docstring": "Public-facing user representation returned by authentication APIs.\n\nAttributes:\n username (str):\n Unique username identifier.\n email (EmailStr, optional):\n User's email address.\n is_active (bool):\n Whether the user account is active.", "members": { "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.PublicUser.model_config", "signature": "", "docstring": null }, "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.PublicUser.username", "signature": "", "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.PublicUser.email", "signature": "", "docstring": null }, "is_active": { "name": "is_active", "kind": "attribute", "path": "jwtlib.models.PublicUser.is_active", "signature": "", "docstring": null } } }, "IntrospectRequest": { "name": "IntrospectRequest", "kind": "class", "path": "jwtlib.models.IntrospectRequest", "signature": "", "docstring": "Payload for requesting token introspection.\n\nAttributes:\n token (str):\n `JWT` access token to introspect.", "members": { "token": { "name": "token", "kind": "attribute", "path": "jwtlib.models.IntrospectRequest.token", "signature": "", "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.IntrospectRequest.model_config", "signature": "", "docstring": null } } }, "IntrospectResponse": { "name": "IntrospectResponse", "kind": "class", "path": "jwtlib.models.IntrospectResponse", "signature": "", "docstring": "Result of a token introspection operation.\n\nAttributes:\n active (bool):\n Indicates whether the token is valid and active.\n user (Optional[PublicUser]):\n Public user details if the token is valid; otherwise null.", "members": { "active": { "name": "active", "kind": "attribute", "path": "jwtlib.models.IntrospectResponse.active", "signature": "", "docstring": null }, "user": { "name": "user", "kind": "attribute", "path": "jwtlib.models.IntrospectResponse.user", "signature": "", "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.IntrospectResponse.model_config", "signature": "", "docstring": null }, "jwt_error": { "name": "jwt_error", "kind": "function", "path": "jwtlib.models.IntrospectResponse.jwt_error", "signature": "", "docstring": null }, "no_username": { "name": "no_username", "kind": "function", "path": "jwtlib.models.IntrospectResponse.no_username", "signature": "", "docstring": null }, "no_user": { "name": "no_user", "kind": "function", "path": "jwtlib.models.IntrospectResponse.no_user", "signature": "", "docstring": null }, "valid_user": { "name": "valid_user", "kind": "function", "path": "jwtlib.models.IntrospectResponse.valid_user", "signature": "", "docstring": null } } }, "User": { "name": "User", "kind": "class", "path": "jwtlib.models.User", "signature": "", "docstring": "Internal user persistence model.\n\nAttributes:\n hashed_password (str):\n Secure hash of the user's password.\n\nNotes:\n **Responsibilities:**\n\n - Represents a user record as stored in the database. Includes\n sensitive fields and is strictly confined to the persistence\n layer.\n\n **Guarantees:**\n\n - This model MUST NOT be returned from authentication APIs.\n Consumers should use `PublicUser` instead. Password verification\n is handled by the repository layer.", "members": { "hashed_password": { "name": "hashed_password", "kind": "attribute", "path": "jwtlib.models.User.hashed_password", "signature": "", "docstring": null } } }, "TokenPayload": { "name": "TokenPayload", "kind": "class", "path": "jwtlib.models.TokenPayload", "signature": "", "docstring": "Decoded `JWT` payload.\n\nAttributes:\n sub (str):\n Subject claim identifying the user (typically a username or user ID).\n exp (int):\n Expiration time as a Unix timestamp (seconds since epoch).\n\nNotes:\n **Responsibilities:**\n\n - Represents the validated claims extracted from a `JWT` after\n signature verification. This model is used internally to enforce\n required claims and provide a typed interface to token data.\n\n **Guarantees:**\n\n - This model assumes the `JWT` signature has already been verified.\n No authorization decisions should be made solely on this model.\n Additional claims may exist but are intentionally ignored.", "members": { "sub": { "name": "sub", "kind": "attribute", "path": "jwtlib.models.TokenPayload.sub", "signature": "", "docstring": null }, "exp": { "name": "exp", "kind": "attribute", "path": "jwtlib.models.TokenPayload.exp", "signature": "", "docstring": null } } }, "app": { "name": "app", "kind": "module", "path": "jwtlib.models.app", "signature": null, "docstring": "# Summary\n\nAuthentication request and response models.\n\nThis module defines all **typed data models** used by the authentication\nlibrary for user registration, login, logout, and token introspection.\n\nNotes:\n **Model Categories:**\n\n - Request payloads used by authentication workflows.\n - Public response models exposed to consumers.\n - Introspection responses used for service-to-service authentication.\n\n **Design Principles:**\n\n - Fully typed (Pydantic v2).\n - Serialization-safe.\n - Framework-agnostic.\n - Suitable for both internal logic and external adapters.", "members": { "BaseModel": { "name": "BaseModel", "kind": "alias", "path": "jwtlib.models.app.BaseModel", "signature": "", "docstring": null }, "Field": { "name": "Field", "kind": "alias", "path": "jwtlib.models.app.Field", "signature": "", "docstring": null }, "ActiveStateMixin": { "name": "ActiveStateMixin", "kind": "class", "path": "jwtlib.models.app.ActiveStateMixin", "signature": "", "docstring": "Mixin for entities with an active status flag.\n\nAttributes:\n is_active (bool):\n Indicates whether the account is active and allowed to\n authenticate.", "members": { "is_active": { "name": "is_active", "kind": "attribute", "path": "jwtlib.models.app.ActiveStateMixin.is_active", "signature": "", "docstring": null } } }, "IdentityMixin": { "name": "IdentityMixin", "kind": "class", "path": "jwtlib.models.app.IdentityMixin", "signature": "", "docstring": "Mixin for entities with a username and email.\n\nAttributes:\n username (str):\n Unique username used for authentication and display.\n email (Optional[EmailStr]):\n Primary email address associated with the account.", "members": { "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.app.IdentityMixin.username", "signature": "", "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.app.IdentityMixin.email", "signature": "", "docstring": null } } }, "PasswordMixin": { "name": "PasswordMixin", "kind": "class", "path": "jwtlib.models.app.PasswordMixin", "signature": "", "docstring": "Mixin for entities with a raw password field.\n\nAttributes:\n password (str):\n User password (minimum 6 characters).", "members": { "password": { "name": "password", "kind": "attribute", "path": "jwtlib.models.app.PasswordMixin.password", "signature": "", "docstring": null } } }, "User": { "name": "User", "kind": "class", "path": "jwtlib.models.app.User", "signature": "", "docstring": "Internal user persistence model.\n\nAttributes:\n hashed_password (str):\n Secure hash of the user's password.\n\nNotes:\n **Responsibilities:**\n\n - Represents a user record as stored in the database. Includes\n sensitive fields and is strictly confined to the persistence\n layer.\n\n **Guarantees:**\n\n - This model MUST NOT be returned from authentication APIs.\n Consumers should use `PublicUser` instead. Password verification\n is handled by the repository layer.", "members": { "hashed_password": { "name": "hashed_password", "kind": "attribute", "path": "jwtlib.models.app.User.hashed_password", "signature": "", "docstring": null } } }, "RegisterRequest": { "name": "RegisterRequest", "kind": "class", "path": "jwtlib.models.app.RegisterRequest", "signature": "", "docstring": "Payload for registering a new user account.\n\nAttributes:\n username (str):\n Unique username identifier.\n email (EmailStr, optional):\n User's email address.\n password (str):\n Plain-text password (to be hashed by the repository layer).", "members": { "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.RegisterRequest.model_config", "signature": null, "docstring": null }, "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.app.RegisterRequest.username", "signature": null, "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.app.RegisterRequest.email", "signature": null, "docstring": null }, "password": { "name": "password", "kind": "attribute", "path": "jwtlib.models.app.RegisterRequest.password", "signature": null, "docstring": null } } }, "LoginRequest": { "name": "LoginRequest", "kind": "class", "path": "jwtlib.models.app.LoginRequest", "signature": "", "docstring": "Payload for authenticating a user and issuing a `JWT`.\n\nAttributes:\n username (str):\n Username identifier.\n password (str):\n Plain-text password to be verified.", "members": { "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.LoginRequest.model_config", "signature": null, "docstring": null }, "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.app.LoginRequest.username", "signature": null, "docstring": null }, "password": { "name": "password", "kind": "attribute", "path": "jwtlib.models.app.LoginRequest.password", "signature": null, "docstring": null } } }, "IntrospectRequest": { "name": "IntrospectRequest", "kind": "class", "path": "jwtlib.models.app.IntrospectRequest", "signature": "", "docstring": "Payload for requesting token introspection.\n\nAttributes:\n token (str):\n `JWT` access token to introspect.", "members": { "token": { "name": "token", "kind": "attribute", "path": "jwtlib.models.app.IntrospectRequest.token", "signature": null, "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.IntrospectRequest.model_config", "signature": null, "docstring": null } } }, "PublicUser": { "name": "PublicUser", "kind": "class", "path": "jwtlib.models.app.PublicUser", "signature": "", "docstring": "Public-facing user representation returned by authentication APIs.\n\nAttributes:\n username (str):\n Unique username identifier.\n email (EmailStr, optional):\n User's email address.\n is_active (bool):\n Whether the user account is active.", "members": { "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.PublicUser.model_config", "signature": null, "docstring": null }, "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.app.PublicUser.username", "signature": null, "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.app.PublicUser.email", "signature": null, "docstring": null }, "is_active": { "name": "is_active", "kind": "attribute", "path": "jwtlib.models.app.PublicUser.is_active", "signature": null, "docstring": null } } }, "LoginResponse": { "name": "LoginResponse", "kind": "class", "path": "jwtlib.models.app.LoginResponse", "signature": "", "docstring": "Response returned after successful authentication.\n\nAttributes:\n access_token (str):\n `JWT` access token for authenticated requests.\n user (PublicUser):\n Public profile of the authenticated user.", "members": { "access_token": { "name": "access_token", "kind": "attribute", "path": "jwtlib.models.app.LoginResponse.access_token", "signature": null, "docstring": null }, "user": { "name": "user", "kind": "attribute", "path": "jwtlib.models.app.LoginResponse.user", "signature": null, "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.LoginResponse.model_config", "signature": null, "docstring": null } } }, "LogoutResponse": { "name": "LogoutResponse", "kind": "class", "path": "jwtlib.models.app.LogoutResponse", "signature": "", "docstring": "Response returned after a logout operation.\n\nAttributes:\n message (str):\n Human-readable logout confirmation.", "members": { "message": { "name": "message", "kind": "attribute", "path": "jwtlib.models.app.LogoutResponse.message", "signature": null, "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.LogoutResponse.model_config", "signature": null, "docstring": null } } }, "IntrospectResponse": { "name": "IntrospectResponse", "kind": "class", "path": "jwtlib.models.app.IntrospectResponse", "signature": "", "docstring": "Result of a token introspection operation.\n\nAttributes:\n active (bool):\n Indicates whether the token is valid and active.\n user (Optional[PublicUser]):\n Public user details if the token is valid; otherwise null.", "members": { "active": { "name": "active", "kind": "attribute", "path": "jwtlib.models.app.IntrospectResponse.active", "signature": null, "docstring": null }, "user": { "name": "user", "kind": "attribute", "path": "jwtlib.models.app.IntrospectResponse.user", "signature": null, "docstring": null }, "model_config": { "name": "model_config", "kind": "attribute", "path": "jwtlib.models.app.IntrospectResponse.model_config", "signature": null, "docstring": null }, "jwt_error": { "name": "jwt_error", "kind": "function", "path": "jwtlib.models.app.IntrospectResponse.jwt_error", "signature": "", "docstring": null }, "no_username": { "name": "no_username", "kind": "function", "path": "jwtlib.models.app.IntrospectResponse.no_username", "signature": "", "docstring": null }, "no_user": { "name": "no_user", "kind": "function", "path": "jwtlib.models.app.IntrospectResponse.no_user", "signature": "", "docstring": null }, "valid_user": { "name": "valid_user", "kind": "function", "path": "jwtlib.models.app.IntrospectResponse.valid_user", "signature": "", "docstring": null } } }, "Any": { "name": "Any", "kind": "alias", "path": "jwtlib.models.app.Any", "signature": "", "docstring": null } } }, "common": { "name": "common", "kind": "module", "path": "jwtlib.models.common", "signature": null, "docstring": "# Summary\n\nCommon Pydantic mixins for authentication models.\n\nThis module provides reusable mixins for identity, password, and\naccount state. These mixes ensure consistency across internal\npersistence models and public-facing projection models.", "members": { "BaseModel": { "name": "BaseModel", "kind": "alias", "path": "jwtlib.models.common.BaseModel", "signature": "", "docstring": null }, "EmailStr": { "name": "EmailStr", "kind": "alias", "path": "jwtlib.models.common.EmailStr", "signature": "", "docstring": null }, "Field": { "name": "Field", "kind": "alias", "path": "jwtlib.models.common.Field", "signature": "", "docstring": null }, "IdentityMixin": { "name": "IdentityMixin", "kind": "class", "path": "jwtlib.models.common.IdentityMixin", "signature": "", "docstring": "Mixin for entities with a username and email.\n\nAttributes:\n username (str):\n Unique username used for authentication and display.\n email (Optional[EmailStr]):\n Primary email address associated with the account.", "members": { "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.common.IdentityMixin.username", "signature": null, "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.common.IdentityMixin.email", "signature": null, "docstring": null } } }, "PasswordMixin": { "name": "PasswordMixin", "kind": "class", "path": "jwtlib.models.common.PasswordMixin", "signature": "", "docstring": "Mixin for entities with a raw password field.\n\nAttributes:\n password (str):\n User password (minimum 6 characters).", "members": { "password": { "name": "password", "kind": "attribute", "path": "jwtlib.models.common.PasswordMixin.password", "signature": null, "docstring": null } } }, "ActiveStateMixin": { "name": "ActiveStateMixin", "kind": "class", "path": "jwtlib.models.common.ActiveStateMixin", "signature": "", "docstring": "Mixin for entities with an active status flag.\n\nAttributes:\n is_active (bool):\n Indicates whether the account is active and allowed to\n authenticate.", "members": { "is_active": { "name": "is_active", "kind": "attribute", "path": "jwtlib.models.common.ActiveStateMixin.is_active", "signature": null, "docstring": null } } } } }, "mongo": { "name": "mongo", "kind": "module", "path": "jwtlib.models.mongo", "signature": null, "docstring": "# Summary\n\nPersistence-layer user model for MongoDB.\n\nThis module defines the internal database representation of a user.\nIt is used exclusively by the repository and persistence layers and\nmust never be exposed directly to consumers.\n\nPublic-facing user data is provided via dedicated projection models.", "members": { "BaseDocument": { "name": "BaseDocument", "kind": "alias", "path": "jwtlib.models.mongo.BaseDocument", "signature": "", "docstring": null }, "ActiveStateMixin": { "name": "ActiveStateMixin", "kind": "class", "path": "jwtlib.models.mongo.ActiveStateMixin", "signature": "", "docstring": "Mixin for entities with an active status flag.\n\nAttributes:\n is_active (bool):\n Indicates whether the account is active and allowed to\n authenticate.", "members": { "is_active": { "name": "is_active", "kind": "attribute", "path": "jwtlib.models.mongo.ActiveStateMixin.is_active", "signature": "", "docstring": null } } }, "IdentityMixin": { "name": "IdentityMixin", "kind": "class", "path": "jwtlib.models.mongo.IdentityMixin", "signature": "", "docstring": "Mixin for entities with a username and email.\n\nAttributes:\n username (str):\n Unique username used for authentication and display.\n email (Optional[EmailStr]):\n Primary email address associated with the account.", "members": { "username": { "name": "username", "kind": "attribute", "path": "jwtlib.models.mongo.IdentityMixin.username", "signature": "", "docstring": null }, "email": { "name": "email", "kind": "attribute", "path": "jwtlib.models.mongo.IdentityMixin.email", "signature": "", "docstring": null } } }, "User": { "name": "User", "kind": "class", "path": "jwtlib.models.mongo.User", "signature": "", "docstring": "Internal user persistence model.\n\nAttributes:\n hashed_password (str):\n Secure hash of the user's password.\n\nNotes:\n **Responsibilities:**\n\n - Represents a user record as stored in the database. Includes\n sensitive fields and is strictly confined to the persistence\n layer.\n\n **Guarantees:**\n\n - This model MUST NOT be returned from authentication APIs.\n Consumers should use `PublicUser` instead. Password verification\n is handled by the repository layer.", "members": { "hashed_password": { "name": "hashed_password", "kind": "attribute", "path": "jwtlib.models.mongo.User.hashed_password", "signature": null, "docstring": null } } } } }, "security": { "name": "security", "kind": "module", "path": "jwtlib.models.security", "signature": null, "docstring": "# Summary\n\nJWT token payload models.\n\nThis module defines typed representations of decoded `JWT` payloads used\ninternally for token validation and user resolution.", "members": { "BaseModel": { "name": "BaseModel", "kind": "alias", "path": "jwtlib.models.security.BaseModel", "signature": "", "docstring": null }, "TokenPayload": { "name": "TokenPayload", "kind": "class", "path": "jwtlib.models.security.TokenPayload", "signature": "", "docstring": "Decoded `JWT` payload.\n\nAttributes:\n sub (str):\n Subject claim identifying the user (typically a username or user ID).\n exp (int):\n Expiration time as a Unix timestamp (seconds since epoch).\n\nNotes:\n **Responsibilities:**\n\n - Represents the validated claims extracted from a `JWT` after\n signature verification. This model is used internally to enforce\n required claims and provide a typed interface to token data.\n\n **Guarantees:**\n\n - This model assumes the `JWT` signature has already been verified.\n No authorization decisions should be made solely on this model.\n Additional claims may exist but are intentionally ignored.", "members": { "sub": { "name": "sub", "kind": "attribute", "path": "jwtlib.models.security.TokenPayload.sub", "signature": null, "docstring": null }, "exp": { "name": "exp", "kind": "attribute", "path": "jwtlib.models.security.TokenPayload.exp", "signature": null, "docstring": null } } } } } } } }