UNPKG

@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
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 {};