@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
37 lines (36 loc) • 2.88 kB
TypeScript
import { type LintingResult, LintingRuleCertainty } from '../linter-format';
import type { MergeableRecord } from '../../util/objects';
import { LintingRuleTag } from '../linter-tags';
export interface NoLeakedCredentialsResult extends LintingResult {
readonly variableName: string;
}
export interface NoLeakedCredentialsConfig extends MergeableRecord {
/** Pattern matched (case-insensitively) against variable names to identify potential credential assignments */
readonly credentialNamePattern: string;
/** Pattern matched against string literal values to detect known credential formats (e.g., AWS access key IDs, GitHub tokens) */
readonly credentialValuePattern: string;
}
export interface NoLeakedCredentialsMetadata extends MergeableRecord {
readonly totalChecked: number;
}
export declare const NO_LEAKED_CREDENTIALS: {
readonly createSearch: () => import("../../search/flowr-search-builder").FlowrSearchBuilder<"all", ["filter"], import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, Promise<import("../../search/flowr-search").FlowrSearchElements<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, [] | import("../../search/flowr-search").FlowrSearchElement<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>[]>>>;
readonly processSearchResult: (elements: import("../../search/flowr-search").FlowrSearchElements<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../search/flowr-search").FlowrSearchElement<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>[]>, config: NoLeakedCredentialsConfig, data: import("../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../r-bridge/parser").KnownParser>) => Promise<{
results: NoLeakedCredentialsResult[];
".meta": NoLeakedCredentialsMetadata;
}>;
readonly prettyPrint: {
readonly query: (result: NoLeakedCredentialsResult) => string;
readonly full: (result: NoLeakedCredentialsResult) => string;
};
readonly info: {
readonly name: "No Leaked Credentials";
readonly description: "Detects hardcoded credentials assigned to variables whose names suggest they hold passwords, tokens, or API keys, or whose values match known credential formats (AWS, GitHub, Slack, Stripe, SSH).";
readonly tags: readonly [LintingRuleTag.Security, LintingRuleTag.Experimental, LintingRuleTag.Smell];
readonly certainty: LintingRuleCertainty.BestEffort;
readonly defaultConfig: {
readonly credentialNamePattern: "(?:password|passwd|pwd|secret|api[_.]?key|api[_.]?token|access[_.]?token|auth[_.]?token|bearer[_.]?token|private[_.]?key|credential)";
readonly credentialValuePattern: string;
};
};
};