api/csrf_token.py.dox.md
csrf_token.py API endpoint.csrf_token.py because this directory is intentionally flat.csrf_token.py owns the runtime implementation.csrf_token.py.dox.md owns durable notes about responsibilities, contracts, side effects, and verification for that implementation.GetCsrfToken (ApiHandler)
get_methods(cls) -> list[str]requires_csrf(cls) -> boolasync process(self, input: Input, request: Request) -> Outputasync check_allowed_origin(self, request: Request)async is_allowed_origin(self, request: Request)get_origin_from_request(self, request: Request)async get_allowed_origins(self) -> list[str]get_default_allowed_origins(self) -> list[str]ALLOWED_ORIGINS_KEY.helpers.api.ApiHandler; WebSocket handlers must derive from helpers.ws.WsHandler.GetCsrfToken is an ApiHandler.GetCsrfToken defines process(...).GetCsrfToken defines get_methods(...).GetCsrfToken defines requires_csrf(...).fnmatch, helpers, helpers.api, secrets, urllib.parse.login.is_login_required, self.initialize_allowed_origins, self.get_origin_from_request, urlparse, dotenv.get_dotenv_value, self.get_default_allowed_origins, dotenv.save_dotenv_value, self.check_allowed_origin, secrets.token_urlsafe, runtime.get_runtime_id, self.is_allowed_origin, self.get_allowed_origins, origin.strip, join, fnmatch.fnmatch, split, tunnel_api_process.helpers.api.Response for non-JSON responses, files, redirects, or status-specific replies.tests/test_http_auth_csrf.pytests/test_self_update_tag_filter.pytests/test_ws_security.pyNo child DOX files.