NitroStack Logo
/python
/sdk
/middleware

Middleware

Agent skill: nitrostack-python-middleware-pipeline

Python
from nitrostack import use_middleware, tool, ExecutionContext

class AuditMiddleware:
    async def use(self, context: ExecutionContext, next_fn):
        context.logger.info("before", extra={"request_id": context.request_id})
        result = await next_fn()
        context.logger.info("after")
        return result

@tool(name="search", description="...", input_schema=SearchInput)
@use_middleware(AuditMiddleware)
async def search(self, input: SearchInput, context: ExecutionContext) -> dict:
    ...

Protocol: async def use(self, context, next_fn). Scaffold with nitrostack-py generate is for guards/pipes/interceptors/filters; middleware is the same stacking pattern via use_middleware.

Read tokens from context.metadata (authorization, headers). Do not assume Express/Nest request objects.

Next steps