P0: fix doc:// -> docs:// across standards src/server/registry and regenerate stale mongo-ops bundle. P1: build recipe + spec-first routing now document the openapi-first codegen fast path (models/routes with --inject-request/--package). P4: CRUD template documents the model-vs-document id rule (BaseDocument owns id). P5: authless guidance (omit security keys). P6: template gains generic infra (http_cache, keyed SSE bus, KV port+in-memory+Redis), interfaces/openapi.py + .dockerignore + generic build test registered as components, and a get_app_template tool; genericity matrix marks LLM pool + human-in-loop as reference-app patterns. P7: intake/build/start_app/trial prompts. P8: template ships tests/integration/test_openapi_app_builds.py. Rebuilt standards + openapi-first bundles and re-collected.
23 lines
1.5 KiB
JSON
23 lines
1.5 KiB
JSON
{
|
|
"module": "openapi_first.security",
|
|
"content": {
|
|
"path": "openapi_first.security",
|
|
"docstring": "# Summary\n\nOpenAPI security scheme parsing and auto-generated auth dependencies.\n\nThis module reads `securitySchemes` and per-operation `security` from an\nOpenAPI spec, resolves `{ENV_VAR}` placeholders in `x-` extension fields,\nand generates FastAPI dependencies for token validation (e.g., Bearer JWT\nintrospection).",
|
|
"objects": {
|
|
"parse_security_schemes": {
|
|
"name": "parse_security_schemes",
|
|
"kind": "function",
|
|
"path": "openapi_first.security.parse_security_schemes",
|
|
"signature": "parse_security_schemes(spec: dict[str, Any]) -> dict[str, dict[str, Any]]",
|
|
"docstring": "Extract and resolve environment variables in security schemes."
|
|
},
|
|
"make_security_dependencies": {
|
|
"name": "make_security_dependencies",
|
|
"kind": "function",
|
|
"path": "openapi_first.security.make_security_dependencies",
|
|
"signature": "make_security_dependencies(spec: dict[str, Any], security_schemes: dict[str, dict[str, Any]]) -> dict[str, list[Any]]",
|
|
"docstring": "Build a mapping of ``METHOD:/path`` → list of ``Depends(...)``.\n\nThe effective security for each operation is resolved by:\n\n1. Using the operation-level ``security`` field if present.\n2. Falling back to the top-level ``security`` field.\n3. An empty list means *no auth required* for that operation."
|
|
}
|
|
}
|
|
}
|
|
} |