feat: serve docs flat at /<repo>/ with no redirects

- collect.py copies each repo's built site contents directly to a
  top-level <repo>/ dir (was libs|apis|wiki/<repo>/site nesting)
- nginx uses `index index.html lib/index.html api/index.html` so
  /dagpipe/ -> lib/index.html, /auth-server/ -> api/index.html are
  served internally with no redirects
- _index regenerates links against the flat layout
  (/dagpipe/lib/, /auth-server/api/, /mongo-ops/, /blog/...)
- config.yml static entries point at vendored blog/ + media-manager/
- Dockerfile copies per-repo dirs flat into the nginx html root
- removed stale libs/, apis/, wiki/, tutorials/ category trees
This commit is contained in:
2026-09-11 21:32:30 +05:30
parent 0c25cbb19f
commit a32eeaf2b4
882 changed files with 85 additions and 1982 deletions

View File

@@ -0,0 +1,201 @@
{
"module": "jwtlib.repository",
"content": {
"path": "jwtlib.repository",
"docstring": "# Summary\n\nUserRepository: Persistence layer for authentication.\n\nThis module defines the MongoDB-backed repository for managing user records,\nincluding creation, lookup, and credential verification.",
"objects": {
"BaseRepository": {
"name": "BaseRepository",
"kind": "alias",
"path": "jwtlib.repository.BaseRepository",
"signature": "<bound method Alias.signature of Alias('BaseRepository', 'mongo_ops.BaseRepository')>",
"docstring": null
},
"LoginRequest": {
"name": "LoginRequest",
"kind": "class",
"path": "jwtlib.repository.LoginRequest",
"signature": "<bound method Alias.signature of Alias('LoginRequest', 'jwtlib.models.LoginRequest')>",
"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.repository.LoginRequest.model_config",
"signature": "<bound method Alias.signature of Alias('model_config', 'jwtlib.models.app.LoginRequest.model_config')>",
"docstring": null
},
"username": {
"name": "username",
"kind": "attribute",
"path": "jwtlib.repository.LoginRequest.username",
"signature": "<bound method Alias.signature of Alias('username', 'jwtlib.models.app.LoginRequest.username')>",
"docstring": null
},
"password": {
"name": "password",
"kind": "attribute",
"path": "jwtlib.repository.LoginRequest.password",
"signature": "<bound method Alias.signature of Alias('password', 'jwtlib.models.app.LoginRequest.password')>",
"docstring": null
}
}
},
"PublicUser": {
"name": "PublicUser",
"kind": "class",
"path": "jwtlib.repository.PublicUser",
"signature": "<bound method Alias.signature of Alias('PublicUser', 'jwtlib.models.PublicUser')>",
"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.repository.PublicUser.model_config",
"signature": "<bound method Alias.signature of Alias('model_config', 'jwtlib.models.app.PublicUser.model_config')>",
"docstring": null
},
"username": {
"name": "username",
"kind": "attribute",
"path": "jwtlib.repository.PublicUser.username",
"signature": "<bound method Alias.signature of Alias('username', 'jwtlib.models.app.PublicUser.username')>",
"docstring": null
},
"email": {
"name": "email",
"kind": "attribute",
"path": "jwtlib.repository.PublicUser.email",
"signature": "<bound method Alias.signature of Alias('email', 'jwtlib.models.app.PublicUser.email')>",
"docstring": null
},
"is_active": {
"name": "is_active",
"kind": "attribute",
"path": "jwtlib.repository.PublicUser.is_active",
"signature": "<bound method Alias.signature of Alias('is_active', 'jwtlib.models.app.PublicUser.is_active')>",
"docstring": null
}
}
},
"RegisterRequest": {
"name": "RegisterRequest",
"kind": "class",
"path": "jwtlib.repository.RegisterRequest",
"signature": "<bound method Alias.signature of Alias('RegisterRequest', 'jwtlib.models.RegisterRequest')>",
"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.repository.RegisterRequest.model_config",
"signature": "<bound method Alias.signature of Alias('model_config', 'jwtlib.models.app.RegisterRequest.model_config')>",
"docstring": null
},
"username": {
"name": "username",
"kind": "attribute",
"path": "jwtlib.repository.RegisterRequest.username",
"signature": "<bound method Alias.signature of Alias('username', 'jwtlib.models.app.RegisterRequest.username')>",
"docstring": null
},
"email": {
"name": "email",
"kind": "attribute",
"path": "jwtlib.repository.RegisterRequest.email",
"signature": "<bound method Alias.signature of Alias('email', 'jwtlib.models.app.RegisterRequest.email')>",
"docstring": null
},
"password": {
"name": "password",
"kind": "attribute",
"path": "jwtlib.repository.RegisterRequest.password",
"signature": "<bound method Alias.signature of Alias('password', 'jwtlib.models.app.RegisterRequest.password')>",
"docstring": null
}
}
},
"User": {
"name": "User",
"kind": "class",
"path": "jwtlib.repository.User",
"signature": "<bound method Alias.signature of Alias('User', 'jwtlib.models.User')>",
"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.repository.User.hashed_password",
"signature": "<bound method Alias.signature of Alias('hashed_password', 'jwtlib.models.mongo.User.hashed_password')>",
"docstring": null
}
}
},
"create_access_token": {
"name": "create_access_token",
"kind": "function",
"path": "jwtlib.repository.create_access_token",
"signature": "<bound method Alias.signature of Alias('create_access_token', 'jwtlib.security.create_access_token')>",
"docstring": "Generate a new `JWT` access token.\n\nArgs:\n data (dict):\n Subject data to include in the token payload.\n expires_delta (timedelta, optional):\n Optional expiration override.\n\nReturns:\n str:\n An encoded `JWT` string."
},
"hash_password": {
"name": "hash_password",
"kind": "function",
"path": "jwtlib.repository.hash_password",
"signature": "<bound method Alias.signature of Alias('hash_password', 'jwtlib.security.hash_password')>",
"docstring": "Hash a plain-text password using the configured crypt context.\n\nArgs:\n password (str):\n The plain-text password to hash.\n\nReturns:\n str:\n The secure hash string."
},
"verify_password": {
"name": "verify_password",
"kind": "function",
"path": "jwtlib.repository.verify_password",
"signature": "<bound method Alias.signature of Alias('verify_password', 'jwtlib.security.verify_password')>",
"docstring": "Verify a plain-text password against a stored hash.\n\nArgs:\n plain_password (str):\n The unhashed password provided by the user.\n hashed_password (str):\n The secure hash to verify against.\n\nReturns:\n bool:\n True if the password is valid, False otherwise."
},
"UserRepository": {
"name": "UserRepository",
"kind": "class",
"path": "jwtlib.repository.UserRepository",
"signature": "<bound method Class.signature of Class('UserRepository', 19, 117)>",
"docstring": "MongoDB-backed repository for `User` documents.\n\nNotes:\n **Responsibilities:**\n\n - Manage user persistence (CRUD).\n - Handle credential verification and token issuance.",
"members": {
"create": {
"name": "create",
"kind": "function",
"path": "jwtlib.repository.UserRepository.create",
"signature": "<bound method Function.signature of Function('create', 33, 52)>",
"docstring": "Create a new user record.\n\nArgs:\n user_create (RegisterRequest):\n Registration data including prospective password.\n\nReturns:\n PublicUser:\n A PublicUser representation of the created user."
},
"get_by_username": {
"name": "get_by_username",
"kind": "function",
"path": "jwtlib.repository.UserRepository.get_by_username",
"signature": "<bound method Function.signature of Function('get_by_username', 54, 67)>",
"docstring": "Retrieve a user by their unique username.\n\nArgs:\n username (str):\n The username to search for.\n\nReturns:\n Optional[User]:\n The User document if found, otherwise None."
},
"get_by_email": {
"name": "get_by_email",
"kind": "function",
"path": "jwtlib.repository.UserRepository.get_by_email",
"signature": "<bound method Function.signature of Function('get_by_email', 69, 82)>",
"docstring": "Retrieve a user by their unique email address.\n\nArgs:\n email (str):\n The email address to search for.\n\nReturns:\n Optional[User]:\n The User document if found, otherwise None."
},
"get_active_users": {
"name": "get_active_users",
"kind": "function",
"path": "jwtlib.repository.UserRepository.get_active_users",
"signature": "<bound method Function.signature of Function('get_active_users', 84, 98)>",
"docstring": "List all active users with pagination.\n\nArgs:\n skip (int):\n Number of records to skip.\n limit (int):\n Maximum number of records to return.\n\nReturns:\n List[User]:\n A list of active User documents."
},
"authenticate_user": {
"name": "authenticate_user",
"kind": "function",
"path": "jwtlib.repository.UserRepository.authenticate_user",
"signature": "<bound method Function.signature of Function('authenticate_user', 100, 117)>",
"docstring": "Verify user credentials and prepare a login response.\n\nArgs:\n user_auth (LoginRequest):\n Login credentials.\n\nReturns:\n dict | None:\n A dictionary containing the access token and public user if successful, otherwise None."
}
}
}
}
}
}