refactor: decompose monolith — app.py 10,600→143 lines, 30+ modules
Fase 0 complete: extract all business logic, auth, database, and 176 endpoints from monolithic app.py into dedicated modules. Structure: - app.py: FastAPI hub (CORS, routers, startup/shutdown) - models.py: 13 Pydantic request models - utils.py: shared utilities (embed status, upload validation, process registries) - config.py: constants, env vars, model catalogs - auth/: crypto, jwt_auth, oidc, rate_limit - database/: db(), init_db(), schema DDL - services/: genai, compliance, chat, terraform, embeddings, cis_reports, mcp - routes/: 13 APIRouter modules (auth, users, oci_config, oci_explorer, genai, mcp, adb, embeddings, reports, chat, terraform, settings, cis_engine) Also: README updated with OCIR auth instructions for manual docker run. 86 tests passing.
This commit is contained in:
@@ -25,11 +25,11 @@ def anyio_backend():
|
||||
@pytest.fixture(scope="session")
|
||||
def app():
|
||||
"""Create the FastAPI app with a fresh DB, manually init since ASGI transport skips lifespan."""
|
||||
import app as app_module
|
||||
# Disable rate limiting for tests
|
||||
app_module._LOGIN_MAX = 999999
|
||||
app_module.init_db()
|
||||
return app_module.app
|
||||
import auth.rate_limit as rl_module
|
||||
rl_module._LOGIN_MAX = 999999
|
||||
from app import app as fastapi_app, init_db
|
||||
init_db()
|
||||
return fastapi_app
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
|
||||
Reference in New Issue
Block a user