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:
nogueiraguh
2026-04-06 15:20:10 -03:00
parent 426bde563e
commit 1135e9d6a9
36 changed files with 11179 additions and 10514 deletions

View File

@@ -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")