chore: curatare agresiva comentarii — scoatere referinte US/PRD din cod si template-uri
Eliminat zgomotul de trasabilitate (US-xxx, PRD x.x, Rn, OV-x, Tn, decizii/naratiune istorica) din 41 fisiere app/ + template-uri. Pastrate comentariile care documenteaza invarianti si logica ne-evidenta (idempotenta/hash, reconciliere anti-duplicat, RAR 500 esec definitiv, creds per cont, WAF User-Agent, 422 fara echo de parola, scope NULL->1), curatate doar de tokeni. Verificare: pentru cele 27 module .py curatate, structura de cod (tokeni non-comentariu/ non-string) e IDENTICA fata de HEAD -> doar comentarii/docstring-uri schimbate. Singura schimbare de cod e in tests/test_web_responsive.py (scos 3 assert pe markeri US-006/007/008, inlocuite de asertiunile structurale alaturate). 0 tokeni US/PRD reziduali in app/. Regresie: 896 passed, 1 deselected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
19
app/main.py
19
app/main.py
@@ -1,9 +1,7 @@
|
||||
"""Aplicatia FastAPI: API v1 + dashboard web + /healthz + /metrics.
|
||||
|
||||
Worker-ul ruleaza ca PROCES SEPARAT (python -m app.worker), NU ca task aici
|
||||
(plan.md sect. 4: un worker mort nu trebuie sa lase containerul "sanatos").
|
||||
|
||||
Pornire dev: uvicorn app.main:app --reload
|
||||
Worker-ul ruleaza ca PROCES SEPARAT (python -m app.worker), NU ca task aici:
|
||||
un worker mort nu trebuie sa lase containerul "sanatos".
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -44,7 +42,7 @@ from .web.session import AdminRequired, LoginRequired
|
||||
async def lifespan(app: FastAPI):
|
||||
install_log_redaction()
|
||||
# Fail-fast: o cheie Fernet setata dar invalida opreste pornirea cu mesaj clar,
|
||||
# in loc de 500 brut la primul POST /v1/prezentari (cazul reprodus din VFP).
|
||||
# in loc de 500 brut la primul POST /v1/prezentari.
|
||||
validate_creds_key()
|
||||
init_db()
|
||||
yield
|
||||
@@ -61,7 +59,7 @@ app.add_middleware(
|
||||
https_only=settings.session_https_only,
|
||||
same_site="strict",
|
||||
)
|
||||
# US-002: request_id pe fiecare cerere. Adaugat dupa SessionMiddleware -> ruleaza
|
||||
# request_id pe fiecare cerere. Adaugat dupa SessionMiddleware -> ruleaza
|
||||
# OUTERMOST (add_middleware prepend), deci `X-Request-ID` se pune pe TOATE raspunsurile,
|
||||
# inclusiv 401/404/422/500 produse mai in interior.
|
||||
app.add_middleware(RequestIDMiddleware)
|
||||
@@ -97,13 +95,11 @@ async def validation_exception_handler(request: Request, exc: RequestValidationE
|
||||
|
||||
@app.exception_handler(Exception)
|
||||
async def unhandled_exception_handler(request: Request, exc: Exception) -> JSONResponse:
|
||||
"""Orice excepție neprinsa -> 500 STRUCTURAT (3 niveluri, PRD 5.4) in loc de 500 brut.
|
||||
"""Orice excepție neprinsa -> 500 STRUCTURAT din catalog in loc de 500 brut.
|
||||
|
||||
Body = envelope-ul standard din catalog (6 chei: field/cod/problema/cauza/fix/message)
|
||||
+ `request_id` — fara traceback, fara mesaj de excepție brut, fara creds. Traceback-ul
|
||||
complet + ruta + cont + request_id se scriu DOAR in jurnal (redactate prin scrub_text).
|
||||
Handlerele specifice (LoginRequired/AdminRequired/CSRF/RequestValidationError/HTTPException)
|
||||
raman neatinse — acesta prinde doar ce nu are handler dedicat.
|
||||
"""
|
||||
request_id = getattr(request.state, "request_id", None) or request_id_var.get()
|
||||
try:
|
||||
@@ -144,9 +140,8 @@ app.include_router(admin_router)
|
||||
def healthz() -> dict:
|
||||
"""Sanatate: worker viu + ultimul login RAR reusit + adancime coada.
|
||||
|
||||
Pica (200 cu ok=False / sau folosit de orchestrator) cand worker-ul e mort
|
||||
-> semnal de restart (plan.md sect. 8). Intoarce 200 mereu cu detalii;
|
||||
orchestratorul decide pe campul `worker_alive`.
|
||||
Intoarce 200 mereu cu detalii; orchestratorul decide restartul pe campul
|
||||
`worker_alive`.
|
||||
"""
|
||||
settings = get_settings()
|
||||
conn = get_connection()
|
||||
|
||||
Reference in New Issue
Block a user