@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,371 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Subject Access Request (DSAR) Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles Data Subject Access Requests as required by GDPR Article 15.
|
|
5
|
+
* Provides users with information about their personal data processing.
|
|
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 { getDataInventory } from "./data-inventory.js";
|
|
16
|
+
/**
|
|
17
|
+
* Generate a UUID v4
|
|
18
|
+
*/
|
|
19
|
+
function generateUUID() {
|
|
20
|
+
return crypto.randomUUID();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* DSAR Handler class
|
|
24
|
+
*/
|
|
25
|
+
export class DSARHandler {
|
|
26
|
+
static instance;
|
|
27
|
+
requestsFile;
|
|
28
|
+
requests = [];
|
|
29
|
+
loaded = false;
|
|
30
|
+
constructor() {
|
|
31
|
+
const config = getConfig();
|
|
32
|
+
this.requestsFile = path.join(config.dataDir, "compliance", "dsar-requests.json");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get singleton instance
|
|
36
|
+
*/
|
|
37
|
+
static getInstance() {
|
|
38
|
+
if (!DSARHandler.instance) {
|
|
39
|
+
DSARHandler.instance = new DSARHandler();
|
|
40
|
+
}
|
|
41
|
+
return DSARHandler.instance;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Load requests from storage
|
|
45
|
+
*/
|
|
46
|
+
async load() {
|
|
47
|
+
if (this.loaded)
|
|
48
|
+
return;
|
|
49
|
+
try {
|
|
50
|
+
if (fs.existsSync(this.requestsFile)) {
|
|
51
|
+
const content = fs.readFileSync(this.requestsFile, "utf-8");
|
|
52
|
+
const data = JSON.parse(content);
|
|
53
|
+
this.requests = data.requests || [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
this.requests = [];
|
|
58
|
+
}
|
|
59
|
+
this.loaded = true;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Save requests to storage
|
|
63
|
+
*/
|
|
64
|
+
async save() {
|
|
65
|
+
const dir = path.dirname(this.requestsFile);
|
|
66
|
+
mkdirSecure(dir);
|
|
67
|
+
const data = {
|
|
68
|
+
version: "1.0.0",
|
|
69
|
+
last_updated: new Date().toISOString(),
|
|
70
|
+
requests: this.requests,
|
|
71
|
+
};
|
|
72
|
+
writeFileSecure(this.requestsFile, JSON.stringify(data, null, 2));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Submit a new DSAR
|
|
76
|
+
*/
|
|
77
|
+
async submitRequest(type = "access") {
|
|
78
|
+
await this.load();
|
|
79
|
+
const request = {
|
|
80
|
+
request_id: generateUUID(),
|
|
81
|
+
submitted_at: new Date().toISOString(),
|
|
82
|
+
type,
|
|
83
|
+
status: "pending",
|
|
84
|
+
};
|
|
85
|
+
this.requests.push(request);
|
|
86
|
+
await this.save();
|
|
87
|
+
// Log the request
|
|
88
|
+
const logger = getComplianceLogger();
|
|
89
|
+
await logger.logDataAccess("request", { type: "user" }, "dsar", true, {
|
|
90
|
+
request_id: request.request_id,
|
|
91
|
+
request_type: type,
|
|
92
|
+
});
|
|
93
|
+
return request;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Process a DSAR and generate response
|
|
97
|
+
*/
|
|
98
|
+
async processRequest(requestId) {
|
|
99
|
+
await this.load();
|
|
100
|
+
const request = this.requests.find(r => r.request_id === requestId);
|
|
101
|
+
if (!request) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
request.status = "processing";
|
|
105
|
+
await this.save();
|
|
106
|
+
// Generate response based on request type
|
|
107
|
+
const response = await this.generateResponse(request);
|
|
108
|
+
// Update request
|
|
109
|
+
request.status = "completed";
|
|
110
|
+
request.completed_at = new Date().toISOString();
|
|
111
|
+
request.response = response;
|
|
112
|
+
await this.save();
|
|
113
|
+
// Log completion
|
|
114
|
+
const logger = getComplianceLogger();
|
|
115
|
+
await logger.logDataAccess("view", { type: "user" }, "dsar_response", true, {
|
|
116
|
+
request_id: requestId,
|
|
117
|
+
request_type: request.type,
|
|
118
|
+
data_categories: response.personal_data.length,
|
|
119
|
+
});
|
|
120
|
+
return response;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Generate DSAR response
|
|
124
|
+
*/
|
|
125
|
+
async generateResponse(request) {
|
|
126
|
+
const inventory = getDataInventory();
|
|
127
|
+
// Get personal data from inventory
|
|
128
|
+
const personalDataEntries = await inventory.getPersonalData();
|
|
129
|
+
const allEntries = await inventory.getAll();
|
|
130
|
+
// Build personal data section
|
|
131
|
+
const personalData = [];
|
|
132
|
+
for (const entry of personalDataEntries) {
|
|
133
|
+
personalData.push({
|
|
134
|
+
category: entry.data_type,
|
|
135
|
+
data: await this.getDataSample(entry),
|
|
136
|
+
source: "User interaction with NotebookLM MCP Server",
|
|
137
|
+
retention_period: this.formatRetention(entry.retention_days),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
// Get processing purposes from all entries
|
|
141
|
+
const processingPurposes = [
|
|
142
|
+
...new Set(allEntries.flatMap(e => e.processing_purposes)),
|
|
143
|
+
];
|
|
144
|
+
// Get legal bases
|
|
145
|
+
const legalBases = [...new Set(allEntries.map(e => e.legal_basis))];
|
|
146
|
+
// Available rights
|
|
147
|
+
const availableRights = [
|
|
148
|
+
"Right of access (GDPR Article 15)",
|
|
149
|
+
"Right to rectification (GDPR Article 16)",
|
|
150
|
+
"Right to erasure (GDPR Article 17)",
|
|
151
|
+
"Right to restriction (GDPR Article 18)",
|
|
152
|
+
"Right to data portability (GDPR Article 20)",
|
|
153
|
+
"Right to object (GDPR Article 21)",
|
|
154
|
+
];
|
|
155
|
+
const response = {
|
|
156
|
+
request_id: request.request_id,
|
|
157
|
+
submitted_at: request.submitted_at,
|
|
158
|
+
completed_at: new Date().toISOString(),
|
|
159
|
+
subject_verified: true, // Local-only, so user is inherently verified
|
|
160
|
+
personal_data: personalData,
|
|
161
|
+
processing_purposes: processingPurposes,
|
|
162
|
+
legal_bases: legalBases,
|
|
163
|
+
data_recipients: ["None - all data is processed locally"],
|
|
164
|
+
available_rights: availableRights,
|
|
165
|
+
format: "json",
|
|
166
|
+
encrypted: false,
|
|
167
|
+
};
|
|
168
|
+
return response;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get a sample of actual data for DSAR (without sensitive content)
|
|
172
|
+
*/
|
|
173
|
+
async getDataSample(entry) {
|
|
174
|
+
// For sensitive data types, just return metadata
|
|
175
|
+
if (entry.data_categories.includes("credentials") ||
|
|
176
|
+
entry.data_categories.includes("sensitive_data")) {
|
|
177
|
+
return {
|
|
178
|
+
type: entry.data_type,
|
|
179
|
+
classification: entry.classification,
|
|
180
|
+
note: "Sensitive data not included in DSAR export for security reasons",
|
|
181
|
+
exportable: entry.exportable,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// For other types, try to get actual data
|
|
185
|
+
try {
|
|
186
|
+
if (fs.existsSync(entry.storage_location)) {
|
|
187
|
+
const stats = fs.statSync(entry.storage_location);
|
|
188
|
+
if (stats.isFile()) {
|
|
189
|
+
// For small files, include content summary
|
|
190
|
+
if (stats.size < 10000) {
|
|
191
|
+
const content = fs.readFileSync(entry.storage_location, "utf-8");
|
|
192
|
+
try {
|
|
193
|
+
const data = JSON.parse(content);
|
|
194
|
+
return {
|
|
195
|
+
type: entry.data_type,
|
|
196
|
+
record_count: Array.isArray(data) ? data.length : 1,
|
|
197
|
+
last_modified: stats.mtime.toISOString(),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return {
|
|
202
|
+
type: entry.data_type,
|
|
203
|
+
size_bytes: stats.size,
|
|
204
|
+
last_modified: stats.mtime.toISOString(),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
return {
|
|
210
|
+
type: entry.data_type,
|
|
211
|
+
size_bytes: stats.size,
|
|
212
|
+
last_modified: stats.mtime.toISOString(),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else if (stats.isDirectory()) {
|
|
217
|
+
const files = fs.readdirSync(entry.storage_location);
|
|
218
|
+
return {
|
|
219
|
+
type: entry.data_type,
|
|
220
|
+
file_count: files.length,
|
|
221
|
+
last_modified: stats.mtime.toISOString(),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
// Data might not be accessible
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
type: entry.data_type,
|
|
231
|
+
classification: entry.classification,
|
|
232
|
+
note: "Data location not accessible",
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Format retention period for human readability
|
|
237
|
+
*/
|
|
238
|
+
formatRetention(days) {
|
|
239
|
+
if (days === "indefinite") {
|
|
240
|
+
return "Retained until user deletion";
|
|
241
|
+
}
|
|
242
|
+
if (days >= 365) {
|
|
243
|
+
const years = Math.round(days / 365);
|
|
244
|
+
return `${years} year${years > 1 ? "s" : ""}`;
|
|
245
|
+
}
|
|
246
|
+
if (days >= 30) {
|
|
247
|
+
const months = Math.round(days / 30);
|
|
248
|
+
return `${months} month${months > 1 ? "s" : ""}`;
|
|
249
|
+
}
|
|
250
|
+
return `${days} day${days > 1 ? "s" : ""}`;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get request by ID
|
|
254
|
+
*/
|
|
255
|
+
async getRequest(requestId) {
|
|
256
|
+
await this.load();
|
|
257
|
+
return this.requests.find(r => r.request_id === requestId) || null;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get all requests
|
|
261
|
+
*/
|
|
262
|
+
async getAllRequests() {
|
|
263
|
+
await this.load();
|
|
264
|
+
return [...this.requests];
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get pending requests
|
|
268
|
+
*/
|
|
269
|
+
async getPendingRequests() {
|
|
270
|
+
await this.load();
|
|
271
|
+
return this.requests.filter(r => r.status === "pending" || r.status === "processing");
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Submit and process a DSAR immediately (for automated systems)
|
|
275
|
+
*/
|
|
276
|
+
async submitAndProcess(type = "access") {
|
|
277
|
+
const request = await this.submitRequest(type);
|
|
278
|
+
const response = await this.processRequest(request.request_id);
|
|
279
|
+
if (!response) {
|
|
280
|
+
throw new Error("Failed to process DSAR request");
|
|
281
|
+
}
|
|
282
|
+
return response;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Get summary response (without full personal data)
|
|
286
|
+
*/
|
|
287
|
+
async getSummaryResponse() {
|
|
288
|
+
const inventory = getDataInventory();
|
|
289
|
+
const entries = await inventory.getAll();
|
|
290
|
+
return {
|
|
291
|
+
data_categories: [...new Set(entries.flatMap(e => e.data_categories))],
|
|
292
|
+
processing_purposes: [...new Set(entries.flatMap(e => e.processing_purposes))],
|
|
293
|
+
legal_bases: [...new Set(entries.map(e => e.legal_basis))],
|
|
294
|
+
available_rights: [
|
|
295
|
+
"Access (Article 15)",
|
|
296
|
+
"Rectification (Article 16)",
|
|
297
|
+
"Erasure (Article 17)",
|
|
298
|
+
"Restriction (Article 18)",
|
|
299
|
+
"Portability (Article 20)",
|
|
300
|
+
"Objection (Article 21)",
|
|
301
|
+
],
|
|
302
|
+
data_recipients: ["None - local processing only"],
|
|
303
|
+
exportable_data_types: entries.filter(e => e.exportable).map(e => e.data_type),
|
|
304
|
+
erasable_data_types: entries.filter(e => e.erasable).map(e => e.data_type),
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get DSAR statistics
|
|
309
|
+
*/
|
|
310
|
+
async getStatistics() {
|
|
311
|
+
await this.load();
|
|
312
|
+
const byType = {};
|
|
313
|
+
let totalProcessingTime = 0;
|
|
314
|
+
let processedCount = 0;
|
|
315
|
+
for (const request of this.requests) {
|
|
316
|
+
byType[request.type] = (byType[request.type] || 0) + 1;
|
|
317
|
+
if (request.completed_at && request.submitted_at) {
|
|
318
|
+
const submitted = new Date(request.submitted_at);
|
|
319
|
+
const completed = new Date(request.completed_at);
|
|
320
|
+
totalProcessingTime += (completed.getTime() - submitted.getTime()) / (1000 * 60 * 60);
|
|
321
|
+
processedCount++;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return {
|
|
325
|
+
total_requests: this.requests.length,
|
|
326
|
+
pending_requests: this.requests.filter(r => r.status === "pending" || r.status === "processing").length,
|
|
327
|
+
completed_requests: this.requests.filter(r => r.status === "completed").length,
|
|
328
|
+
by_type: byType,
|
|
329
|
+
average_processing_time_hours: processedCount > 0
|
|
330
|
+
? Math.round((totalProcessingTime / processedCount) * 100) / 100
|
|
331
|
+
: undefined,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
// ============================================
|
|
336
|
+
// SINGLETON ACCESS
|
|
337
|
+
// ============================================
|
|
338
|
+
/**
|
|
339
|
+
* Get the DSAR handler instance
|
|
340
|
+
*/
|
|
341
|
+
export function getDSARHandler() {
|
|
342
|
+
return DSARHandler.getInstance();
|
|
343
|
+
}
|
|
344
|
+
// ============================================
|
|
345
|
+
// CONVENIENCE EXPORTS
|
|
346
|
+
// ============================================
|
|
347
|
+
/**
|
|
348
|
+
* Submit a new DSAR
|
|
349
|
+
*/
|
|
350
|
+
export async function submitDSAR(type = "access") {
|
|
351
|
+
return getDSARHandler().submitRequest(type);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Process a DSAR
|
|
355
|
+
*/
|
|
356
|
+
export async function processDSAR(requestId) {
|
|
357
|
+
return getDSARHandler().processRequest(requestId);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Submit and process a DSAR immediately
|
|
361
|
+
*/
|
|
362
|
+
export async function handleDSAR(type = "access") {
|
|
363
|
+
return getDSARHandler().submitAndProcess(type);
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Get DSAR summary response
|
|
367
|
+
*/
|
|
368
|
+
export async function getDSARSummary() {
|
|
369
|
+
return getDSARHandler().getSummaryResponse();
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=dsar-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsar-handler.js","sourceRoot":"","sources":["../../src/compliance/dsar-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evidence Collector
|
|
3
|
+
*
|
|
4
|
+
* Collects and packages evidence for compliance audits.
|
|
5
|
+
* Creates audit-ready evidence packages with integrity verification.
|
|
6
|
+
*
|
|
7
|
+
* Added by Pantheon Security for enterprise compliance support.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Evidence types
|
|
11
|
+
*/
|
|
12
|
+
export type EvidenceType = "audit_logs" | "consent_records" | "data_inventory" | "dsar_records" | "incident_records" | "change_records" | "policy_documents" | "compliance_reports" | "configuration" | "integrity_proofs";
|
|
13
|
+
/**
|
|
14
|
+
* Evidence item
|
|
15
|
+
*/
|
|
16
|
+
export interface EvidenceItem {
|
|
17
|
+
id: string;
|
|
18
|
+
type: EvidenceType;
|
|
19
|
+
title: string;
|
|
20
|
+
description: string;
|
|
21
|
+
collected_at: string;
|
|
22
|
+
source: string;
|
|
23
|
+
checksum: string;
|
|
24
|
+
size_bytes: number;
|
|
25
|
+
data: unknown;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Evidence package
|
|
29
|
+
*/
|
|
30
|
+
export interface EvidencePackage {
|
|
31
|
+
package_id: string;
|
|
32
|
+
created_at: string;
|
|
33
|
+
created_by: string;
|
|
34
|
+
purpose: string;
|
|
35
|
+
period: {
|
|
36
|
+
from: string;
|
|
37
|
+
to: string;
|
|
38
|
+
};
|
|
39
|
+
regulations: string[];
|
|
40
|
+
items: EvidenceItem[];
|
|
41
|
+
manifest: {
|
|
42
|
+
total_items: number;
|
|
43
|
+
total_size_bytes: number;
|
|
44
|
+
types_included: EvidenceType[];
|
|
45
|
+
package_checksum: string;
|
|
46
|
+
};
|
|
47
|
+
chain_of_custody: Array<{
|
|
48
|
+
timestamp: string;
|
|
49
|
+
action: string;
|
|
50
|
+
actor: string;
|
|
51
|
+
details?: string;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Collection options
|
|
56
|
+
*/
|
|
57
|
+
export interface CollectionOptions {
|
|
58
|
+
from?: Date;
|
|
59
|
+
to?: Date;
|
|
60
|
+
types?: EvidenceType[];
|
|
61
|
+
regulations?: string[];
|
|
62
|
+
purpose?: string;
|
|
63
|
+
includeRawData?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Evidence Collector class
|
|
67
|
+
*/
|
|
68
|
+
export declare class EvidenceCollector {
|
|
69
|
+
private static instance;
|
|
70
|
+
private evidenceDir;
|
|
71
|
+
private constructor();
|
|
72
|
+
/**
|
|
73
|
+
* Get singleton instance
|
|
74
|
+
*/
|
|
75
|
+
static getInstance(): EvidenceCollector;
|
|
76
|
+
/**
|
|
77
|
+
* Collect evidence package
|
|
78
|
+
*/
|
|
79
|
+
collectEvidence(options?: CollectionOptions): Promise<EvidencePackage>;
|
|
80
|
+
/**
|
|
81
|
+
* Get default evidence types
|
|
82
|
+
*/
|
|
83
|
+
private getDefaultTypes;
|
|
84
|
+
/**
|
|
85
|
+
* Collect specific evidence type
|
|
86
|
+
*/
|
|
87
|
+
private collectEvidenceType;
|
|
88
|
+
/**
|
|
89
|
+
* Collect audit logs
|
|
90
|
+
*/
|
|
91
|
+
private collectAuditLogs;
|
|
92
|
+
/**
|
|
93
|
+
* Collect consent records
|
|
94
|
+
*/
|
|
95
|
+
private collectConsentRecords;
|
|
96
|
+
/**
|
|
97
|
+
* Collect data inventory
|
|
98
|
+
*/
|
|
99
|
+
private collectDataInventory;
|
|
100
|
+
/**
|
|
101
|
+
* Collect DSAR records
|
|
102
|
+
*/
|
|
103
|
+
private collectDSARRecords;
|
|
104
|
+
/**
|
|
105
|
+
* Collect incident records
|
|
106
|
+
*/
|
|
107
|
+
private collectIncidentRecords;
|
|
108
|
+
/**
|
|
109
|
+
* Collect change records
|
|
110
|
+
*/
|
|
111
|
+
private collectChangeRecords;
|
|
112
|
+
/**
|
|
113
|
+
* Collect policy documents
|
|
114
|
+
*/
|
|
115
|
+
private collectPolicyDocuments;
|
|
116
|
+
/**
|
|
117
|
+
* Collect compliance reports
|
|
118
|
+
*/
|
|
119
|
+
private collectComplianceReports;
|
|
120
|
+
/**
|
|
121
|
+
* Collect configuration evidence
|
|
122
|
+
*/
|
|
123
|
+
private collectConfiguration;
|
|
124
|
+
/**
|
|
125
|
+
* Collect integrity proofs
|
|
126
|
+
*/
|
|
127
|
+
private collectIntegrityProofs;
|
|
128
|
+
/**
|
|
129
|
+
* Save evidence package to disk
|
|
130
|
+
*/
|
|
131
|
+
savePackage(evidencePackage: EvidencePackage, outputDir?: string): Promise<string>;
|
|
132
|
+
/**
|
|
133
|
+
* Load evidence package from disk
|
|
134
|
+
*/
|
|
135
|
+
loadPackage(packageId: string): Promise<EvidencePackage | null>;
|
|
136
|
+
/**
|
|
137
|
+
* Verify evidence package integrity
|
|
138
|
+
*/
|
|
139
|
+
verifyPackageIntegrity(evidencePackage: EvidencePackage): {
|
|
140
|
+
valid: boolean;
|
|
141
|
+
errors: string[];
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* List saved evidence packages
|
|
145
|
+
*/
|
|
146
|
+
listPackages(): Array<{
|
|
147
|
+
package_id: string;
|
|
148
|
+
created_at: string;
|
|
149
|
+
purpose: string;
|
|
150
|
+
item_count: number;
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* Create evidence package for specific regulation
|
|
154
|
+
*/
|
|
155
|
+
collectRegulationEvidence(regulation: "GDPR" | "SOC2" | "CSSF", options?: Omit<CollectionOptions, "regulations" | "types">): Promise<EvidencePackage>;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get the evidence collector instance
|
|
159
|
+
*/
|
|
160
|
+
export declare function getEvidenceCollector(): EvidenceCollector;
|
|
161
|
+
/**
|
|
162
|
+
* Collect evidence package
|
|
163
|
+
*/
|
|
164
|
+
export declare function collectEvidence(options?: CollectionOptions): Promise<EvidencePackage>;
|
|
165
|
+
/**
|
|
166
|
+
* Collect and save evidence package
|
|
167
|
+
*/
|
|
168
|
+
export declare function collectAndSaveEvidence(options?: CollectionOptions): Promise<{
|
|
169
|
+
package: EvidencePackage;
|
|
170
|
+
filePath: string;
|
|
171
|
+
}>;
|
|
172
|
+
/**
|
|
173
|
+
* Collect regulation-specific evidence
|
|
174
|
+
*/
|
|
175
|
+
export declare function collectRegulationEvidence(regulation: "GDPR" | "SOC2" | "CSSF", options?: Omit<CollectionOptions, "regulations" | "types">): Promise<EvidencePackage>;
|
|
176
|
+
/**
|
|
177
|
+
* Verify evidence package integrity
|
|
178
|
+
*/
|
|
179
|
+
export declare function verifyEvidence(evidencePackage: EvidencePackage): {
|
|
180
|
+
valid: boolean;
|
|
181
|
+
errors: string[];
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* List saved evidence packages
|
|
185
|
+
*/
|
|
186
|
+
export declare function listEvidencePackages(): ReturnType<EvidenceCollector["listPackages"]>;
|
|
187
|
+
//# sourceMappingURL=evidence-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-collector.d.ts","sourceRoot":"","sources":["../../src/compliance/evidence-collector.ts"],"names":[],"mappings":"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"}
|