mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-18 10:01:56 +00:00
9a04ca3611
Co-authored-by: Pablo Lara <larabjj@gmail.com>
216 lines
4.7 KiB
TypeScript
216 lines
4.7 KiB
TypeScript
export type RequirementStatus = "PASS" | "FAIL" | "MANUAL" | "No findings";
|
|
|
|
export interface CompliancesOverview {
|
|
data: ComplianceOverviewData[];
|
|
}
|
|
|
|
export interface ComplianceOverviewData {
|
|
type: "compliance-requirements-status";
|
|
id: string;
|
|
attributes: {
|
|
framework: string;
|
|
version: string;
|
|
requirements_passed: number;
|
|
requirements_failed: number;
|
|
requirements_manual: number;
|
|
total_requirements: number;
|
|
};
|
|
}
|
|
|
|
export interface Requirement {
|
|
name: string;
|
|
description: string;
|
|
status: RequirementStatus;
|
|
pass: number;
|
|
fail: number;
|
|
manual: number;
|
|
check_ids: string[];
|
|
// This is to allow any key to be added to the requirement object
|
|
// because each compliance has different keys
|
|
[key: string]: string | string[] | number | object[] | undefined;
|
|
}
|
|
|
|
export interface Control {
|
|
label: string;
|
|
pass: number;
|
|
fail: number;
|
|
manual: number;
|
|
requirements: Requirement[];
|
|
}
|
|
|
|
export interface Category {
|
|
name: string;
|
|
pass: number;
|
|
fail: number;
|
|
manual: number;
|
|
controls: Control[];
|
|
}
|
|
|
|
export interface Framework {
|
|
name: string;
|
|
pass: number;
|
|
fail: number;
|
|
manual: number;
|
|
categories: Category[];
|
|
}
|
|
|
|
export interface FailedSection {
|
|
name: string;
|
|
total: number;
|
|
types?: { [key: string]: number };
|
|
}
|
|
|
|
export interface RequirementsTotals {
|
|
pass: number;
|
|
fail: number;
|
|
manual: number;
|
|
}
|
|
|
|
// API Responses types:
|
|
export interface ENSAttributesMetadata {
|
|
IdGrupoControl: string;
|
|
Marco: string;
|
|
Categoria: string;
|
|
DescripcionControl: string;
|
|
Tipo: string;
|
|
Nivel: string;
|
|
Dimensiones: string[];
|
|
ModoEjecucion: string;
|
|
Dependencias: any[];
|
|
}
|
|
|
|
export interface ISO27001AttributesMetadata {
|
|
Category: string;
|
|
Objetive_ID: string;
|
|
Objetive_Name: string;
|
|
Check_Summary: string;
|
|
}
|
|
|
|
export interface CISAttributesMetadata {
|
|
Section: string;
|
|
SubSection: string | null;
|
|
Profile: string; // "Level 1" or "Level 2"
|
|
AssessmentStatus: string; // "Manual" or "Automated"
|
|
Description: string;
|
|
RationaleStatement: string;
|
|
ImpactStatement: string;
|
|
RemediationProcedure: string;
|
|
AuditProcedure: string;
|
|
AdditionalInformation: string;
|
|
DefaultValue: string | null;
|
|
References: string;
|
|
}
|
|
|
|
export interface AWSWellArchitectedAttributesMetadata {
|
|
Name: string;
|
|
WellArchitectedQuestionId: string;
|
|
WellArchitectedPracticeId: string;
|
|
Section: string;
|
|
SubSection: string;
|
|
LevelOfRisk: string;
|
|
AssessmentMethod: string;
|
|
Description: string;
|
|
ImplementationGuidanceUrl: string;
|
|
}
|
|
|
|
export interface ThreatAttributesMetadata {
|
|
Title: string;
|
|
Section: string;
|
|
SubSection: string;
|
|
AttributeDescription: string;
|
|
AdditionalInformation: string;
|
|
LevelOfRisk: number;
|
|
Weight: number;
|
|
}
|
|
|
|
export interface KISAAttributesMetadata {
|
|
Domain: string;
|
|
Subdomain: string;
|
|
Section: string;
|
|
AuditChecklist: string[];
|
|
RelatedRegulations: string[];
|
|
AuditEvidence: string[];
|
|
NonComplianceCases: string[];
|
|
}
|
|
|
|
export interface MITREAttributesMetadata {
|
|
// Dynamic cloud service field - could be AWSService, GCPService, AzureService, etc.
|
|
[key: string]: string;
|
|
Category: string; // "Protect", "Detect", "Respond"
|
|
Value: string; // "Minimal", "Partial", "Significant"
|
|
Comment: string;
|
|
}
|
|
|
|
export interface GenericAttributesMetadata {
|
|
ItemId: string;
|
|
Section: string;
|
|
SubSection: string;
|
|
SubGroup: string | null;
|
|
Service: string | null;
|
|
Type: string | null;
|
|
}
|
|
|
|
export interface AttributesItemData {
|
|
type: "compliance-requirements-attributes";
|
|
id: string;
|
|
attributes: {
|
|
framework_description: string;
|
|
name?: string;
|
|
framework: string;
|
|
version: string;
|
|
description: string;
|
|
attributes: {
|
|
metadata:
|
|
| ENSAttributesMetadata[]
|
|
| ISO27001AttributesMetadata[]
|
|
| CISAttributesMetadata[]
|
|
| AWSWellArchitectedAttributesMetadata[]
|
|
| ThreatAttributesMetadata[]
|
|
| KISAAttributesMetadata[]
|
|
| MITREAttributesMetadata[]
|
|
| GenericAttributesMetadata[];
|
|
check_ids: string[];
|
|
// MITRE structure
|
|
technique_details?: {
|
|
tactics: string[];
|
|
subtechniques: string[];
|
|
platforms: string[];
|
|
technique_url: string;
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|
|
export interface RequirementItemData {
|
|
type: "compliance-requirements-details";
|
|
id: string;
|
|
attributes: {
|
|
framework: string;
|
|
version: string;
|
|
description: string;
|
|
status: RequirementStatus;
|
|
};
|
|
}
|
|
|
|
export interface AttributesData {
|
|
data: AttributesItemData[];
|
|
}
|
|
|
|
export interface RequirementsData {
|
|
data: RequirementItemData[];
|
|
}
|
|
|
|
export interface RegionData {
|
|
name: string;
|
|
failurePercentage: number;
|
|
totalRequirements: number;
|
|
failedRequirements: number;
|
|
}
|
|
|
|
export interface CategoryData {
|
|
name: string;
|
|
failurePercentage: number;
|
|
totalRequirements: number;
|
|
failedRequirements: number;
|
|
}
|