UNPKG

@dudousxd/nestjs-telescope

Version:

Laravel Telescope-style observability console for NestJS — core: watchers, recorder, correlation, SQLite store, headless API.

34 lines 1.68 kB
import type { TelescopeHttpRequest } from '../nest/telescope.options.js'; import type { TelescopeSessionUser } from './session-cookie.js'; /** Host hook for Mode A — validates the host's own auth on the raw request. */ export type SessionHook = (request: TelescopeHttpRequest) => Promise<TelescopeSessionUser | null> | TelescopeSessionUser | null; /** Host hook for Mode B — validates submitted credentials. */ export type LoginHook = (username: string, password: string) => Promise<TelescopeSessionUser | null> | TelescopeSessionUser | null; /** Author-facing `dashboardAuth` option (see TelescopeModuleOptions). */ export interface DashboardAuthOptions { /** REQUIRED HMAC-SHA256 signing key. Missing/empty => boot error (fail closed). */ secret: string; /** Cookie TTL (duration string, reuses durationToMs). Default '8h'. */ ttl?: string; /** Mode A. */ session?: SessionHook; /** Mode B. */ login?: LoginHook; } export type AuthMode = 'session' | 'login'; /** Resolved, validated dashboard-auth config used by the guard/controller/meta. */ export interface ResolvedDashboardAuth { secret: string; ttlMs: number; modes: AuthMode[]; session?: SessionHook; login?: LoginHook; } /** * Validate + resolve `dashboardAuth`. Returns `null` when unconfigured (behavior * unchanged). Throws at boot (fail closed) when configured but missing a secret * or any hook — the host learns immediately rather than shipping an open or * un-mintable dashboard. */ export declare function resolveDashboardAuth(options: DashboardAuthOptions | undefined): ResolvedDashboardAuth | null; //# sourceMappingURL=dashboard-auth-config.d.ts.map