@enterprise-cmcs/macpro-security-hub-sync
Version:
NPM module to create Jira issues for all findings in Security Hub for the current AWS account..
47 lines (46 loc) • 1.86 kB
TypeScript
import { Resource, SecurityHubFinding } from "./libs";
import { IssueObject } from "jira-client";
interface SecurityHubJiraSyncOptions {
region?: string;
severities?: string[];
customJiraFields?: {
[id: string]: any;
};
epicKey?: string;
}
interface UpdateForReturn {
action: string;
webUrl: string;
summary: string;
}
export interface LabelConfig {
labelField: string;
labelPrefix?: string;
labelDelimiter?: string;
}
export declare class SecurityHubJiraSync {
private readonly jira;
private readonly securityHub;
private readonly customJiraFields;
private readonly region;
private readonly epicKey;
constructor(options?: SecurityHubJiraSyncOptions);
sync(): Promise<void>;
getAWSAccountID(): Promise<string>;
closeIssuesForResolvedFindings(jiraIssues: IssueObject[], shFindings: SecurityHubFinding[]): Promise<UpdateForReturn[]>;
makeResourceList(resources: Resource[] | undefined): string;
createSecurityHubFindingUrlThroughFilters(findingId: string): string;
createIssueBody(finding: SecurityHubFinding): string;
createSecurityHubFindingUrl(standardsControlArn?: string): string;
getSeverityMapping: (severity: string) => "2" | "3" | "5" | "4" | "1";
getPriorityId: (severity: string, priorities: any[]) => any;
getPriorityNumber: (severity: string, isEnterprise?: boolean) => string;
createLabels(finding: SecurityHubFinding, identifyingLabels: string[], config: LabelConfig[]): string[];
createJiraIssueFromFinding(finding: SecurityHubFinding, identifyingLabels: string[]): Promise<{
action: string;
webUrl: any;
summary: any;
}>;
createJiraIssuesForNewFindings(jiraIssues: IssueObject[], shFindings: SecurityHubFinding[], identifyingLabels: string[]): Promise<UpdateForReturn[]>;
}
export {};