@shin1ohno/sage 0.8.8 → 0.9.3
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 +31 -0
- package/dist/cli/http-server-with-config.d.ts +2 -0
- package/dist/cli/http-server-with-config.d.ts.map +1 -1
- package/dist/cli/http-server-with-config.js +71 -0
- package/dist/cli/http-server-with-config.js.map +1 -1
- package/dist/cli/main-entry.d.ts.map +1 -1
- package/dist/cli/main-entry.js +1 -0
- package/dist/cli/main-entry.js.map +1 -1
- package/dist/cli/parser.d.ts +2 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +7 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/config/validation.d.ts +721 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +203 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/integrations/apple-reminders.d.ts.map +1 -1
- package/dist/integrations/apple-reminders.js +6 -5
- package/dist/integrations/apple-reminders.js.map +1 -1
- package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
- package/dist/integrations/calendar-event-creator.js +2 -1
- package/dist/integrations/calendar-event-creator.js.map +1 -1
- package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
- package/dist/integrations/calendar-event-deleter.js +2 -1
- package/dist/integrations/calendar-event-deleter.js.map +1 -1
- package/dist/integrations/calendar-event-response.d.ts.map +1 -1
- package/dist/integrations/calendar-event-response.js +4 -3
- package/dist/integrations/calendar-event-response.js.map +1 -1
- package/dist/integrations/calendar-service.d.ts +14 -0
- package/dist/integrations/calendar-service.d.ts.map +1 -1
- package/dist/integrations/calendar-service.js +6 -5
- package/dist/integrations/calendar-service.js.map +1 -1
- package/dist/integrations/calendar-source-manager.d.ts +86 -3
- package/dist/integrations/calendar-source-manager.d.ts.map +1 -1
- package/dist/integrations/calendar-source-manager.js +152 -20
- package/dist/integrations/calendar-source-manager.js.map +1 -1
- package/dist/integrations/google-calendar-service.d.ts +55 -3
- package/dist/integrations/google-calendar-service.d.ts.map +1 -1
- package/dist/integrations/google-calendar-service.js +215 -5
- package/dist/integrations/google-calendar-service.js.map +1 -1
- package/dist/integrations/notion-mcp.d.ts.map +1 -1
- package/dist/integrations/notion-mcp.js +5 -4
- package/dist/integrations/notion-mcp.js.map +1 -1
- package/dist/integrations/todo-list-manager.d.ts.map +1 -1
- package/dist/integrations/todo-list-manager.js +3 -2
- package/dist/integrations/todo-list-manager.js.map +1 -1
- package/dist/oauth/encryption-service.d.ts +104 -0
- package/dist/oauth/encryption-service.d.ts.map +1 -0
- package/dist/oauth/encryption-service.js +271 -0
- package/dist/oauth/encryption-service.js.map +1 -0
- package/dist/oauth/file-mutex.d.ts +68 -0
- package/dist/oauth/file-mutex.d.ts.map +1 -0
- package/dist/oauth/file-mutex.js +141 -0
- package/dist/oauth/file-mutex.js.map +1 -0
- package/dist/oauth/google-oauth-handler.d.ts +8 -9
- package/dist/oauth/google-oauth-handler.d.ts.map +1 -1
- package/dist/oauth/google-oauth-handler.js +30 -65
- package/dist/oauth/google-oauth-handler.js.map +1 -1
- package/dist/oauth/index.d.ts +1 -0
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +2 -0
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/oauth-server.d.ts +61 -1
- package/dist/oauth/oauth-server.d.ts.map +1 -1
- package/dist/oauth/oauth-server.js +177 -40
- package/dist/oauth/oauth-server.js.map +1 -1
- package/dist/oauth/persistent-client-store.d.ts +58 -0
- package/dist/oauth/persistent-client-store.d.ts.map +1 -0
- package/dist/oauth/persistent-client-store.js +188 -0
- package/dist/oauth/persistent-client-store.js.map +1 -0
- package/dist/oauth/persistent-refresh-token-store.d.ts +77 -0
- package/dist/oauth/persistent-refresh-token-store.d.ts.map +1 -0
- package/dist/oauth/persistent-refresh-token-store.js +226 -0
- package/dist/oauth/persistent-refresh-token-store.js.map +1 -0
- package/dist/oauth/persistent-session-store.d.ts +69 -0
- package/dist/oauth/persistent-session-store.d.ts.map +1 -0
- package/dist/oauth/persistent-session-store.js +155 -0
- package/dist/oauth/persistent-session-store.js.map +1 -0
- package/dist/oauth/session-store.d.ts +31 -0
- package/dist/oauth/session-store.d.ts.map +1 -0
- package/dist/oauth/session-store.js +47 -0
- package/dist/oauth/session-store.js.map +1 -0
- package/dist/remote/cloud-config.d.ts.map +1 -1
- package/dist/remote/cloud-config.js +2 -1
- package/dist/remote/cloud-config.js.map +1 -1
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +3 -2
- package/dist/services/container.js.map +1 -1
- package/dist/services/working-cadence.d.ts +37 -1
- package/dist/services/working-cadence.d.ts.map +1 -1
- package/dist/services/working-cadence.js +152 -13
- package/dist/services/working-cadence.js.map +1 -1
- package/dist/tools/calendar/handlers.d.ts +82 -3
- package/dist/tools/calendar/handlers.d.ts.map +1 -1
- package/dist/tools/calendar/handlers.js +200 -16
- package/dist/tools/calendar/handlers.js.map +1 -1
- package/dist/types/google-calendar-types.d.ts +150 -3
- package/dist/types/google-calendar-types.d.ts.map +1 -1
- package/dist/types/google-calendar-types.js +79 -2
- package/dist/types/google-calendar-types.js.map +1 -1
- package/dist/types/task.d.ts +14 -0
- package/dist/types/task.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +28 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +61 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/version.js +1 -1
- package/package.json +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-list-manager.js","sourceRoot":"","sources":["../../src/integrations/todo-list-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"todo-list-manager.js","sourceRoot":"","sources":["../../src/integrations/todo-list-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encryption Service for OAuth Data
|
|
3
|
+
* Requirements: FR-4 (Encryption Key Management)
|
|
4
|
+
*
|
|
5
|
+
* Provides AES-256-GCM encryption/decryption for sensitive OAuth data.
|
|
6
|
+
* Supports key derivation via scrypt and secure key management.
|
|
7
|
+
*/
|
|
8
|
+
import { FileMutexMetrics } from './file-mutex.js';
|
|
9
|
+
/**
|
|
10
|
+
* Encryption Service Configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface EncryptionServiceConfig {
|
|
13
|
+
encryptionKey?: string;
|
|
14
|
+
keyStoragePath?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Encryption Service Class
|
|
18
|
+
*
|
|
19
|
+
* Handles AES-256-GCM encryption/decryption for OAuth data persistence.
|
|
20
|
+
* Manages encryption key lifecycle and secure file operations.
|
|
21
|
+
*/
|
|
22
|
+
export declare class EncryptionService {
|
|
23
|
+
private encryptionKey;
|
|
24
|
+
private keyStoragePath;
|
|
25
|
+
private initialized;
|
|
26
|
+
private fileMutex;
|
|
27
|
+
constructor(config?: EncryptionServiceConfig);
|
|
28
|
+
/**
|
|
29
|
+
* Initialize encryption service and load/generate key
|
|
30
|
+
*
|
|
31
|
+
* Key loading priority:
|
|
32
|
+
* 1. SAGE_ENCRYPTION_KEY environment variable (highest priority)
|
|
33
|
+
* 2. Persistent key file at ~/.sage/oauth_encryption_key
|
|
34
|
+
* 3. Generate new key and save (with warning)
|
|
35
|
+
*/
|
|
36
|
+
initialize(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Encrypt data using AES-256-GCM
|
|
39
|
+
*
|
|
40
|
+
* Format: salt:iv:authTag:encrypted
|
|
41
|
+
*
|
|
42
|
+
* @param data - Plain text data to encrypt
|
|
43
|
+
* @returns Encrypted data in format "salt:iv:authTag:encrypted"
|
|
44
|
+
*/
|
|
45
|
+
encrypt(data: string): Promise<string>;
|
|
46
|
+
/**
|
|
47
|
+
* Decrypt data using AES-256-GCM
|
|
48
|
+
*
|
|
49
|
+
* @param encryptedData - Encrypted data in format "salt:iv:authTag:encrypted"
|
|
50
|
+
* @returns Decrypted plain text data
|
|
51
|
+
*/
|
|
52
|
+
decrypt(encryptedData: string): Promise<string>;
|
|
53
|
+
/**
|
|
54
|
+
* Encrypt and save data to file
|
|
55
|
+
*
|
|
56
|
+
* Uses atomic write pattern (temp file + rename) to prevent corruption.
|
|
57
|
+
* Serialized with mutex to prevent concurrent write race conditions.
|
|
58
|
+
*
|
|
59
|
+
* @param data - Plain text data to encrypt and save
|
|
60
|
+
* @param filePath - Destination file path
|
|
61
|
+
*/
|
|
62
|
+
encryptToFile(data: string, filePath: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Load and decrypt data from file
|
|
65
|
+
*
|
|
66
|
+
* Serialized with mutex to prevent read-during-write issues.
|
|
67
|
+
*
|
|
68
|
+
* @param filePath - Source file path
|
|
69
|
+
* @returns Decrypted data or null if file doesn't exist
|
|
70
|
+
*/
|
|
71
|
+
decryptFromFile(filePath: string): Promise<string | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if encryption service is initialized
|
|
74
|
+
*/
|
|
75
|
+
isInitialized(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Get the storage path for the encryption key
|
|
78
|
+
*/
|
|
79
|
+
getKeyStoragePath(): string;
|
|
80
|
+
/**
|
|
81
|
+
* Get health status for monitoring
|
|
82
|
+
*/
|
|
83
|
+
getHealthStatus(): {
|
|
84
|
+
initialized: boolean;
|
|
85
|
+
keySource: 'environment' | 'file' | 'generated';
|
|
86
|
+
keyStoragePath: string;
|
|
87
|
+
mutex: FileMutexMetrics;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Get mutex metrics for monitoring
|
|
91
|
+
*/
|
|
92
|
+
getMutexMetrics(): FileMutexMetrics;
|
|
93
|
+
/**
|
|
94
|
+
* Wait for all pending file operations to complete
|
|
95
|
+
*
|
|
96
|
+
* Used for graceful shutdown to ensure all data is persisted.
|
|
97
|
+
*/
|
|
98
|
+
waitForPendingWrites(): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Check if there are pending file operations
|
|
101
|
+
*/
|
|
102
|
+
hasPendingWrites(): boolean;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=encryption-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-service.d.ts","sourceRoot":"","sources":["../../src/oauth/encryption-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAa,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAK9D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAA8B;gBAEnC,MAAM,GAAE,uBAA4B;IAKhD;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDjC;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5C;;;;;OAKG;IACG,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCrD;;;;;;;;OAQG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClE;;;;;;;OAOG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB/D;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,eAAe,IAAI;QACjB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;QAChD,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,gBAAgB,CAAC;KACzB;IAgBD;;OAEG;IACH,eAAe,IAAI,gBAAgB;IAInC;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;OAEG;IACH,gBAAgB,IAAI,OAAO;CAG5B"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encryption Service for OAuth Data
|
|
3
|
+
* Requirements: FR-4 (Encryption Key Management)
|
|
4
|
+
*
|
|
5
|
+
* Provides AES-256-GCM encryption/decryption for sensitive OAuth data.
|
|
6
|
+
* Supports key derivation via scrypt and secure key management.
|
|
7
|
+
*/
|
|
8
|
+
import { createCipheriv, createDecipheriv, randomBytes, scrypt } from 'crypto';
|
|
9
|
+
import { promisify } from 'util';
|
|
10
|
+
import { readFile, writeFile, mkdir, chmod, unlink, rename } from 'fs/promises';
|
|
11
|
+
import { join, dirname } from 'path';
|
|
12
|
+
import { homedir } from 'os';
|
|
13
|
+
import { existsSync } from 'fs';
|
|
14
|
+
import { FileMutex } from './file-mutex.js';
|
|
15
|
+
import { oauthLogger } from '../utils/logger.js';
|
|
16
|
+
const scryptAsync = promisify(scrypt);
|
|
17
|
+
/**
|
|
18
|
+
* Encryption Service Class
|
|
19
|
+
*
|
|
20
|
+
* Handles AES-256-GCM encryption/decryption for OAuth data persistence.
|
|
21
|
+
* Manages encryption key lifecycle and secure file operations.
|
|
22
|
+
*/
|
|
23
|
+
export class EncryptionService {
|
|
24
|
+
encryptionKey;
|
|
25
|
+
keyStoragePath;
|
|
26
|
+
initialized = false;
|
|
27
|
+
fileMutex = new FileMutex();
|
|
28
|
+
constructor(config = {}) {
|
|
29
|
+
this.keyStoragePath = config.keyStoragePath || join(homedir(), '.sage', 'oauth_encryption_key');
|
|
30
|
+
this.encryptionKey = config.encryptionKey || '';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Initialize encryption service and load/generate key
|
|
34
|
+
*
|
|
35
|
+
* Key loading priority:
|
|
36
|
+
* 1. SAGE_ENCRYPTION_KEY environment variable (highest priority)
|
|
37
|
+
* 2. Persistent key file at ~/.sage/oauth_encryption_key
|
|
38
|
+
* 3. Generate new key and save (with warning)
|
|
39
|
+
*/
|
|
40
|
+
async initialize() {
|
|
41
|
+
if (this.initialized) {
|
|
42
|
+
return; // Already initialized
|
|
43
|
+
}
|
|
44
|
+
// Priority 1: Use SAGE_ENCRYPTION_KEY environment variable
|
|
45
|
+
if (process.env.SAGE_ENCRYPTION_KEY) {
|
|
46
|
+
this.encryptionKey = process.env.SAGE_ENCRYPTION_KEY;
|
|
47
|
+
oauthLogger.info('Using encryption key from SAGE_ENCRYPTION_KEY environment variable');
|
|
48
|
+
this.initialized = true;
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Priority 2: Load existing key from storage
|
|
52
|
+
if (existsSync(this.keyStoragePath)) {
|
|
53
|
+
try {
|
|
54
|
+
this.encryptionKey = (await readFile(this.keyStoragePath, 'utf-8')).trim();
|
|
55
|
+
oauthLogger.info('Loaded encryption key from storage');
|
|
56
|
+
this.initialized = true;
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
oauthLogger.error({ err: error }, 'Failed to load encryption key');
|
|
61
|
+
// Fall through to generation
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Priority 3: Generate new key and store it
|
|
65
|
+
oauthLogger.warn('No encryption key found. Generating new key...');
|
|
66
|
+
oauthLogger.warn('Warning: Set SAGE_ENCRYPTION_KEY environment variable for production use');
|
|
67
|
+
this.encryptionKey = randomBytes(32).toString('hex');
|
|
68
|
+
// Ensure directory exists with secure permissions
|
|
69
|
+
const dir = join(homedir(), '.sage');
|
|
70
|
+
await mkdir(dir, { recursive: true, mode: 0o700 });
|
|
71
|
+
// Write key with restricted permissions (read/write for owner only)
|
|
72
|
+
await writeFile(this.keyStoragePath, this.encryptionKey, { mode: 0o600 });
|
|
73
|
+
// Ensure permissions are set correctly (some systems ignore mode in writeFile)
|
|
74
|
+
try {
|
|
75
|
+
await chmod(this.keyStoragePath, 0o600);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
// chmod may fail on Windows, log but continue
|
|
79
|
+
oauthLogger.warn('Could not set file permissions (may not be supported on this OS)');
|
|
80
|
+
}
|
|
81
|
+
oauthLogger.info({ path: this.keyStoragePath }, 'Generated encryption key stored');
|
|
82
|
+
this.initialized = true;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Encrypt data using AES-256-GCM
|
|
86
|
+
*
|
|
87
|
+
* Format: salt:iv:authTag:encrypted
|
|
88
|
+
*
|
|
89
|
+
* @param data - Plain text data to encrypt
|
|
90
|
+
* @returns Encrypted data in format "salt:iv:authTag:encrypted"
|
|
91
|
+
*/
|
|
92
|
+
async encrypt(data) {
|
|
93
|
+
if (!this.initialized) {
|
|
94
|
+
throw new Error('EncryptionService not initialized. Call initialize() first.');
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
// Generate salt and derive key using scrypt
|
|
98
|
+
const salt = randomBytes(16);
|
|
99
|
+
const key = (await scryptAsync(this.encryptionKey, salt, 32));
|
|
100
|
+
// Generate initialization vector
|
|
101
|
+
const iv = randomBytes(16);
|
|
102
|
+
// Create cipher
|
|
103
|
+
const cipher = createCipheriv('aes-256-gcm', key, iv);
|
|
104
|
+
// Encrypt data
|
|
105
|
+
let encrypted = cipher.update(data, 'utf8', 'hex');
|
|
106
|
+
encrypted += cipher.final('hex');
|
|
107
|
+
// Get authentication tag for integrity verification
|
|
108
|
+
const authTag = cipher.getAuthTag();
|
|
109
|
+
// Combine: salt:iv:authTag:encrypted
|
|
110
|
+
return `${salt.toString('hex')}:${iv.toString('hex')}:${authTag.toString('hex')}:${encrypted}`;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
oauthLogger.error({ err: error }, 'Encryption failed');
|
|
114
|
+
throw new Error('Failed to encrypt data');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Decrypt data using AES-256-GCM
|
|
119
|
+
*
|
|
120
|
+
* @param encryptedData - Encrypted data in format "salt:iv:authTag:encrypted"
|
|
121
|
+
* @returns Decrypted plain text data
|
|
122
|
+
*/
|
|
123
|
+
async decrypt(encryptedData) {
|
|
124
|
+
if (!this.initialized) {
|
|
125
|
+
throw new Error('EncryptionService not initialized. Call initialize() first.');
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
// Split encrypted data
|
|
129
|
+
const parts = encryptedData.split(':');
|
|
130
|
+
if (parts.length !== 4) {
|
|
131
|
+
throw new Error('Invalid encrypted data format');
|
|
132
|
+
}
|
|
133
|
+
const [saltHex, ivHex, authTagHex, encrypted] = parts;
|
|
134
|
+
// Convert from hex
|
|
135
|
+
const salt = Buffer.from(saltHex, 'hex');
|
|
136
|
+
const iv = Buffer.from(ivHex, 'hex');
|
|
137
|
+
const authTag = Buffer.from(authTagHex, 'hex');
|
|
138
|
+
// Derive key from encryption key using scrypt
|
|
139
|
+
const key = (await scryptAsync(this.encryptionKey, salt, 32));
|
|
140
|
+
// Create decipher
|
|
141
|
+
const decipher = createDecipheriv('aes-256-gcm', key, iv);
|
|
142
|
+
decipher.setAuthTag(authTag);
|
|
143
|
+
// Decrypt data
|
|
144
|
+
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
|
|
145
|
+
decrypted += decipher.final('utf8');
|
|
146
|
+
return decrypted;
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
oauthLogger.error({ err: error }, 'Decryption failed');
|
|
150
|
+
throw new Error('Failed to decrypt data');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Encrypt and save data to file
|
|
155
|
+
*
|
|
156
|
+
* Uses atomic write pattern (temp file + rename) to prevent corruption.
|
|
157
|
+
* Serialized with mutex to prevent concurrent write race conditions.
|
|
158
|
+
*
|
|
159
|
+
* @param data - Plain text data to encrypt and save
|
|
160
|
+
* @param filePath - Destination file path
|
|
161
|
+
*/
|
|
162
|
+
async encryptToFile(data, filePath) {
|
|
163
|
+
await this.fileMutex.withLock(filePath, async () => {
|
|
164
|
+
const encrypted = await this.encrypt(data);
|
|
165
|
+
// Ensure directory exists with secure permissions
|
|
166
|
+
const dir = dirname(filePath);
|
|
167
|
+
await mkdir(dir, { recursive: true, mode: 0o700 });
|
|
168
|
+
// Atomic write using temp file + rename pattern
|
|
169
|
+
const tempPath = `${filePath}.tmp`;
|
|
170
|
+
try {
|
|
171
|
+
// Write to temp file with restricted permissions
|
|
172
|
+
await writeFile(tempPath, encrypted, { mode: 0o600 });
|
|
173
|
+
// Ensure permissions are set (some systems ignore mode in writeFile)
|
|
174
|
+
try {
|
|
175
|
+
await chmod(tempPath, 0o600);
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
// chmod may fail on Windows, log but continue
|
|
179
|
+
oauthLogger.warn('Could not set file permissions (may not be supported on this OS)');
|
|
180
|
+
}
|
|
181
|
+
// Rename is atomic on most filesystems - prevents corruption
|
|
182
|
+
await rename(tempPath, filePath);
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
oauthLogger.error({ err: error, filePath }, 'Failed to write file');
|
|
186
|
+
// Clean up temp file if it exists
|
|
187
|
+
try {
|
|
188
|
+
await unlink(tempPath);
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// Ignore cleanup errors
|
|
192
|
+
}
|
|
193
|
+
throw error;
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Load and decrypt data from file
|
|
199
|
+
*
|
|
200
|
+
* Serialized with mutex to prevent read-during-write issues.
|
|
201
|
+
*
|
|
202
|
+
* @param filePath - Source file path
|
|
203
|
+
* @returns Decrypted data or null if file doesn't exist
|
|
204
|
+
*/
|
|
205
|
+
async decryptFromFile(filePath) {
|
|
206
|
+
return await this.fileMutex.withLock(filePath, async () => {
|
|
207
|
+
try {
|
|
208
|
+
if (!existsSync(filePath)) {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
const encrypted = await readFile(filePath, 'utf-8');
|
|
212
|
+
return await this.decrypt(encrypted);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
oauthLogger.error({ err: error, filePath }, 'Failed to decrypt file');
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Check if encryption service is initialized
|
|
222
|
+
*/
|
|
223
|
+
isInitialized() {
|
|
224
|
+
return this.initialized;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get the storage path for the encryption key
|
|
228
|
+
*/
|
|
229
|
+
getKeyStoragePath() {
|
|
230
|
+
return this.keyStoragePath;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get health status for monitoring
|
|
234
|
+
*/
|
|
235
|
+
getHealthStatus() {
|
|
236
|
+
let keySource = 'generated';
|
|
237
|
+
if (process.env.SAGE_ENCRYPTION_KEY) {
|
|
238
|
+
keySource = 'environment';
|
|
239
|
+
}
|
|
240
|
+
else if (existsSync(this.keyStoragePath)) {
|
|
241
|
+
keySource = 'file';
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
initialized: this.initialized,
|
|
245
|
+
keySource,
|
|
246
|
+
keyStoragePath: this.keyStoragePath,
|
|
247
|
+
mutex: this.fileMutex.getMetrics(),
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Get mutex metrics for monitoring
|
|
252
|
+
*/
|
|
253
|
+
getMutexMetrics() {
|
|
254
|
+
return this.fileMutex.getMetrics();
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Wait for all pending file operations to complete
|
|
258
|
+
*
|
|
259
|
+
* Used for graceful shutdown to ensure all data is persisted.
|
|
260
|
+
*/
|
|
261
|
+
async waitForPendingWrites() {
|
|
262
|
+
await this.fileMutex.waitForPending();
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Check if there are pending file operations
|
|
266
|
+
*/
|
|
267
|
+
hasPendingWrites() {
|
|
268
|
+
return this.fileMutex.hasPendingOperations();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=encryption-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-service.js","sourceRoot":"","sources":["../../src/oauth/encryption-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Mutex for Serializing File Operations
|
|
3
|
+
* Requirements: FR-1 (File Write Serialization), FR-2 (Per-File Mutex)
|
|
4
|
+
*
|
|
5
|
+
* Provides per-file mutex to prevent race conditions during concurrent
|
|
6
|
+
* encrypted file operations. Uses Promise queue pattern for serialization.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Metrics for monitoring mutex performance
|
|
10
|
+
*/
|
|
11
|
+
export interface FileMutexMetrics {
|
|
12
|
+
activeFiles: number;
|
|
13
|
+
totalWaitTimeMs: number;
|
|
14
|
+
longestWaitMs: number;
|
|
15
|
+
queueDepthWarnings: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* File Mutex Class
|
|
19
|
+
*
|
|
20
|
+
* Provides per-file locking mechanism to serialize file operations.
|
|
21
|
+
* Each file path gets its own independent mutex, allowing parallel
|
|
22
|
+
* operations on different files while serializing operations on the same file.
|
|
23
|
+
*/
|
|
24
|
+
export declare class FileMutex {
|
|
25
|
+
private locks;
|
|
26
|
+
private metrics;
|
|
27
|
+
private static readonly QUEUE_DEPTH_WARNING_THRESHOLD;
|
|
28
|
+
private static readonly WAIT_TIME_WARNING_THRESHOLD_MS;
|
|
29
|
+
/**
|
|
30
|
+
* Execute an operation with exclusive lock on the specified file
|
|
31
|
+
*
|
|
32
|
+
* @param filePath - Path to the file to lock
|
|
33
|
+
* @param operation - Async operation to execute while holding the lock
|
|
34
|
+
* @returns Result of the operation
|
|
35
|
+
*/
|
|
36
|
+
withLock<T>(filePath: string, operation: () => Promise<T>): Promise<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Normalize file path for consistent lock identification
|
|
39
|
+
*/
|
|
40
|
+
private normalizePath;
|
|
41
|
+
/**
|
|
42
|
+
* Check and warn if queue depth exceeds threshold
|
|
43
|
+
*/
|
|
44
|
+
private checkQueueWarnings;
|
|
45
|
+
/**
|
|
46
|
+
* Record wait time and log if exceeds thresholds
|
|
47
|
+
*/
|
|
48
|
+
private recordWaitTime;
|
|
49
|
+
/**
|
|
50
|
+
* Get metrics for monitoring/debugging
|
|
51
|
+
*/
|
|
52
|
+
getMetrics(): FileMutexMetrics;
|
|
53
|
+
/**
|
|
54
|
+
* Check if there are pending operations for any file
|
|
55
|
+
*/
|
|
56
|
+
hasPendingOperations(): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Wait for all pending operations to complete
|
|
59
|
+
*
|
|
60
|
+
* Used for graceful shutdown to ensure all queued operations finish.
|
|
61
|
+
*/
|
|
62
|
+
waitForPending(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Reset metrics (primarily for testing)
|
|
65
|
+
*/
|
|
66
|
+
resetMetrics(): void;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=file-mutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-mutex.d.ts","sourceRoot":"","sources":["../../src/oauth/file-mutex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAaD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAKb;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAM;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAQ;IAE9D;;;;;;OAMG;IACG,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyC5E;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,UAAU,IAAI,gBAAgB;IAI9B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAS/B;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;OAEG;IACH,YAAY,IAAI,IAAI;CAQrB"}
|