Close the remaining places where an extension point was hardcoded, and expose a stable public import surface for every app. - files: register_storage_backend(...) / STORAGE_BACKENDS[name]["CLASS"]; unknown backends now fail loudly instead of silently using local - files: PipelineStepRegistry + @pipeline_step; PIPELINE_EXECUTOR setting - billing: INVOICE_PDF_BUILDER setting - security: TWO_FACTOR_SERVICE / TWO_FACTOR_RECOVERY_SERVICE settings - all app packages expose lazy public exports (PEP 562); infrasynth.shared re-exports its primitives eagerly - README documents the per-module extension-point table - tests/test_extensibility.py pins each hook plus the public surface |
||
|---|---|---|
| .. | ||
| migrations | ||
| __init__.py | ||
| apps.py | ||
| filters.py | ||
| models.py | ||
| processing.py | ||
| scanner.py | ||
| serializers.py | ||
| services.py | ||
| signals.py | ||
| storage.py | ||
| urls.py | ||
| views.py | ||