@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 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-tools.js","sourceRoot":"","sources":["../../src/compliance/compliance-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consent Manager
|
|
3
|
+
*
|
|
4
|
+
* Tracks and manages user consent for data processing activities.
|
|
5
|
+
* Implements GDPR Article 6 legal basis requirements.
|
|
6
|
+
*
|
|
7
|
+
* Added by Pantheon Security for enterprise compliance support.
|
|
8
|
+
*/
|
|
9
|
+
import type { ConsentRecord, ConsentPurpose, LegalBasis } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Consent Manager class
|
|
12
|
+
*/
|
|
13
|
+
export declare class ConsentManager {
|
|
14
|
+
private static instance;
|
|
15
|
+
private consentFile;
|
|
16
|
+
private consents;
|
|
17
|
+
private loaded;
|
|
18
|
+
private consentVersion;
|
|
19
|
+
private requireConsent;
|
|
20
|
+
private constructor();
|
|
21
|
+
/**
|
|
22
|
+
* Get singleton instance
|
|
23
|
+
*/
|
|
24
|
+
static getInstance(): ConsentManager;
|
|
25
|
+
/**
|
|
26
|
+
* Load consents from storage
|
|
27
|
+
*/
|
|
28
|
+
private load;
|
|
29
|
+
/**
|
|
30
|
+
* Save consents to storage
|
|
31
|
+
*/
|
|
32
|
+
private save;
|
|
33
|
+
/**
|
|
34
|
+
* Check if this is the first run (no consent recorded)
|
|
35
|
+
*/
|
|
36
|
+
isFirstRun(): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if consent is required for this installation
|
|
39
|
+
*/
|
|
40
|
+
isConsentRequired(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Grant consent for specified purposes
|
|
43
|
+
*/
|
|
44
|
+
grantConsent(purposes: ConsentPurpose[], options?: {
|
|
45
|
+
legalBasis?: LegalBasis;
|
|
46
|
+
method?: "explicit" | "implicit" | "contractual";
|
|
47
|
+
evidence?: string;
|
|
48
|
+
expiresAt?: string;
|
|
49
|
+
}): Promise<ConsentRecord>;
|
|
50
|
+
/**
|
|
51
|
+
* Revoke consent
|
|
52
|
+
*/
|
|
53
|
+
revokeConsent(consentId: string, reason?: string): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Check if consent exists for a specific purpose
|
|
56
|
+
*/
|
|
57
|
+
hasConsent(purpose: ConsentPurpose): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Get all active (non-revoked, non-expired) consents
|
|
60
|
+
*/
|
|
61
|
+
getActiveConsents(): Promise<ConsentRecord[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Get full consent history (for DSAR)
|
|
64
|
+
*/
|
|
65
|
+
getConsentHistory(): Promise<ConsentRecord[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Export consent records for DSAR
|
|
68
|
+
*/
|
|
69
|
+
exportConsents(): Promise<string>;
|
|
70
|
+
/**
|
|
71
|
+
* Check if privacy notice needs to be shown (new version or first run)
|
|
72
|
+
*/
|
|
73
|
+
needsPrivacyNotice(): Promise<boolean>;
|
|
74
|
+
/**
|
|
75
|
+
* Record acknowledgment of privacy notice
|
|
76
|
+
*/
|
|
77
|
+
acknowledgePrivacyNotice(): Promise<ConsentRecord>;
|
|
78
|
+
/**
|
|
79
|
+
* Get consent status summary
|
|
80
|
+
*/
|
|
81
|
+
getConsentSummary(): Promise<{
|
|
82
|
+
firstRun: boolean;
|
|
83
|
+
consentVersion: string;
|
|
84
|
+
activeConsents: number;
|
|
85
|
+
revokedConsents: number;
|
|
86
|
+
purposes: Record<ConsentPurpose, boolean>;
|
|
87
|
+
lastConsentDate?: string;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Delete all consent records (for data erasure)
|
|
91
|
+
*/
|
|
92
|
+
deleteAllConsents(): Promise<number>;
|
|
93
|
+
/**
|
|
94
|
+
* Determine appropriate legal basis for purposes
|
|
95
|
+
*/
|
|
96
|
+
private determineLegalBasis;
|
|
97
|
+
/**
|
|
98
|
+
* Validate that all required consents are in place
|
|
99
|
+
*/
|
|
100
|
+
validateConsents(): Promise<{
|
|
101
|
+
valid: boolean;
|
|
102
|
+
missing: ConsentPurpose[];
|
|
103
|
+
}>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get the consent manager instance
|
|
107
|
+
*/
|
|
108
|
+
export declare function getConsentManager(): ConsentManager;
|
|
109
|
+
/**
|
|
110
|
+
* Check if this is the first run
|
|
111
|
+
*/
|
|
112
|
+
export declare function isFirstRun(): Promise<boolean>;
|
|
113
|
+
/**
|
|
114
|
+
* Check if consent exists for a purpose
|
|
115
|
+
*/
|
|
116
|
+
export declare function hasConsent(purpose: ConsentPurpose): Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Grant consent for purposes
|
|
119
|
+
*/
|
|
120
|
+
export declare function grantConsent(purposes: ConsentPurpose[], options?: {
|
|
121
|
+
legalBasis?: LegalBasis;
|
|
122
|
+
method?: "explicit" | "implicit" | "contractual";
|
|
123
|
+
evidence?: string;
|
|
124
|
+
expiresAt?: string;
|
|
125
|
+
}): Promise<ConsentRecord>;
|
|
126
|
+
/**
|
|
127
|
+
* Revoke a consent
|
|
128
|
+
*/
|
|
129
|
+
export declare function revokeConsent(consentId: string, reason?: string): Promise<boolean>;
|
|
130
|
+
//# sourceMappingURL=consent-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent-manager.d.ts","sourceRoot":"","sources":["../../src/compliance/consent-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consent Manager
|
|
3
|
+
*
|
|
4
|
+
* Tracks and manages user consent for data processing activities.
|
|
5
|
+
* Implements GDPR Article 6 legal basis requirements.
|
|
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
|
+
/**
|
|
16
|
+
* Generate a UUID v4
|
|
17
|
+
*/
|
|
18
|
+
function generateUUID() {
|
|
19
|
+
return crypto.randomUUID();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Default consent version
|
|
23
|
+
*/
|
|
24
|
+
const DEFAULT_CONSENT_VERSION = "1.0.0";
|
|
25
|
+
/**
|
|
26
|
+
* Default legal bases for automatic consent (no explicit user action required)
|
|
27
|
+
*/
|
|
28
|
+
const AUTOMATIC_LEGAL_BASES = {
|
|
29
|
+
"service_provision": "contract",
|
|
30
|
+
"session_management": "contract",
|
|
31
|
+
"security_logging": "legitimate_interest",
|
|
32
|
+
"error_diagnostics": "legitimate_interest",
|
|
33
|
+
"usage_analytics": "consent", // This one requires explicit consent
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Data categories processed for each purpose
|
|
37
|
+
*/
|
|
38
|
+
const PURPOSE_DATA_CATEGORIES = {
|
|
39
|
+
"service_provision": ["session_data", "notebook_metadata"],
|
|
40
|
+
"session_management": ["session_data", "credentials"],
|
|
41
|
+
"security_logging": ["audit_logs"],
|
|
42
|
+
"error_diagnostics": ["usage_data"],
|
|
43
|
+
"usage_analytics": ["usage_data"],
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Consent Manager class
|
|
47
|
+
*/
|
|
48
|
+
export class ConsentManager {
|
|
49
|
+
static instance;
|
|
50
|
+
consentFile;
|
|
51
|
+
consents = [];
|
|
52
|
+
loaded = false;
|
|
53
|
+
consentVersion;
|
|
54
|
+
requireConsent;
|
|
55
|
+
constructor() {
|
|
56
|
+
const config = getConfig();
|
|
57
|
+
this.consentFile = path.join(config.configDir, "consent.json");
|
|
58
|
+
this.consentVersion = process.env.NLMCP_CONSENT_VERSION || DEFAULT_CONSENT_VERSION;
|
|
59
|
+
this.requireConsent = process.env.NLMCP_CONSENT_REQUIRED?.toLowerCase() !== "false";
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get singleton instance
|
|
63
|
+
*/
|
|
64
|
+
static getInstance() {
|
|
65
|
+
if (!ConsentManager.instance) {
|
|
66
|
+
ConsentManager.instance = new ConsentManager();
|
|
67
|
+
}
|
|
68
|
+
return ConsentManager.instance;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Load consents from storage
|
|
72
|
+
*/
|
|
73
|
+
async load() {
|
|
74
|
+
if (this.loaded)
|
|
75
|
+
return;
|
|
76
|
+
try {
|
|
77
|
+
if (fs.existsSync(this.consentFile)) {
|
|
78
|
+
const content = fs.readFileSync(this.consentFile, "utf-8");
|
|
79
|
+
const data = JSON.parse(content);
|
|
80
|
+
this.consents = data.consents || [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Start fresh if file is corrupted
|
|
85
|
+
this.consents = [];
|
|
86
|
+
}
|
|
87
|
+
this.loaded = true;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Save consents to storage
|
|
91
|
+
*/
|
|
92
|
+
async save() {
|
|
93
|
+
const dir = path.dirname(this.consentFile);
|
|
94
|
+
mkdirSecure(dir);
|
|
95
|
+
const data = {
|
|
96
|
+
version: this.consentVersion,
|
|
97
|
+
consents: this.consents,
|
|
98
|
+
last_updated: new Date().toISOString(),
|
|
99
|
+
};
|
|
100
|
+
writeFileSecure(this.consentFile, JSON.stringify(data, null, 2));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if this is the first run (no consent recorded)
|
|
104
|
+
*/
|
|
105
|
+
async isFirstRun() {
|
|
106
|
+
await this.load();
|
|
107
|
+
return this.consents.length === 0;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if consent is required for this installation
|
|
111
|
+
*/
|
|
112
|
+
isConsentRequired() {
|
|
113
|
+
return this.requireConsent;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Grant consent for specified purposes
|
|
117
|
+
*/
|
|
118
|
+
async grantConsent(purposes, options = {}) {
|
|
119
|
+
await this.load();
|
|
120
|
+
// Collect all data categories for these purposes
|
|
121
|
+
const dataCategories = [];
|
|
122
|
+
for (const purpose of purposes) {
|
|
123
|
+
const categories = PURPOSE_DATA_CATEGORIES[purpose] || [];
|
|
124
|
+
for (const cat of categories) {
|
|
125
|
+
if (!dataCategories.includes(cat)) {
|
|
126
|
+
dataCategories.push(cat);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Determine legal basis
|
|
131
|
+
const legalBasis = options.legalBasis || this.determineLegalBasis(purposes);
|
|
132
|
+
const consent = {
|
|
133
|
+
id: generateUUID(),
|
|
134
|
+
version: this.consentVersion,
|
|
135
|
+
granted_at: new Date().toISOString(),
|
|
136
|
+
expires_at: options.expiresAt,
|
|
137
|
+
purposes,
|
|
138
|
+
data_categories: dataCategories,
|
|
139
|
+
legal_basis: legalBasis,
|
|
140
|
+
method: options.method || "explicit",
|
|
141
|
+
evidence: options.evidence,
|
|
142
|
+
};
|
|
143
|
+
this.consents.push(consent);
|
|
144
|
+
await this.save();
|
|
145
|
+
// Log consent event
|
|
146
|
+
const logger = getComplianceLogger();
|
|
147
|
+
await logger.logConsent("granted", { type: "user" }, purposes, true, { consent_id: consent.id, legal_basis: legalBasis });
|
|
148
|
+
return consent;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Revoke consent
|
|
152
|
+
*/
|
|
153
|
+
async revokeConsent(consentId, reason) {
|
|
154
|
+
await this.load();
|
|
155
|
+
const consent = this.consents.find(c => c.id === consentId);
|
|
156
|
+
if (!consent) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
consent.revoked = true;
|
|
160
|
+
consent.revoked_at = new Date().toISOString();
|
|
161
|
+
consent.revocation_reason = reason;
|
|
162
|
+
await this.save();
|
|
163
|
+
// Log revocation event
|
|
164
|
+
const logger = getComplianceLogger();
|
|
165
|
+
await logger.logConsent("revoked", { type: "user" }, consent.purposes, true, { consent_id: consentId, reason });
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Check if consent exists for a specific purpose
|
|
170
|
+
*/
|
|
171
|
+
async hasConsent(purpose) {
|
|
172
|
+
await this.load();
|
|
173
|
+
// Check for implicit consent based on legal basis
|
|
174
|
+
const implicitBasis = AUTOMATIC_LEGAL_BASES[purpose];
|
|
175
|
+
if (implicitBasis !== "consent") {
|
|
176
|
+
// These purposes don't require explicit consent
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
// Check for explicit consent
|
|
180
|
+
const now = new Date();
|
|
181
|
+
return this.consents.some(c => {
|
|
182
|
+
// Must not be revoked
|
|
183
|
+
if (c.revoked)
|
|
184
|
+
return false;
|
|
185
|
+
// Must include the purpose
|
|
186
|
+
if (!c.purposes.includes(purpose))
|
|
187
|
+
return false;
|
|
188
|
+
// Must not be expired
|
|
189
|
+
if (c.expires_at && new Date(c.expires_at) < now)
|
|
190
|
+
return false;
|
|
191
|
+
return true;
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get all active (non-revoked, non-expired) consents
|
|
196
|
+
*/
|
|
197
|
+
async getActiveConsents() {
|
|
198
|
+
await this.load();
|
|
199
|
+
const now = new Date();
|
|
200
|
+
return this.consents.filter(c => {
|
|
201
|
+
if (c.revoked)
|
|
202
|
+
return false;
|
|
203
|
+
if (c.expires_at && new Date(c.expires_at) < now)
|
|
204
|
+
return false;
|
|
205
|
+
return true;
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Get full consent history (for DSAR)
|
|
210
|
+
*/
|
|
211
|
+
async getConsentHistory() {
|
|
212
|
+
await this.load();
|
|
213
|
+
return [...this.consents].sort((a, b) => new Date(b.granted_at).getTime() - new Date(a.granted_at).getTime());
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Export consent records for DSAR
|
|
217
|
+
*/
|
|
218
|
+
async exportConsents() {
|
|
219
|
+
const history = await this.getConsentHistory();
|
|
220
|
+
const exportData = {
|
|
221
|
+
export_date: new Date().toISOString(),
|
|
222
|
+
consent_version: this.consentVersion,
|
|
223
|
+
total_consents: history.length,
|
|
224
|
+
active_consents: history.filter(c => !c.revoked).length,
|
|
225
|
+
revoked_consents: history.filter(c => c.revoked).length,
|
|
226
|
+
consents: history.map(c => ({
|
|
227
|
+
id: c.id,
|
|
228
|
+
version: c.version,
|
|
229
|
+
granted_at: c.granted_at,
|
|
230
|
+
expires_at: c.expires_at,
|
|
231
|
+
purposes: c.purposes,
|
|
232
|
+
data_categories: c.data_categories,
|
|
233
|
+
legal_basis: c.legal_basis,
|
|
234
|
+
method: c.method,
|
|
235
|
+
revoked: c.revoked || false,
|
|
236
|
+
revoked_at: c.revoked_at,
|
|
237
|
+
revocation_reason: c.revocation_reason,
|
|
238
|
+
})),
|
|
239
|
+
};
|
|
240
|
+
return JSON.stringify(exportData, null, 2);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Check if privacy notice needs to be shown (new version or first run)
|
|
244
|
+
*/
|
|
245
|
+
async needsPrivacyNotice() {
|
|
246
|
+
await this.load();
|
|
247
|
+
// First run - need to show notice
|
|
248
|
+
if (this.consents.length === 0) {
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
// Check if there's a consent for the current version
|
|
252
|
+
const currentVersionConsent = this.consents.find(c => c.version === this.consentVersion && !c.revoked);
|
|
253
|
+
return !currentVersionConsent;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Record acknowledgment of privacy notice
|
|
257
|
+
*/
|
|
258
|
+
async acknowledgePrivacyNotice() {
|
|
259
|
+
// Grant consent for all standard purposes (not usage_analytics)
|
|
260
|
+
const standardPurposes = [
|
|
261
|
+
"service_provision",
|
|
262
|
+
"session_management",
|
|
263
|
+
"security_logging",
|
|
264
|
+
"error_diagnostics",
|
|
265
|
+
];
|
|
266
|
+
return this.grantConsent(standardPurposes, {
|
|
267
|
+
method: "explicit",
|
|
268
|
+
evidence: "Privacy notice acknowledged via CLI",
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get consent status summary
|
|
273
|
+
*/
|
|
274
|
+
async getConsentSummary() {
|
|
275
|
+
await this.load();
|
|
276
|
+
const active = await this.getActiveConsents();
|
|
277
|
+
const revoked = this.consents.filter(c => c.revoked);
|
|
278
|
+
// Check each purpose
|
|
279
|
+
const purposes = {
|
|
280
|
+
"service_provision": await this.hasConsent("service_provision"),
|
|
281
|
+
"session_management": await this.hasConsent("session_management"),
|
|
282
|
+
"security_logging": await this.hasConsent("security_logging"),
|
|
283
|
+
"error_diagnostics": await this.hasConsent("error_diagnostics"),
|
|
284
|
+
"usage_analytics": await this.hasConsent("usage_analytics"),
|
|
285
|
+
};
|
|
286
|
+
// Find the most recent consent
|
|
287
|
+
const sortedConsents = [...this.consents].sort((a, b) => new Date(b.granted_at).getTime() - new Date(a.granted_at).getTime());
|
|
288
|
+
return {
|
|
289
|
+
firstRun: this.consents.length === 0,
|
|
290
|
+
consentVersion: this.consentVersion,
|
|
291
|
+
activeConsents: active.length,
|
|
292
|
+
revokedConsents: revoked.length,
|
|
293
|
+
purposes,
|
|
294
|
+
lastConsentDate: sortedConsents[0]?.granted_at,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Delete all consent records (for data erasure)
|
|
299
|
+
*/
|
|
300
|
+
async deleteAllConsents() {
|
|
301
|
+
await this.load();
|
|
302
|
+
const count = this.consents.length;
|
|
303
|
+
// Log before deletion
|
|
304
|
+
const logger = getComplianceLogger();
|
|
305
|
+
await logger.logDataDeletion({ type: "user" }, "consent_records", count, true, { action: "erasure_request" });
|
|
306
|
+
// Clear consents
|
|
307
|
+
this.consents = [];
|
|
308
|
+
await this.save();
|
|
309
|
+
return count;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Determine appropriate legal basis for purposes
|
|
313
|
+
*/
|
|
314
|
+
determineLegalBasis(purposes) {
|
|
315
|
+
// If any purpose requires explicit consent, return "consent"
|
|
316
|
+
for (const purpose of purposes) {
|
|
317
|
+
if (AUTOMATIC_LEGAL_BASES[purpose] === "consent") {
|
|
318
|
+
return "consent";
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// If all purposes are contract-based, return "contract"
|
|
322
|
+
const allContract = purposes.every(p => AUTOMATIC_LEGAL_BASES[p] === "contract");
|
|
323
|
+
if (allContract) {
|
|
324
|
+
return "contract";
|
|
325
|
+
}
|
|
326
|
+
// Mixed or legitimate interest
|
|
327
|
+
return "legitimate_interest";
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Validate that all required consents are in place
|
|
331
|
+
*/
|
|
332
|
+
async validateConsents() {
|
|
333
|
+
const requiredPurposes = [
|
|
334
|
+
"service_provision",
|
|
335
|
+
"session_management",
|
|
336
|
+
];
|
|
337
|
+
const missing = [];
|
|
338
|
+
for (const purpose of requiredPurposes) {
|
|
339
|
+
const hasIt = await this.hasConsent(purpose);
|
|
340
|
+
if (!hasIt) {
|
|
341
|
+
missing.push(purpose);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return {
|
|
345
|
+
valid: missing.length === 0,
|
|
346
|
+
missing,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
// ============================================
|
|
351
|
+
// SINGLETON ACCESS
|
|
352
|
+
// ============================================
|
|
353
|
+
/**
|
|
354
|
+
* Get the consent manager instance
|
|
355
|
+
*/
|
|
356
|
+
export function getConsentManager() {
|
|
357
|
+
return ConsentManager.getInstance();
|
|
358
|
+
}
|
|
359
|
+
// ============================================
|
|
360
|
+
// CONVENIENCE EXPORTS
|
|
361
|
+
// ============================================
|
|
362
|
+
/**
|
|
363
|
+
* Check if this is the first run
|
|
364
|
+
*/
|
|
365
|
+
export async function isFirstRun() {
|
|
366
|
+
return getConsentManager().isFirstRun();
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Check if consent exists for a purpose
|
|
370
|
+
*/
|
|
371
|
+
export async function hasConsent(purpose) {
|
|
372
|
+
return getConsentManager().hasConsent(purpose);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Grant consent for purposes
|
|
376
|
+
*/
|
|
377
|
+
export async function grantConsent(purposes, options) {
|
|
378
|
+
return getConsentManager().grantConsent(purposes, options);
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Revoke a consent
|
|
382
|
+
*/
|
|
383
|
+
export async function revokeConsent(consentId, reason) {
|
|
384
|
+
return getConsentManager().revokeConsent(consentId, reason);
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=consent-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent-manager.js","sourceRoot":"","sources":["../../src/compliance/consent-manager.ts"],"names":[],"mappings":"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"}
|