dependencies

FastAPI dependencies for DM Product Service.

Classes

Common

A class to encapsulate all common dependencies.

Permissions

A class to encapsulate all permissions based dependencies.

Module Contents

class dependencies.Common

A class to encapsulate all common dependencies.

async increment_request_counter()

Increment the request counter.

static increment_requests_counter_depends(request)
Async:

Parameters:

request (starlette.requests.Request) –

Dependency for increment_request_counter().

requests_counter = 0
requests_counter_lock
class dependencies.Permissions(permissions, permissions_service_name, permissions_service_version)

A class to encapsulate all permissions based dependencies.

permissions
permissions_service_name
permissions_service_version
async verify_permission_for_service_route(request, authorization)

Validate the caller token by checking route-level permissions via PAPI.

Parameters:
  • request (starlette.requests.Request) –

  • authorization (Optional[fastapi.security.HTTPAuthorizationCredentials]) –

static verify_permission_for_service_route_depends(request, authorization=Depends(HTTPBearer(auto_error=False)))
Async:

Parameters:
  • request (starlette.requests.Request) –

  • authorization (Optional[fastapi.security.HTTPAuthorizationCredentials]) –

Dependency wrapper for verify_permission_for_service_route.

Skips the PAPI check entirely when DISABLE_AUTHENTICATION=yes so that app.state.permission_dependencies is never accessed in dev/test mode. Token presence is still enforced by the route handler body.