@pan-sec/notebooklm-mcp 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -7
- package/SECURITY.md +40 -6
- package/dist/auth/mcp-auth.d.ts.map +1 -1
- package/dist/auth/mcp-auth.js +3 -6
- package/dist/auth/mcp-auth.js.map +1 -1
- package/dist/compliance/alert-manager.d.ts +120 -0
- package/dist/compliance/alert-manager.d.ts.map +1 -0
- package/dist/compliance/alert-manager.js +420 -0
- package/dist/compliance/alert-manager.js.map +1 -0
- package/dist/compliance/breach-detection.d.ts +134 -0
- package/dist/compliance/breach-detection.d.ts.map +1 -0
- package/dist/compliance/breach-detection.js +456 -0
- package/dist/compliance/breach-detection.js.map +1 -0
- package/dist/compliance/change-log.d.ts +113 -0
- package/dist/compliance/change-log.d.ts.map +1 -0
- package/dist/compliance/change-log.js +275 -0
- package/dist/compliance/change-log.js.map +1 -0
- package/dist/compliance/compliance-logger.d.ts +136 -0
- package/dist/compliance/compliance-logger.d.ts.map +1 -0
- package/dist/compliance/compliance-logger.js +425 -0
- package/dist/compliance/compliance-logger.js.map +1 -0
- package/dist/compliance/compliance-tools.d.ts +18 -0
- package/dist/compliance/compliance-tools.d.ts.map +1 -0
- package/dist/compliance/compliance-tools.js +673 -0
- package/dist/compliance/compliance-tools.js.map +1 -0
- package/dist/compliance/consent-manager.d.ts +130 -0
- package/dist/compliance/consent-manager.d.ts.map +1 -0
- package/dist/compliance/consent-manager.js +386 -0
- package/dist/compliance/consent-manager.js.map +1 -0
- package/dist/compliance/dashboard.d.ts +243 -0
- package/dist/compliance/dashboard.d.ts.map +1 -0
- package/dist/compliance/dashboard.js +519 -0
- package/dist/compliance/dashboard.js.map +1 -0
- package/dist/compliance/data-classification.d.ts +117 -0
- package/dist/compliance/data-classification.d.ts.map +1 -0
- package/dist/compliance/data-classification.js +469 -0
- package/dist/compliance/data-classification.js.map +1 -0
- package/dist/compliance/data-erasure.d.ts +110 -0
- package/dist/compliance/data-erasure.d.ts.map +1 -0
- package/dist/compliance/data-erasure.js +501 -0
- package/dist/compliance/data-erasure.js.map +1 -0
- package/dist/compliance/data-export.d.ts +85 -0
- package/dist/compliance/data-export.d.ts.map +1 -0
- package/dist/compliance/data-export.js +394 -0
- package/dist/compliance/data-export.js.map +1 -0
- package/dist/compliance/data-inventory.d.ts +136 -0
- package/dist/compliance/data-inventory.d.ts.map +1 -0
- package/dist/compliance/data-inventory.js +335 -0
- package/dist/compliance/data-inventory.js.map +1 -0
- package/dist/compliance/dsar-handler.d.ts +123 -0
- package/dist/compliance/dsar-handler.d.ts.map +1 -0
- package/dist/compliance/dsar-handler.js +371 -0
- package/dist/compliance/dsar-handler.js.map +1 -0
- package/dist/compliance/evidence-collector.d.ts +187 -0
- package/dist/compliance/evidence-collector.d.ts.map +1 -0
- package/dist/compliance/evidence-collector.js +656 -0
- package/dist/compliance/evidence-collector.js.map +1 -0
- package/dist/compliance/health-monitor.d.ts +111 -0
- package/dist/compliance/health-monitor.d.ts.map +1 -0
- package/dist/compliance/health-monitor.js +509 -0
- package/dist/compliance/health-monitor.js.map +1 -0
- package/dist/compliance/incident-manager.d.ts +131 -0
- package/dist/compliance/incident-manager.d.ts.map +1 -0
- package/dist/compliance/incident-manager.js +418 -0
- package/dist/compliance/incident-manager.js.map +1 -0
- package/dist/compliance/index.d.ts +32 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +35 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/policy-docs.d.ts +108 -0
- package/dist/compliance/policy-docs.d.ts.map +1 -0
- package/dist/compliance/policy-docs.js +464 -0
- package/dist/compliance/policy-docs.js.map +1 -0
- package/dist/compliance/privacy-notice-text.d.ts +58 -0
- package/dist/compliance/privacy-notice-text.d.ts.map +1 -0
- package/dist/compliance/privacy-notice-text.js +161 -0
- package/dist/compliance/privacy-notice-text.js.map +1 -0
- package/dist/compliance/privacy-notice.d.ts +128 -0
- package/dist/compliance/privacy-notice.d.ts.map +1 -0
- package/dist/compliance/privacy-notice.js +250 -0
- package/dist/compliance/privacy-notice.js.map +1 -0
- package/dist/compliance/report-generator.d.ts +168 -0
- package/dist/compliance/report-generator.d.ts.map +1 -0
- package/dist/compliance/report-generator.js +830 -0
- package/dist/compliance/report-generator.js.map +1 -0
- package/dist/compliance/retention-engine.d.ts +130 -0
- package/dist/compliance/retention-engine.d.ts.map +1 -0
- package/dist/compliance/retention-engine.js +510 -0
- package/dist/compliance/retention-engine.js.map +1 -0
- package/dist/compliance/siem-exporter.d.ts +150 -0
- package/dist/compliance/siem-exporter.d.ts.map +1 -0
- package/dist/compliance/siem-exporter.js +509 -0
- package/dist/compliance/siem-exporter.js.map +1 -0
- package/dist/compliance/types.d.ts +601 -0
- package/dist/compliance/types.d.ts.map +1 -0
- package/dist/compliance/types.js +22 -0
- package/dist/compliance/types.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -1
- package/dist/config.js.map +1 -1
- package/dist/library/notebook-library.d.ts.map +1 -1
- package/dist/library/notebook-library.js +2 -1
- package/dist/library/notebook-library.js.map +1 -1
- package/dist/session/shared-context-manager.d.ts.map +1 -1
- package/dist/session/shared-context-manager.js +2 -1
- package/dist/session/shared-context-manager.js.map +1 -1
- package/dist/utils/audit-logger.d.ts +21 -1
- package/dist/utils/audit-logger.d.ts.map +1 -1
- package/dist/utils/audit-logger.js +53 -4
- package/dist/utils/audit-logger.js.map +1 -1
- package/dist/utils/crypto.d.ts.map +1 -1
- package/dist/utils/crypto.js +8 -15
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/file-permissions.d.ts +85 -0
- package/dist/utils/file-permissions.d.ts.map +1 -0
- package/dist/utils/file-permissions.js +180 -0
- package/dist/utils/file-permissions.js.map +1 -0
- package/dist/utils/settings-manager.d.ts.map +1 -1
- package/dist/utils/settings-manager.js +6 -11
- package/dist/utils/settings-manager.js.map +1 -1
- package/docs/COMPLIANCE-SPEC.md +1452 -0
- package/package.json +30 -4
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Incident Manager
|
|
3
|
+
*
|
|
4
|
+
* Tracks and manages security incidents.
|
|
5
|
+
* Implements incident lifecycle management for SOC2 compliance.
|
|
6
|
+
*
|
|
7
|
+
* Added by Pantheon Security for enterprise compliance support.
|
|
8
|
+
*/
|
|
9
|
+
import type { SecurityIncident, IncidentType, IncidentStatus, IncidentSeverity } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Incident Manager class
|
|
12
|
+
*/
|
|
13
|
+
export declare class IncidentManager {
|
|
14
|
+
private static instance;
|
|
15
|
+
private incidentsFile;
|
|
16
|
+
private incidents;
|
|
17
|
+
private loaded;
|
|
18
|
+
private constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Get singleton instance
|
|
21
|
+
*/
|
|
22
|
+
static getInstance(): IncidentManager;
|
|
23
|
+
/**
|
|
24
|
+
* Load incidents from storage
|
|
25
|
+
*/
|
|
26
|
+
private load;
|
|
27
|
+
/**
|
|
28
|
+
* Save incidents to storage
|
|
29
|
+
*/
|
|
30
|
+
private save;
|
|
31
|
+
/**
|
|
32
|
+
* Create a new incident
|
|
33
|
+
*/
|
|
34
|
+
createIncident(type: IncidentType, severity: IncidentSeverity, title: string, description: string, options?: {
|
|
35
|
+
affected_data?: string[];
|
|
36
|
+
affected_systems?: string[];
|
|
37
|
+
related_events?: string[];
|
|
38
|
+
notification_required?: boolean;
|
|
39
|
+
}): Promise<SecurityIncident>;
|
|
40
|
+
/**
|
|
41
|
+
* Determine if notification is required based on severity and type
|
|
42
|
+
*/
|
|
43
|
+
private isNotificationRequired;
|
|
44
|
+
/**
|
|
45
|
+
* Update incident status
|
|
46
|
+
*/
|
|
47
|
+
updateStatus(incidentId: string, status: IncidentStatus, notes?: string, performedBy?: string): Promise<SecurityIncident | null>;
|
|
48
|
+
/**
|
|
49
|
+
* Add action to incident
|
|
50
|
+
*/
|
|
51
|
+
addAction(incidentId: string, action: string, performedBy?: string, notes?: string): Promise<SecurityIncident | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Set root cause analysis
|
|
54
|
+
*/
|
|
55
|
+
setRootCause(incidentId: string, rootCause: string, remediation: string): Promise<SecurityIncident | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Mark notification as sent
|
|
58
|
+
*/
|
|
59
|
+
markNotificationSent(incidentId: string): Promise<SecurityIncident | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Get incident by ID
|
|
62
|
+
*/
|
|
63
|
+
getIncident(incidentId: string): Promise<SecurityIncident | null>;
|
|
64
|
+
/**
|
|
65
|
+
* Get all incidents
|
|
66
|
+
*/
|
|
67
|
+
getAllIncidents(): Promise<SecurityIncident[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Get open incidents
|
|
70
|
+
*/
|
|
71
|
+
getOpenIncidents(): Promise<SecurityIncident[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Get incidents requiring notification
|
|
74
|
+
*/
|
|
75
|
+
getIncidentsRequiringNotification(): Promise<SecurityIncident[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Get incidents approaching notification deadline
|
|
78
|
+
*/
|
|
79
|
+
getIncidentsNearDeadline(hoursRemaining?: number): Promise<SecurityIncident[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Get incidents by type
|
|
82
|
+
*/
|
|
83
|
+
getIncidentsByType(type: IncidentType): Promise<SecurityIncident[]>;
|
|
84
|
+
/**
|
|
85
|
+
* Get incidents by severity
|
|
86
|
+
*/
|
|
87
|
+
getIncidentsBySeverity(severity: IncidentSeverity): Promise<SecurityIncident[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Get incident statistics
|
|
90
|
+
*/
|
|
91
|
+
getStatistics(): Promise<{
|
|
92
|
+
total_incidents: number;
|
|
93
|
+
open_incidents: number;
|
|
94
|
+
closed_incidents: number;
|
|
95
|
+
by_type: Record<IncidentType, number>;
|
|
96
|
+
by_severity: Record<IncidentSeverity, number>;
|
|
97
|
+
by_status: Record<IncidentStatus, number>;
|
|
98
|
+
pending_notifications: number;
|
|
99
|
+
average_resolution_hours?: number;
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Export incidents for reporting
|
|
103
|
+
*/
|
|
104
|
+
exportIncidents(from?: Date, to?: Date): Promise<SecurityIncident[]>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get the incident manager instance
|
|
108
|
+
*/
|
|
109
|
+
export declare function getIncidentManager(): IncidentManager;
|
|
110
|
+
/**
|
|
111
|
+
* Create a new incident
|
|
112
|
+
*/
|
|
113
|
+
export declare function createIncident(type: IncidentType, severity: IncidentSeverity, title: string, description: string, options?: {
|
|
114
|
+
affected_data?: string[];
|
|
115
|
+
affected_systems?: string[];
|
|
116
|
+
related_events?: string[];
|
|
117
|
+
notification_required?: boolean;
|
|
118
|
+
}): Promise<SecurityIncident>;
|
|
119
|
+
/**
|
|
120
|
+
* Get all open incidents
|
|
121
|
+
*/
|
|
122
|
+
export declare function getOpenIncidents(): Promise<SecurityIncident[]>;
|
|
123
|
+
/**
|
|
124
|
+
* Update incident status
|
|
125
|
+
*/
|
|
126
|
+
export declare function updateIncidentStatus(incidentId: string, status: IncidentStatus, notes?: string): Promise<SecurityIncident | null>;
|
|
127
|
+
/**
|
|
128
|
+
* Get incident statistics
|
|
129
|
+
*/
|
|
130
|
+
export declare function getIncidentStatistics(): Promise<ReturnType<IncidentManager["getStatistics"]>>;
|
|
131
|
+
//# sourceMappingURL=incident-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-manager.d.ts","sourceRoot":"","sources":["../../src/compliance/incident-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Incident Manager
|
|
3
|
+
*
|
|
4
|
+
* Tracks and manages security incidents.
|
|
5
|
+
* Implements incident lifecycle management for SOC2 compliance.
|
|
6
|
+
*
|
|
7
|
+
* Added by Pantheon Security for enterprise compliance support.
|
|
8
|
+
*/
|
|
9
|
+
import crypto from "crypto";
|
|
10
|
+
import path from "path";
|
|
11
|
+
import fs from "fs";
|
|
12
|
+
import { getConfig } from "../config.js";
|
|
13
|
+
import { mkdirSecure, writeFileSecure } from "../utils/file-permissions.js";
|
|
14
|
+
import { getComplianceLogger } from "./compliance-logger.js";
|
|
15
|
+
import { getAlertManager } from "./alert-manager.js";
|
|
16
|
+
/**
|
|
17
|
+
* Generate a UUID v4
|
|
18
|
+
*/
|
|
19
|
+
function generateUUID() {
|
|
20
|
+
return crypto.randomUUID();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Incident Manager class
|
|
24
|
+
*/
|
|
25
|
+
export class IncidentManager {
|
|
26
|
+
static instance;
|
|
27
|
+
incidentsFile;
|
|
28
|
+
incidents = new Map();
|
|
29
|
+
loaded = false;
|
|
30
|
+
constructor() {
|
|
31
|
+
const config = getConfig();
|
|
32
|
+
this.incidentsFile = path.join(config.dataDir, "compliance", "incidents.json");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get singleton instance
|
|
36
|
+
*/
|
|
37
|
+
static getInstance() {
|
|
38
|
+
if (!IncidentManager.instance) {
|
|
39
|
+
IncidentManager.instance = new IncidentManager();
|
|
40
|
+
}
|
|
41
|
+
return IncidentManager.instance;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Load incidents from storage
|
|
45
|
+
*/
|
|
46
|
+
async load() {
|
|
47
|
+
if (this.loaded)
|
|
48
|
+
return;
|
|
49
|
+
try {
|
|
50
|
+
if (fs.existsSync(this.incidentsFile)) {
|
|
51
|
+
const content = fs.readFileSync(this.incidentsFile, "utf-8");
|
|
52
|
+
const data = JSON.parse(content);
|
|
53
|
+
if (data.incidents && Array.isArray(data.incidents)) {
|
|
54
|
+
for (const incident of data.incidents) {
|
|
55
|
+
this.incidents.set(incident.id, incident);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
this.incidents = new Map();
|
|
62
|
+
}
|
|
63
|
+
this.loaded = true;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Save incidents to storage
|
|
67
|
+
*/
|
|
68
|
+
async save() {
|
|
69
|
+
const dir = path.dirname(this.incidentsFile);
|
|
70
|
+
mkdirSecure(dir);
|
|
71
|
+
const data = {
|
|
72
|
+
version: "1.0.0",
|
|
73
|
+
last_updated: new Date().toISOString(),
|
|
74
|
+
incidents: Array.from(this.incidents.values()),
|
|
75
|
+
};
|
|
76
|
+
writeFileSecure(this.incidentsFile, JSON.stringify(data, null, 2));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create a new incident
|
|
80
|
+
*/
|
|
81
|
+
async createIncident(type, severity, title, description, options = {}) {
|
|
82
|
+
await this.load();
|
|
83
|
+
const now = new Date().toISOString();
|
|
84
|
+
const incident = {
|
|
85
|
+
id: `INC-${Date.now().toString(36).toUpperCase()}-${generateUUID().slice(0, 4).toUpperCase()}`,
|
|
86
|
+
type,
|
|
87
|
+
severity,
|
|
88
|
+
status: "open",
|
|
89
|
+
detected_at: now,
|
|
90
|
+
title,
|
|
91
|
+
description,
|
|
92
|
+
affected_data: options.affected_data || [],
|
|
93
|
+
affected_systems: options.affected_systems || ["notebooklm-mcp"],
|
|
94
|
+
actions_taken: [
|
|
95
|
+
{
|
|
96
|
+
timestamp: now,
|
|
97
|
+
action: "Incident created",
|
|
98
|
+
performed_by: "system",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
notification_required: options.notification_required ?? this.isNotificationRequired(severity, type),
|
|
102
|
+
related_events: options.related_events || [],
|
|
103
|
+
};
|
|
104
|
+
// Set notification deadline for critical/high severity
|
|
105
|
+
if (incident.notification_required) {
|
|
106
|
+
const deadline = new Date();
|
|
107
|
+
deadline.setHours(deadline.getHours() + 72); // GDPR 72-hour requirement
|
|
108
|
+
incident.notification_deadline = deadline.toISOString();
|
|
109
|
+
}
|
|
110
|
+
this.incidents.set(incident.id, incident);
|
|
111
|
+
await this.save();
|
|
112
|
+
// Log the incident creation
|
|
113
|
+
const logger = getComplianceLogger();
|
|
114
|
+
await logger.logSecurityIncident("incident_created", severity, {
|
|
115
|
+
incident_id: incident.id,
|
|
116
|
+
type,
|
|
117
|
+
title,
|
|
118
|
+
notification_required: incident.notification_required,
|
|
119
|
+
});
|
|
120
|
+
// Alert for high/critical severity
|
|
121
|
+
if (severity === "high" || severity === "critical") {
|
|
122
|
+
const alertManager = getAlertManager();
|
|
123
|
+
// Map incident severity to alert severity
|
|
124
|
+
const alertSeverity = severity === "high" ? "error" : "critical";
|
|
125
|
+
await alertManager.sendAlert(alertSeverity, `Security Incident: ${title}`, description, "incident-manager", {
|
|
126
|
+
incident_id: incident.id,
|
|
127
|
+
type,
|
|
128
|
+
status: "open",
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return incident;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Determine if notification is required based on severity and type
|
|
135
|
+
*/
|
|
136
|
+
isNotificationRequired(severity, type) {
|
|
137
|
+
// Critical severity always requires notification
|
|
138
|
+
if (severity === "critical")
|
|
139
|
+
return true;
|
|
140
|
+
// Data breach always requires notification
|
|
141
|
+
if (type === "data_breach")
|
|
142
|
+
return true;
|
|
143
|
+
// Unauthorized access with high severity requires notification
|
|
144
|
+
if (type === "unauthorized_access" && severity === "high")
|
|
145
|
+
return true;
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Update incident status
|
|
150
|
+
*/
|
|
151
|
+
async updateStatus(incidentId, status, notes, performedBy = "system") {
|
|
152
|
+
await this.load();
|
|
153
|
+
const incident = this.incidents.get(incidentId);
|
|
154
|
+
if (!incident)
|
|
155
|
+
return null;
|
|
156
|
+
const now = new Date().toISOString();
|
|
157
|
+
const previousStatus = incident.status;
|
|
158
|
+
incident.status = status;
|
|
159
|
+
// Update timestamps based on status
|
|
160
|
+
switch (status) {
|
|
161
|
+
case "investigating":
|
|
162
|
+
incident.reported_at = incident.reported_at || now;
|
|
163
|
+
break;
|
|
164
|
+
case "contained":
|
|
165
|
+
incident.contained_at = now;
|
|
166
|
+
break;
|
|
167
|
+
case "resolved":
|
|
168
|
+
incident.resolved_at = now;
|
|
169
|
+
break;
|
|
170
|
+
case "closed":
|
|
171
|
+
incident.closed_at = now;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
// Add action record
|
|
175
|
+
incident.actions_taken.push({
|
|
176
|
+
timestamp: now,
|
|
177
|
+
action: `Status changed from ${previousStatus} to ${status}`,
|
|
178
|
+
performed_by: performedBy,
|
|
179
|
+
notes,
|
|
180
|
+
});
|
|
181
|
+
await this.save();
|
|
182
|
+
// Log the status change
|
|
183
|
+
const logger = getComplianceLogger();
|
|
184
|
+
await logger.logSecurityIncident("incident_status_changed", incident.severity, {
|
|
185
|
+
incident_id: incidentId,
|
|
186
|
+
previous_status: previousStatus,
|
|
187
|
+
new_status: status,
|
|
188
|
+
notes,
|
|
189
|
+
});
|
|
190
|
+
return incident;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Add action to incident
|
|
194
|
+
*/
|
|
195
|
+
async addAction(incidentId, action, performedBy = "system", notes) {
|
|
196
|
+
await this.load();
|
|
197
|
+
const incident = this.incidents.get(incidentId);
|
|
198
|
+
if (!incident)
|
|
199
|
+
return null;
|
|
200
|
+
const actionRecord = {
|
|
201
|
+
timestamp: new Date().toISOString(),
|
|
202
|
+
action,
|
|
203
|
+
performed_by: performedBy,
|
|
204
|
+
notes,
|
|
205
|
+
};
|
|
206
|
+
incident.actions_taken.push(actionRecord);
|
|
207
|
+
await this.save();
|
|
208
|
+
return incident;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Set root cause analysis
|
|
212
|
+
*/
|
|
213
|
+
async setRootCause(incidentId, rootCause, remediation) {
|
|
214
|
+
await this.load();
|
|
215
|
+
const incident = this.incidents.get(incidentId);
|
|
216
|
+
if (!incident)
|
|
217
|
+
return null;
|
|
218
|
+
incident.root_cause = rootCause;
|
|
219
|
+
incident.remediation = remediation;
|
|
220
|
+
incident.actions_taken.push({
|
|
221
|
+
timestamp: new Date().toISOString(),
|
|
222
|
+
action: "Root cause analysis completed",
|
|
223
|
+
performed_by: "system",
|
|
224
|
+
notes: rootCause,
|
|
225
|
+
});
|
|
226
|
+
await this.save();
|
|
227
|
+
return incident;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Mark notification as sent
|
|
231
|
+
*/
|
|
232
|
+
async markNotificationSent(incidentId) {
|
|
233
|
+
await this.load();
|
|
234
|
+
const incident = this.incidents.get(incidentId);
|
|
235
|
+
if (!incident)
|
|
236
|
+
return null;
|
|
237
|
+
incident.notification_sent = true;
|
|
238
|
+
incident.actions_taken.push({
|
|
239
|
+
timestamp: new Date().toISOString(),
|
|
240
|
+
action: "Notification sent to relevant parties",
|
|
241
|
+
performed_by: "system",
|
|
242
|
+
});
|
|
243
|
+
await this.save();
|
|
244
|
+
// Log the notification
|
|
245
|
+
const logger = getComplianceLogger();
|
|
246
|
+
await logger.logSecurityIncident("incident_notification_sent", incident.severity, {
|
|
247
|
+
incident_id: incidentId,
|
|
248
|
+
notification_deadline: incident.notification_deadline,
|
|
249
|
+
});
|
|
250
|
+
return incident;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get incident by ID
|
|
254
|
+
*/
|
|
255
|
+
async getIncident(incidentId) {
|
|
256
|
+
await this.load();
|
|
257
|
+
return this.incidents.get(incidentId) || null;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get all incidents
|
|
261
|
+
*/
|
|
262
|
+
async getAllIncidents() {
|
|
263
|
+
await this.load();
|
|
264
|
+
return Array.from(this.incidents.values());
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get open incidents
|
|
268
|
+
*/
|
|
269
|
+
async getOpenIncidents() {
|
|
270
|
+
await this.load();
|
|
271
|
+
return Array.from(this.incidents.values()).filter(i => i.status === "open" || i.status === "investigating" || i.status === "contained");
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get incidents requiring notification
|
|
275
|
+
*/
|
|
276
|
+
async getIncidentsRequiringNotification() {
|
|
277
|
+
await this.load();
|
|
278
|
+
return Array.from(this.incidents.values()).filter(i => i.notification_required && !i.notification_sent);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Get incidents approaching notification deadline
|
|
282
|
+
*/
|
|
283
|
+
async getIncidentsNearDeadline(hoursRemaining = 24) {
|
|
284
|
+
await this.load();
|
|
285
|
+
const now = new Date();
|
|
286
|
+
const deadline = new Date(now.getTime() + hoursRemaining * 60 * 60 * 1000);
|
|
287
|
+
return Array.from(this.incidents.values()).filter(i => {
|
|
288
|
+
if (!i.notification_required || i.notification_sent)
|
|
289
|
+
return false;
|
|
290
|
+
if (!i.notification_deadline)
|
|
291
|
+
return false;
|
|
292
|
+
const incidentDeadline = new Date(i.notification_deadline);
|
|
293
|
+
return incidentDeadline <= deadline && incidentDeadline > now;
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get incidents by type
|
|
298
|
+
*/
|
|
299
|
+
async getIncidentsByType(type) {
|
|
300
|
+
await this.load();
|
|
301
|
+
return Array.from(this.incidents.values()).filter(i => i.type === type);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Get incidents by severity
|
|
305
|
+
*/
|
|
306
|
+
async getIncidentsBySeverity(severity) {
|
|
307
|
+
await this.load();
|
|
308
|
+
return Array.from(this.incidents.values()).filter(i => i.severity === severity);
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get incident statistics
|
|
312
|
+
*/
|
|
313
|
+
async getStatistics() {
|
|
314
|
+
await this.load();
|
|
315
|
+
const incidents = Array.from(this.incidents.values());
|
|
316
|
+
const byType = {
|
|
317
|
+
unauthorized_access: 0,
|
|
318
|
+
data_breach: 0,
|
|
319
|
+
malware: 0,
|
|
320
|
+
dos_attack: 0,
|
|
321
|
+
policy_violation: 0,
|
|
322
|
+
data_loss: 0,
|
|
323
|
+
configuration_error: 0,
|
|
324
|
+
other: 0,
|
|
325
|
+
};
|
|
326
|
+
const bySeverity = {
|
|
327
|
+
low: 0,
|
|
328
|
+
medium: 0,
|
|
329
|
+
high: 0,
|
|
330
|
+
critical: 0,
|
|
331
|
+
};
|
|
332
|
+
const byStatus = {
|
|
333
|
+
open: 0,
|
|
334
|
+
investigating: 0,
|
|
335
|
+
contained: 0,
|
|
336
|
+
resolved: 0,
|
|
337
|
+
closed: 0,
|
|
338
|
+
};
|
|
339
|
+
let totalResolutionHours = 0;
|
|
340
|
+
let resolvedCount = 0;
|
|
341
|
+
for (const incident of incidents) {
|
|
342
|
+
byType[incident.type]++;
|
|
343
|
+
bySeverity[incident.severity]++;
|
|
344
|
+
byStatus[incident.status]++;
|
|
345
|
+
// Calculate resolution time
|
|
346
|
+
if (incident.resolved_at && incident.detected_at) {
|
|
347
|
+
const detected = new Date(incident.detected_at);
|
|
348
|
+
const resolved = new Date(incident.resolved_at);
|
|
349
|
+
totalResolutionHours += (resolved.getTime() - detected.getTime()) / (1000 * 60 * 60);
|
|
350
|
+
resolvedCount++;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
const pendingNotifications = incidents.filter(i => i.notification_required && !i.notification_sent).length;
|
|
354
|
+
return {
|
|
355
|
+
total_incidents: incidents.length,
|
|
356
|
+
open_incidents: incidents.filter(i => i.status === "open" || i.status === "investigating" || i.status === "contained").length,
|
|
357
|
+
closed_incidents: incidents.filter(i => i.status === "closed").length,
|
|
358
|
+
by_type: byType,
|
|
359
|
+
by_severity: bySeverity,
|
|
360
|
+
by_status: byStatus,
|
|
361
|
+
pending_notifications: pendingNotifications,
|
|
362
|
+
average_resolution_hours: resolvedCount > 0
|
|
363
|
+
? Math.round((totalResolutionHours / resolvedCount) * 100) / 100
|
|
364
|
+
: undefined,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Export incidents for reporting
|
|
369
|
+
*/
|
|
370
|
+
async exportIncidents(from, to) {
|
|
371
|
+
await this.load();
|
|
372
|
+
let incidents = Array.from(this.incidents.values());
|
|
373
|
+
if (from) {
|
|
374
|
+
incidents = incidents.filter(i => new Date(i.detected_at) >= from);
|
|
375
|
+
}
|
|
376
|
+
if (to) {
|
|
377
|
+
incidents = incidents.filter(i => new Date(i.detected_at) <= to);
|
|
378
|
+
}
|
|
379
|
+
return incidents.sort((a, b) => new Date(b.detected_at).getTime() - new Date(a.detected_at).getTime());
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
// ============================================
|
|
383
|
+
// SINGLETON ACCESS
|
|
384
|
+
// ============================================
|
|
385
|
+
/**
|
|
386
|
+
* Get the incident manager instance
|
|
387
|
+
*/
|
|
388
|
+
export function getIncidentManager() {
|
|
389
|
+
return IncidentManager.getInstance();
|
|
390
|
+
}
|
|
391
|
+
// ============================================
|
|
392
|
+
// CONVENIENCE EXPORTS
|
|
393
|
+
// ============================================
|
|
394
|
+
/**
|
|
395
|
+
* Create a new incident
|
|
396
|
+
*/
|
|
397
|
+
export async function createIncident(type, severity, title, description, options) {
|
|
398
|
+
return getIncidentManager().createIncident(type, severity, title, description, options);
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Get all open incidents
|
|
402
|
+
*/
|
|
403
|
+
export async function getOpenIncidents() {
|
|
404
|
+
return getIncidentManager().getOpenIncidents();
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Update incident status
|
|
408
|
+
*/
|
|
409
|
+
export async function updateIncidentStatus(incidentId, status, notes) {
|
|
410
|
+
return getIncidentManager().updateStatus(incidentId, status, notes);
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Get incident statistics
|
|
414
|
+
*/
|
|
415
|
+
export async function getIncidentStatistics() {
|
|
416
|
+
return getIncidentManager().getStatistics();
|
|
417
|
+
}
|
|
418
|
+
//# sourceMappingURL=incident-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-manager.js","sourceRoot":"","sources":["../../src/compliance/incident-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compliance Module - Main Exports
|
|
3
|
+
*
|
|
4
|
+
* Enterprise compliance features for GDPR, SOC2, and CSSF.
|
|
5
|
+
*
|
|
6
|
+
* Added by Pantheon Security.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./types.js";
|
|
9
|
+
export { ComplianceLogger, getComplianceLogger, logComplianceEvent, } from "./compliance-logger.js";
|
|
10
|
+
export { DataClassifier, getDataClassifier, requiresEncryption, requiresAudit, getClassificationLevel, isExportable, isErasable, } from "./data-classification.js";
|
|
11
|
+
export { ConsentManager, getConsentManager, isFirstRun, hasConsent, grantConsent, revokeConsent, } from "./consent-manager.js";
|
|
12
|
+
export { PrivacyNoticeManager, getPrivacyNoticeManager, needsPrivacyNotice, acknowledgePrivacyNotice, getPrivacyNotice, getPrivacyNoticeCLIText, } from "./privacy-notice.js";
|
|
13
|
+
export { PRIVACY_NOTICE, PRIVACY_NOTICE_VERSION, getPrivacyNoticeCLI, getPrivacyNoticeCompact, getPrivacyNoticeStructured, getProcessingAgreement, } from "./privacy-notice-text.js";
|
|
14
|
+
export { DataInventory, getDataInventory, getAllDataInventory, getExportableData, getErasableData, } from "./data-inventory.js";
|
|
15
|
+
export { RetentionEngine, getRetentionEngine, runRetentionPolicies, getRetentionPolicies, getRetentionStatus, } from "./retention-engine.js";
|
|
16
|
+
export { DataExporter, getDataExporter, exportUserData, exportUserDataToFile, exportUserDataToString, } from "./data-export.js";
|
|
17
|
+
export { DataErasureManager, getDataErasureManager, createErasureRequest, executeErasureRequest, getPendingErasureRequests, } from "./data-erasure.js";
|
|
18
|
+
export { DSARHandler, getDSARHandler, submitDSAR, processDSAR, handleDSAR, getDSARSummary, } from "./dsar-handler.js";
|
|
19
|
+
export { AlertManager, getAlertManager, sendAlert, alertCritical, alertWarning, } from "./alert-manager.js";
|
|
20
|
+
export { BreachDetector, getBreachDetector, checkForBreach, isPatternBlocked, getBreachRules, } from "./breach-detection.js";
|
|
21
|
+
export { IncidentManager, getIncidentManager, createIncident, getOpenIncidents, updateIncidentStatus, getIncidentStatistics, } from "./incident-manager.js";
|
|
22
|
+
export { SIEMExporter, getSIEMExporter, exportToSIEM, flushSIEM, } from "./siem-exporter.js";
|
|
23
|
+
export { HealthMonitor, getHealthMonitor, runHealthCheck, getHealthStatus, getLastHealthMetrics, } from "./health-monitor.js";
|
|
24
|
+
export { ChangeLog, getChangeLog, recordConfigChange, getRecentChanges, getChangeStatistics, } from "./change-log.js";
|
|
25
|
+
export { PolicyDocManager, getPolicyDocManager, getAllPolicies, getPolicy, getPoliciesByRegulation, getPolicySummary, } from "./policy-docs.js";
|
|
26
|
+
export { ComplianceDashboard, getComplianceDashboard, generateDashboard, getComplianceScore, getDashboardCLI, } from "./dashboard.js";
|
|
27
|
+
export { ReportGenerator, getReportGenerator, generateReport, generateAndSaveReport, listReports, } from "./report-generator.js";
|
|
28
|
+
export type { ReportType, ReportFormat, GeneratedReport, ReportOptions } from "./report-generator.js";
|
|
29
|
+
export { EvidenceCollector, getEvidenceCollector, collectEvidence, collectAndSaveEvidence, collectRegulationEvidence, verifyEvidence, listEvidencePackages, } from "./evidence-collector.js";
|
|
30
|
+
export type { EvidenceType, EvidenceItem, EvidencePackage, CollectionOptions } from "./evidence-collector.js";
|
|
31
|
+
export { getComplianceTools, handleComplianceToolCall, } from "./compliance-tools.js";
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compliance Module - Main Exports
|
|
3
|
+
*
|
|
4
|
+
* Enterprise compliance features for GDPR, SOC2, and CSSF.
|
|
5
|
+
*
|
|
6
|
+
* Added by Pantheon Security.
|
|
7
|
+
*/
|
|
8
|
+
// Types
|
|
9
|
+
export * from "./types.js";
|
|
10
|
+
// Core Compliance Infrastructure (Phase 1)
|
|
11
|
+
export { ComplianceLogger, getComplianceLogger, logComplianceEvent, } from "./compliance-logger.js";
|
|
12
|
+
export { DataClassifier, getDataClassifier, requiresEncryption, requiresAudit, getClassificationLevel, isExportable, isErasable, } from "./data-classification.js";
|
|
13
|
+
export { ConsentManager, getConsentManager, isFirstRun, hasConsent, grantConsent, revokeConsent, } from "./consent-manager.js";
|
|
14
|
+
export { PrivacyNoticeManager, getPrivacyNoticeManager, needsPrivacyNotice, acknowledgePrivacyNotice, getPrivacyNotice, getPrivacyNoticeCLIText, } from "./privacy-notice.js";
|
|
15
|
+
export { PRIVACY_NOTICE, PRIVACY_NOTICE_VERSION, getPrivacyNoticeCLI, getPrivacyNoticeCompact, getPrivacyNoticeStructured, getProcessingAgreement, } from "./privacy-notice-text.js";
|
|
16
|
+
// Data Subject Rights (Phase 2)
|
|
17
|
+
export { DataInventory, getDataInventory, getAllDataInventory, getExportableData, getErasableData, } from "./data-inventory.js";
|
|
18
|
+
export { RetentionEngine, getRetentionEngine, runRetentionPolicies, getRetentionPolicies, getRetentionStatus, } from "./retention-engine.js";
|
|
19
|
+
export { DataExporter, getDataExporter, exportUserData, exportUserDataToFile, exportUserDataToString, } from "./data-export.js";
|
|
20
|
+
export { DataErasureManager, getDataErasureManager, createErasureRequest, executeErasureRequest, getPendingErasureRequests, } from "./data-erasure.js";
|
|
21
|
+
export { DSARHandler, getDSARHandler, submitDSAR, processDSAR, handleDSAR, getDSARSummary, } from "./dsar-handler.js";
|
|
22
|
+
// Security Monitoring (Phase 3)
|
|
23
|
+
export { AlertManager, getAlertManager, sendAlert, alertCritical, alertWarning, } from "./alert-manager.js";
|
|
24
|
+
export { BreachDetector, getBreachDetector, checkForBreach, isPatternBlocked, getBreachRules, } from "./breach-detection.js";
|
|
25
|
+
export { IncidentManager, getIncidentManager, createIncident, getOpenIncidents, updateIncidentStatus, getIncidentStatistics, } from "./incident-manager.js";
|
|
26
|
+
export { SIEMExporter, getSIEMExporter, exportToSIEM, flushSIEM, } from "./siem-exporter.js";
|
|
27
|
+
export { HealthMonitor, getHealthMonitor, runHealthCheck, getHealthStatus, getLastHealthMetrics, } from "./health-monitor.js";
|
|
28
|
+
// Compliance Reporting & Documentation (Phase 4)
|
|
29
|
+
export { ChangeLog, getChangeLog, recordConfigChange, getRecentChanges, getChangeStatistics, } from "./change-log.js";
|
|
30
|
+
export { PolicyDocManager, getPolicyDocManager, getAllPolicies, getPolicy, getPoliciesByRegulation, getPolicySummary, } from "./policy-docs.js";
|
|
31
|
+
export { ComplianceDashboard, getComplianceDashboard, generateDashboard, getComplianceScore, getDashboardCLI, } from "./dashboard.js";
|
|
32
|
+
export { ReportGenerator, getReportGenerator, generateReport, generateAndSaveReport, listReports, } from "./report-generator.js";
|
|
33
|
+
export { EvidenceCollector, getEvidenceCollector, collectEvidence, collectAndSaveEvidence, collectRegulationEvidence, verifyEvidence, listEvidencePackages, } from "./evidence-collector.js";
|
|
34
|
+
export { getComplianceTools, handleComplianceToolCall, } from "./compliance-tools.js";
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"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"}
|