perf(auth): extender TTL de token_cache y cachear licencia válida por tenant
Cada navegación al dashboard disparaba verify-license y auth/me contra el Hub sin ningún caché, sumando 1-6s por llamada del lado del Hub a cada request. - security.py: token_cache TTL 60s→300s (el access token vive más que el TTL anterior; cachear su verificación es seguro). - middleware.py: nuevo _license_ok_cache (TTLCache, 300s) en LicenseValidationMiddleware — SOLO cachea el camino "licencia válida" por tenant_override; inválida/expirada/error nunca se cachea y siempre revalida contra el Hub (fail-closed: el peor caso es que un tenant recién revocado siga pasando hasta 5 min más, nunca al revés).
This commit is contained in:
@@ -18,8 +18,10 @@ from .database import get_core_db
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Cache para tokens verificados (1 minuto de TTL, máximo 1000 tokens)
|
||||
token_cache = TTLCache(maxsize=1000, ttl=60)
|
||||
# Cache para tokens verificados (5 minutos de TTL, máximo 1000 tokens).
|
||||
# El access token vive más que este TTL, así que cachear su verificación es seguro
|
||||
# y evita golpear /auth/me del Hub en cada request de navegación.
|
||||
token_cache = TTLCache(maxsize=1000, ttl=300)
|
||||
|
||||
# IDs de tenants ya sincronizados en este proceso (evita consultas repetidas)
|
||||
_synced_tenant_ids: Set[int] = set()
|
||||
|
||||
Reference in New Issue
Block a user