@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
text/typescript
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";
()
export class HealthAuthGuard implements CanActivate {
constructor(
(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;
}
}