AdrianoDev
73f880e7f2
feat(V2): ClientRegistry lazy con lock per chiave
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 18:18:18 +02:00
AdrianoDev
80a4a88cb1
feat(V2): error envelope module estratto da server.py
2026-04-30 18:17:15 +02:00
AdrianoDev
993326136b
test(V2): migrazione test common/
...
Copiati e aggiornati i test da services/common/tests/ a tests/unit/common/.
Import aggiornati da mcp_common a cerbero_mcp.common. Eliminati test di
funzionalità V1-only (app_factory, environment, auth/Principal, server_base).
Refactored test_audit.py (principal→actor str) e test_mcp_bridge.py
(TokenStore→valid_tokens set). 71/71 test passano.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 18:16:26 +02:00
AdrianoDev
04a34fc179
fix(V2): hoist fastapi Request import, ripristina importlib mode
2026-04-30 18:10:41 +02:00
AdrianoDev
2934a2d26a
feat(V2): bearer auth middleware con compare_digest
...
Implementa install_auth_middleware con whitelist /health /apidocs /openapi.json,
token timing-safe via secrets.compare_digest, request.state.environment injection.
Fix pyproject: --import-mode=prepend (importlib + PEP563 rompe FastAPI Request injection).
Rimosso from __future__ import annotations da test_auth.py per stesso motivo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 18:09:21 +02:00
AdrianoDev
97d93a5139
feat(V2): pydantic settings con secret str + test
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 18:04:40 +02:00
AdrianoDev
8df64b5176
chore(V2): scheletro src/cerbero_mcp + tests/
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 18:02:22 +02:00