interfaces - base classes¶
- class DataStore[source]¶
Bases:
ABCData row-column store.
- abstract async get(id: Hashable, columns: Collection[str] | Literal['*'] | None = '*', _connection=None)[source]¶
- abstract async m_get(id: Collection[Hashable], columns: Collection[str] | Literal['*'] | None = '*', _connection=None)[source]¶
- abstract async delete(id: Hashable, columns: Collection[str] | Literal['*'] | None = None, _connection=None)[source]¶
- abstract async m_delete(id: Collection[Hashable] = None, conditions: dict = None, columns: Collection[str] | Literal['*'] | None = None, _connection=None)[source]¶
- abstract async create(data: dict, columns: Collection[str] | Literal['*'] | None = '*', _connection=None, on_conflict: str = None, on_conflict_keys: Collection = None, on_conflict_values=None)[source]¶
- abstract async m_create(data: Collection, columns: Collection[str] | Literal['*'] | None = '*', _connection=None, on_conflict: str = None, on_conflict_keys: Collection = None, on_conflict_values: dict = None)[source]¶
- abstract async update(id: Hashable, data, columns: Collection[str] | Literal['*'] | None = '*', _connection=None)[source]¶
- class UserInterface[source]¶
Bases:
Generic[_User],ABCUser login interface.
- abstract async auth(username: str, password: str) _User | None[source]¶
User login and password check.
Must return None if no user or token is invalid.
- abstract async register(username: str, email: str, password: str, settings: dict = None) _User[source]¶
Register a new user.
- class TokenInterface[source]¶
Bases:
Generic[_User],ABCAuth token interface.
- class TokenClaims[source]¶
Bases:
TypedDictJWT token claims data.
- id: UUID¶
- permissions: Collection[str]¶
- abstract async auth(token: str, /) TokenClaims | None[source]¶
Verify an auth token and return token user data.
Must return None if no user or token is invalid.
- abstract async get(claims: TokenClaims, /) TokenInfo[source]¶
Generate a token pair (access / refresh tokens).
- AbstractRPCCompatible¶
alias of
PublicInterface
- class PublicInterface[source]¶
Bases:
ABCClass with an RPC interface.
- DEFAULT_PERMISSION = '*'¶
- class PermissionKeys[source]¶
Bases:
objectPermission scopes.
- GLOBAL_SYSTEM_PERMISSION = 0¶
- GLOBAL_USER_PERMISSION = 100¶
- GLOBAL_GUEST_PERMISSION = 1000¶
- get_request_context() RequestContext | None[source]¶
Get current user request context.
- property routes: dict¶
List RPC routes.
- property permissions: dict¶
List RPC routes permissions.
- property validators: dict¶
List of RPC routes validation schemas.
- class AuthenticationInterface[source]¶
Bases:
Generic[_Session],ABCAuthentication from auth strings / headers / tokens.
- class Locks[source]¶
Bases:
ABCShared (between apps) locks management.
- LockId = kaiju_tools.interfaces.LockId¶
- class RPCClient[source]¶
Bases:
ABCJSONRPC client interface.
- class App[source]¶
Bases:
Application,Generic[_Session]Web application.
- id: str¶
Unique instance id (auto-generated).
- name: str¶
Application name (i.e. type).
- version: str¶
App version.
- env: str¶
Current environment: dev, prod, etc.
- loglevel: str¶
Root log level.
- services: ServiceManagerInterface¶
Services map.
- settings: dict¶
Application settings.
Shared namespace for the current environment.
- request_context: ContextVar[RequestContext | None]¶
Client request context is stored here.
- request_session: ContextVar[_Session | None]¶
Client session context is stored here.
- db_meta: Any¶
Database metadata.
- cookie_key: str¶
HTTP cookie key for client sessions.