UNPKG

@texagon/nestjs-health

Version:

A comprehensive health monitoring package for NestJS applications with metrics and Kubernetes-ready health checks

32 lines (29 loc) 821 B
import { Injectable, CanActivate, ExecutionContext, Inject, } from "@nestjs/common"; import { Observable } from "rxjs"; import { Request } from "express"; import { MODULE_OPTIONS_TOKEN } from "./health.module"; import { HealthModuleOptions } from "./health.module"; @Injectable() export class HealthAuthGuard implements CanActivate { constructor( @Inject(MODULE_OPTIONS_TOKEN) private options: HealthModuleOptions, ) {} canActivate( context: ExecutionContext, ): boolean | Promise<boolean> | Observable<boolean> { if (!this.options.passwordProtected) { return true; } const request = context.switchToHttp().getRequest<Request>(); const authParam = request.query.authKey; if (!authParam) { return false; } return authParam === this.options.password; } }