import type { ResourceManifest } from '../define-resource'; import type { InternalAuthMode } from './internal-auth.interceptor'; export interface WireInternalAuthOptions { /** Nome del servizio verifier (audience dei JWT interni). */ serviceName: string; /** I manifest del servizio (RESOURCES), per ri-sostituire i template di scope. */ resources: ResourceManifest[]; /** Override del JWKS interno (default: env AUTHZ_JWKS_URL o id-svc:4001/internal/jwks). */ jwksUrl?: string; /** Override Redis (default: env AUTHZ_REDIS_URL o redis-svc:6379). */ redisUrl?: string; } /** * Wira l'internal-auth NATS su un microservizio: interceptor globale di verifica * dei JWT interni + idratazione dell'ability dallo snapshot Redis. Default OFF * (no-op: niente caricato/connesso). Flip per-deploy via `AUTHZ_INTERNAL_AUTH_MODE`. * * Esegue il **fail-fast two-env**: `AUTHZ_ENFORCE_MODE` on senza * `AUTHZ_INTERNAL_AUTH_MODE` on → throw (altrimenti ogni query darebbe * UNSCOPED_QUERY perché l'ALS resterebbe vuoto). * * Sostituisce il blocco ~35 righe finora copiato nei `main.ts` di ogni servizio. * * await wireInternalAuth(microserviceApp, { serviceName: 'skillHr', resources: RESOURCES }); * * Import dinamici interni: con mode=off non carica nats/snapshot/ioredis. */ export declare function wireInternalAuth(app: { useGlobalInterceptors: (...interceptors: any[]) => void; get: (token: any) => any; }, opts: WireInternalAuthOptions): Promise; //# sourceMappingURL=wire-internal-auth.d.ts.map