runtime/entrypoints/credential.entrypoint.ts
runtime/entrypoints/credential.entrypoint.ts is a file in Project Scripts. 27 lines of code and 5 definitions.
import { CREDENTIAL_EXCLUSIONS, CREDENTIAL_EXTENSIONS } from "#configuration/constants/credential.constants";
import { ROOT, absolutePath } from "@ssot/paths";
import { credentialFindings } from "#core/analyzers/credential.analyzer";
import { credentialVerdict } from "#core/validators/credential.validator";
import { defineCheck } from "@govlab/context/check";
import { includedFilesUnder } from "#core/loaders/source.loader";
import { loadDetectors } from "@ssot/secrets";
import { normalizePath } from "@ssot/govlab/shared/resolvers/anchor.resolver.ts";
import process from "node:process";
import { readFileSync } from "node:fs";
import { relative } from "node:path";
defineCheck({
detects: ["architecture:hardcoded-configuration", "architecture:secret-sprawl"],
enforces: ["architecture:secrets-management"],
});
const excluded = CREDENTIAL_EXCLUSIONS.map((exclusion) => absolutePath(exclusion.key));
const detectors = await loadDetectors();
const files = [
...includedFilesUnder(ROOT, CREDENTIAL_EXTENSIONS),
...includedFilesUnder(absolutePath("methodology.root"), CREDENTIAL_EXTENSIONS),
].filter((file) => !excluded.some((folder) => file.startsWith(folder)));
const findings = files.flatMap((file) =>
credentialFindings(normalizePath(relative(ROOT, file)), readFileSync(file, "utf8"), detectors),
);
const verdict = credentialVerdict(findings, files.length);
process.stdout.write(verdict.text);
process.exitCode = verdict.held ? 0 : 1;