@marktoflow/core 2.0.0-alpha.9 → 2.0.1
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 +24 -222
- package/dist/built-in-operations.d.ts +150 -0
- package/dist/built-in-operations.d.ts.map +1 -0
- package/dist/built-in-operations.js +799 -0
- package/dist/built-in-operations.js.map +1 -0
- package/dist/core-tools.d.ts +39 -0
- package/dist/core-tools.d.ts.map +1 -0
- package/dist/core-tools.js +58 -0
- package/dist/core-tools.js.map +1 -0
- package/dist/credentials.d.ts +60 -1
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +229 -4
- package/dist/credentials.js.map +1 -1
- package/dist/engine.d.ts +92 -3
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +937 -59
- package/dist/engine.js.map +1 -1
- package/dist/file-operations.d.ts +86 -0
- package/dist/file-operations.d.ts.map +1 -0
- package/dist/file-operations.js +363 -0
- package/dist/file-operations.js.map +1 -0
- package/dist/index.d.ts +16 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -4
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +40 -2
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +166 -13
- package/dist/logging.js.map +1 -1
- package/dist/models.d.ts +1441 -54
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +124 -2
- package/dist/models.js.map +1 -1
- package/dist/nunjucks-filters.d.ts +271 -0
- package/dist/nunjucks-filters.d.ts.map +1 -0
- package/dist/nunjucks-filters.js +648 -0
- package/dist/nunjucks-filters.js.map +1 -0
- package/dist/oauth-manager.d.ts +128 -0
- package/dist/oauth-manager.d.ts.map +1 -0
- package/dist/oauth-manager.js +291 -0
- package/dist/oauth-manager.js.map +1 -0
- package/dist/oauth-refresh.d.ts +37 -0
- package/dist/oauth-refresh.d.ts.map +1 -0
- package/dist/oauth-refresh.js +76 -0
- package/dist/oauth-refresh.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +113 -3
- package/dist/parser.js.map +1 -1
- package/dist/permissions.d.ts +49 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +286 -0
- package/dist/permissions.js.map +1 -0
- package/dist/prompt-loader.d.ts +53 -0
- package/dist/prompt-loader.d.ts.map +1 -0
- package/dist/prompt-loader.js +205 -0
- package/dist/prompt-loader.js.map +1 -0
- package/dist/scheduler.d.ts +22 -3
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +72 -73
- package/dist/scheduler.js.map +1 -1
- package/dist/script-executor.d.ts +65 -0
- package/dist/script-executor.d.ts.map +1 -0
- package/dist/script-executor.js +261 -0
- package/dist/script-executor.js.map +1 -0
- package/dist/sdk-registry.d.ts +20 -2
- package/dist/sdk-registry.d.ts.map +1 -1
- package/dist/sdk-registry.js +100 -15
- package/dist/sdk-registry.js.map +1 -1
- package/dist/secret-providers/index.d.ts +12 -0
- package/dist/secret-providers/index.d.ts.map +1 -0
- package/dist/secret-providers/index.js +11 -0
- package/dist/secret-providers/index.js.map +1 -0
- package/dist/secret-providers/providers/aws.d.ts +32 -0
- package/dist/secret-providers/providers/aws.d.ts.map +1 -0
- package/dist/secret-providers/providers/aws.js +118 -0
- package/dist/secret-providers/providers/aws.js.map +1 -0
- package/dist/secret-providers/providers/azure.d.ts +40 -0
- package/dist/secret-providers/providers/azure.d.ts.map +1 -0
- package/dist/secret-providers/providers/azure.js +170 -0
- package/dist/secret-providers/providers/azure.js.map +1 -0
- package/dist/secret-providers/providers/env.d.ts +26 -0
- package/dist/secret-providers/providers/env.d.ts.map +1 -0
- package/dist/secret-providers/providers/env.js +59 -0
- package/dist/secret-providers/providers/env.js.map +1 -0
- package/dist/secret-providers/providers/vault.d.ts +39 -0
- package/dist/secret-providers/providers/vault.d.ts.map +1 -0
- package/dist/secret-providers/providers/vault.js +180 -0
- package/dist/secret-providers/providers/vault.js.map +1 -0
- package/dist/secret-providers/secret-manager.d.ts +72 -0
- package/dist/secret-providers/secret-manager.d.ts.map +1 -0
- package/dist/secret-providers/secret-manager.js +226 -0
- package/dist/secret-providers/secret-manager.js.map +1 -0
- package/dist/secret-providers/types.d.ts +105 -0
- package/dist/secret-providers/types.d.ts.map +1 -0
- package/dist/secret-providers/types.js +8 -0
- package/dist/secret-providers/types.js.map +1 -0
- package/dist/security.d.ts +1 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +4 -0
- package/dist/security.js.map +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +16 -9
- package/dist/state.js.map +1 -1
- package/dist/template-engine.d.ts +51 -0
- package/dist/template-engine.d.ts.map +1 -0
- package/dist/template-engine.js +227 -0
- package/dist/template-engine.js.map +1 -0
- package/dist/templates.d.ts +10 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +21 -17
- package/dist/templates.js.map +1 -1
- package/dist/tools/mcp-tool.js +9 -9
- package/dist/tools/mcp-tool.js.map +1 -1
- package/dist/trigger-manager.js +1 -1
- package/dist/trigger-manager.js.map +1 -1
- package/dist/workflow-tools.d.ts +102 -0
- package/dist/workflow-tools.d.ts.map +1 -0
- package/dist/workflow-tools.js +130 -0
- package/dist/workflow-tools.js.map +1 -0
- package/package.json +30 -12
- package/LICENSE +0 -201
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built-in-operations.js","sourceRoot":"","sources":["../src/built-in-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core built-in tools for marktoflow workflows
|
|
3
|
+
*
|
|
4
|
+
* These tools are always available without needing to be declared in the workflow.
|
|
5
|
+
*/
|
|
6
|
+
import { SDKInitializer } from './sdk-registry.js';
|
|
7
|
+
/**
|
|
8
|
+
* Core tools client that provides built-in workflow actions
|
|
9
|
+
*/
|
|
10
|
+
export declare class CoreToolsClient {
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Log a message during workflow execution
|
|
14
|
+
*/
|
|
15
|
+
log(inputs: {
|
|
16
|
+
level: string;
|
|
17
|
+
message: string;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}): Promise<{
|
|
20
|
+
logged: true;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Write content to a file
|
|
24
|
+
*/
|
|
25
|
+
writeFile(inputs: {
|
|
26
|
+
path: string;
|
|
27
|
+
content: string;
|
|
28
|
+
encoding?: string;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
written: true;
|
|
31
|
+
path: string;
|
|
32
|
+
size: number;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Core SDK initializer
|
|
37
|
+
*/
|
|
38
|
+
export declare const CoreInitializer: SDKInitializer;
|
|
39
|
+
//# sourceMappingURL=core-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-tools.d.ts","sourceRoot":"","sources":["../src/core-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD;;GAEG;AACH,qBAAa,eAAe;;IAK1B;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;IAkB7B;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAiB3D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAI7B,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core built-in tools for marktoflow workflows
|
|
3
|
+
*
|
|
4
|
+
* These tools are always available without needing to be declared in the workflow.
|
|
5
|
+
*/
|
|
6
|
+
import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
7
|
+
import { dirname } from 'node:path';
|
|
8
|
+
/**
|
|
9
|
+
* Core tools client that provides built-in workflow actions
|
|
10
|
+
*/
|
|
11
|
+
export class CoreToolsClient {
|
|
12
|
+
constructor() {
|
|
13
|
+
// No-op constructor - logger integration not yet implemented
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Log a message during workflow execution
|
|
17
|
+
*/
|
|
18
|
+
async log(inputs) {
|
|
19
|
+
const level = (inputs.level || 'info');
|
|
20
|
+
const message = inputs.message;
|
|
21
|
+
const metadata = inputs.metadata;
|
|
22
|
+
// Use console logging (logger integration is not fully implemented yet)
|
|
23
|
+
const logFn = level === 'error' || level === 'critical' ? console.error :
|
|
24
|
+
level === 'warning' ? console.warn : console.log;
|
|
25
|
+
if (metadata && Object.keys(metadata).length > 0) {
|
|
26
|
+
logFn(`[${level.toUpperCase()}] ${message}`, metadata);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
logFn(`[${level.toUpperCase()}] ${message}`);
|
|
30
|
+
}
|
|
31
|
+
return { logged: true };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Write content to a file
|
|
35
|
+
*/
|
|
36
|
+
async writeFile(inputs) {
|
|
37
|
+
const filePath = inputs.path;
|
|
38
|
+
const content = inputs.content;
|
|
39
|
+
const encoding = (inputs.encoding || 'utf-8');
|
|
40
|
+
// Ensure directory exists
|
|
41
|
+
const dir = dirname(filePath);
|
|
42
|
+
if (dir && dir !== '.' && !existsSync(dir)) {
|
|
43
|
+
mkdirSync(dir, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
writeFileSync(filePath, content, encoding);
|
|
46
|
+
console.log(`[INFO] File written: ${filePath} (${content.length} bytes)`);
|
|
47
|
+
return { written: true, path: filePath, size: content.length };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Core SDK initializer
|
|
52
|
+
*/
|
|
53
|
+
export const CoreInitializer = {
|
|
54
|
+
async initialize(_module, _config) {
|
|
55
|
+
return new CoreToolsClient();
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=core-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-tools.js","sourceRoot":"","sources":["../src/core-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B;QACE,6DAA6D;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,MAIT;QACC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAa,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,wEAAwE;QACxE,MAAM,KAAK,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAE/D,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAIf;QACC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAmB,CAAC;QAEhE,0BAA0B;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,KAAK,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;QAE1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,OAAY;QAC7C,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;CACF,CAAC"}
|
package/dist/credentials.d.ts
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
export declare enum EncryptionBackend {
|
|
10
10
|
AGE = "age",
|
|
11
11
|
GPG = "gpg",
|
|
12
|
-
FERNET = "fernet"
|
|
12
|
+
FERNET = "fernet",
|
|
13
|
+
AES_256_GCM = "aes-256-gcm"
|
|
13
14
|
}
|
|
14
15
|
export declare enum CredentialType {
|
|
15
16
|
API_KEY = "api_key",
|
|
@@ -67,6 +68,35 @@ export declare class FernetEncryptor implements Encryptor {
|
|
|
67
68
|
isAvailable(): boolean;
|
|
68
69
|
generateKey(): string;
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* AES-256-GCM encryption using Node.js built-in crypto.
|
|
73
|
+
*
|
|
74
|
+
* Uses scrypt for key derivation from a passphrase/env key.
|
|
75
|
+
* Each encryption produces a random 12-byte IV (nonce).
|
|
76
|
+
* Stores ciphertext as: iv:authTag:ciphertext (all base64-encoded).
|
|
77
|
+
*
|
|
78
|
+
* Key source priority:
|
|
79
|
+
* 1. Explicit key passed to constructor
|
|
80
|
+
* 2. MARKTOFLOW_ENCRYPTION_KEY environment variable
|
|
81
|
+
* 3. Key file at keyFilePath (default: ~/.marktoflow/.key)
|
|
82
|
+
* 4. Auto-generate and store at keyFilePath on first use
|
|
83
|
+
*/
|
|
84
|
+
export declare class AES256GCMEncryptor implements Encryptor {
|
|
85
|
+
private derivedKey;
|
|
86
|
+
private keyFilePath;
|
|
87
|
+
private salt;
|
|
88
|
+
constructor(options?: {
|
|
89
|
+
key?: string;
|
|
90
|
+
keyFilePath?: string;
|
|
91
|
+
salt?: Buffer;
|
|
92
|
+
});
|
|
93
|
+
private loadOrGenerateKeyFile;
|
|
94
|
+
private deriveKey;
|
|
95
|
+
encrypt(plaintext: string): string;
|
|
96
|
+
decrypt(ciphertext: string): string;
|
|
97
|
+
isAvailable(): boolean;
|
|
98
|
+
generateKey(): string;
|
|
99
|
+
}
|
|
70
100
|
export declare class AgeEncryptor implements Encryptor {
|
|
71
101
|
private recipient?;
|
|
72
102
|
private identityFile?;
|
|
@@ -134,13 +164,42 @@ export declare class CredentialManager {
|
|
|
134
164
|
exists(name: string): boolean;
|
|
135
165
|
list(tag?: string, includeExpired?: boolean): Credential[];
|
|
136
166
|
rotate(name: string, newValue: string): Credential;
|
|
167
|
+
/**
|
|
168
|
+
* Check if an OAuth token is expired or will expire soon
|
|
169
|
+
*/
|
|
170
|
+
isTokenExpired(name: string, bufferMinutes?: number): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Update OAuth access token after refresh
|
|
173
|
+
*/
|
|
174
|
+
updateOAuthToken(name: string, newAccessToken: string, expiresIn?: number): Credential;
|
|
175
|
+
/**
|
|
176
|
+
* Get OAuth tokens with automatic expiration checking
|
|
177
|
+
*/
|
|
178
|
+
getOAuthTokens(name: string): {
|
|
179
|
+
accessToken: string;
|
|
180
|
+
refreshToken?: string;
|
|
181
|
+
clientId?: string;
|
|
182
|
+
clientSecret?: string;
|
|
183
|
+
isExpired: boolean;
|
|
184
|
+
};
|
|
137
185
|
export(name: string): Record<string, unknown>;
|
|
186
|
+
/**
|
|
187
|
+
* Migrate existing plain-text (or differently-encrypted) credentials to
|
|
188
|
+
* the current encryptor. Reads each credential's raw stored value, decrypts
|
|
189
|
+
* it with the provided `oldEncryptor` (or treats it as plain text if null),
|
|
190
|
+
* then re-encrypts with the current encryptor and saves.
|
|
191
|
+
*
|
|
192
|
+
* Returns the number of credentials migrated.
|
|
193
|
+
*/
|
|
194
|
+
migrateToEncrypted(oldEncryptor?: Encryptor | null): number;
|
|
138
195
|
importCredential(data: Record<string, unknown>): Credential;
|
|
139
196
|
}
|
|
140
197
|
export declare class KeyManager {
|
|
141
198
|
private keyDir;
|
|
142
199
|
constructor(keyDir: string);
|
|
143
200
|
private keyFile;
|
|
201
|
+
generateAES256GCMKey(name?: string): string;
|
|
202
|
+
getAES256GCMKey(name?: string): string | null;
|
|
144
203
|
generateFernetKey(name?: string): string;
|
|
145
204
|
generateAgeIdentity(name?: string): {
|
|
146
205
|
identity: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,oBAAY,iBAAiB;IAC3B,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAC7C,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAC9C,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AAErD,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,IAAI,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAuB;gBAEhC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAQ1C,OAAO,CAAC,SAAS;IAejB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAkClC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAsDnC,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,MAAM;CAKtB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAET,OAAO,CAAC,EAAE;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IAYD,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAiBlC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAuCnC,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,MAAM;CAItB;AAED,qBAAa,YAAa,YAAW,SAAS;IAE1C,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,UAAU,CAAC;gBAFX,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,UAAU,CAAC,EAAE,MAAM,YAAA;IAG7B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAqBlC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAiBnC,WAAW,IAAI,OAAO;IAStB,WAAW,IAAI,MAAM;IASrB,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;CAYzD;AAED,qBAAa,YAAa,YAAW,SAAS;IAE1C,OAAO,CAAC,SAAS,CAAC;IAGlB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,SAAS;gBAJT,SAAS,CAAC,EAAE,MAAM,YAAA,EAE1B,MAAM,CAAC,EAAE,MAAM,EACP,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,SAAS,GAAE,OAAe;IAGpC,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAsBlC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAcnC,WAAW,IAAI,OAAO;IAStB,WAAW,IAAI,MAAM;CAWtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,WAAW,CAAiC;IAEpD,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKlC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAMhC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG9B;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAS1B,OAAO,CAAC,IAAI;IAiBZ,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAoBlC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IA+BpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK7B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IA2BhC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAI9B;AAED,qBAAa,iBAAiB;IAEnB,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,SAAS;gBADpB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,SAAS;IAG7B,GAAG,CAAC,MAAM,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,UAAU;IAkBd,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,MAAM;IAWlD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe,GAAG,UAAU,EAAE;IAMjE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAgBlD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,GAAG,OAAO;IAahE;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU;IAkCtF;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;KACpB;IA2BD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkB7C;;;;;;;OAOG;IACH,kBAAkB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM;IAqB3D,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;CAgB5D;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAMlC,OAAO,CAAC,OAAO;IAIf,oBAAoB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM;IAQtD,eAAe,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI;IAKxD,iBAAiB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM;IAQnD,mBAAmB,CAAC,IAAI,GAAE,MAAkB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAWtF,YAAY,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI;IAKrD,kBAAkB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI;IAK3D,eAAe,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI;IAKxD,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA8B1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAwBjC;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,iBAAiB,CAsDpB;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,EAAE,CAW1D"}
|
package/dist/credentials.js
CHANGED
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
* - GPG encryption (external binary)
|
|
7
7
|
* - Fernet encryption (built-in via Node crypto)
|
|
8
8
|
*/
|
|
9
|
-
import { randomBytes, createCipheriv, createDecipheriv, createHmac } from 'node:crypto';
|
|
9
|
+
import { randomBytes, createCipheriv, createDecipheriv, createHmac, scryptSync } from 'node:crypto';
|
|
10
10
|
import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync, unlinkSync } from 'node:fs';
|
|
11
11
|
import { join } from 'node:path';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
12
13
|
import { spawnSync } from 'node:child_process';
|
|
13
14
|
import Database from 'better-sqlite3';
|
|
14
15
|
export var EncryptionBackend;
|
|
@@ -16,6 +17,7 @@ export var EncryptionBackend;
|
|
|
16
17
|
EncryptionBackend["AGE"] = "age";
|
|
17
18
|
EncryptionBackend["GPG"] = "gpg";
|
|
18
19
|
EncryptionBackend["FERNET"] = "fernet";
|
|
20
|
+
EncryptionBackend["AES_256_GCM"] = "aes-256-gcm";
|
|
19
21
|
})(EncryptionBackend || (EncryptionBackend = {}));
|
|
20
22
|
export var CredentialType;
|
|
21
23
|
(function (CredentialType) {
|
|
@@ -154,6 +156,105 @@ export class FernetEncryptor {
|
|
|
154
156
|
return key.toString('base64').replace(/\+/g, '-').replace(/\//g, '_');
|
|
155
157
|
}
|
|
156
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* AES-256-GCM encryption using Node.js built-in crypto.
|
|
161
|
+
*
|
|
162
|
+
* Uses scrypt for key derivation from a passphrase/env key.
|
|
163
|
+
* Each encryption produces a random 12-byte IV (nonce).
|
|
164
|
+
* Stores ciphertext as: iv:authTag:ciphertext (all base64-encoded).
|
|
165
|
+
*
|
|
166
|
+
* Key source priority:
|
|
167
|
+
* 1. Explicit key passed to constructor
|
|
168
|
+
* 2. MARKTOFLOW_ENCRYPTION_KEY environment variable
|
|
169
|
+
* 3. Key file at keyFilePath (default: ~/.marktoflow/.key)
|
|
170
|
+
* 4. Auto-generate and store at keyFilePath on first use
|
|
171
|
+
*/
|
|
172
|
+
export class AES256GCMEncryptor {
|
|
173
|
+
derivedKey = null;
|
|
174
|
+
keyFilePath;
|
|
175
|
+
salt;
|
|
176
|
+
constructor(options) {
|
|
177
|
+
this.keyFilePath = options?.keyFilePath ?? join(homedir(), '.marktoflow', '.key');
|
|
178
|
+
// Use a fixed salt per installation (derived from the key file path).
|
|
179
|
+
// Users can override with an explicit salt for testing.
|
|
180
|
+
this.salt = options?.salt ?? Buffer.from('marktoflow-aes256gcm-salt', 'utf8');
|
|
181
|
+
const rawKey = options?.key ?? process.env.MARKTOFLOW_ENCRYPTION_KEY ?? this.loadOrGenerateKeyFile();
|
|
182
|
+
if (rawKey) {
|
|
183
|
+
this.deriveKey(rawKey);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
loadOrGenerateKeyFile() {
|
|
187
|
+
if (existsSync(this.keyFilePath)) {
|
|
188
|
+
return readFileSync(this.keyFilePath, 'utf8').trim();
|
|
189
|
+
}
|
|
190
|
+
// Auto-generate key on first run
|
|
191
|
+
const generated = this.generateKey();
|
|
192
|
+
const dir = this.keyFilePath.substring(0, this.keyFilePath.lastIndexOf('/'));
|
|
193
|
+
if (dir && !existsSync(dir)) {
|
|
194
|
+
mkdirSync(dir, { recursive: true });
|
|
195
|
+
}
|
|
196
|
+
writeFileSync(this.keyFilePath, generated, { mode: 0o600 });
|
|
197
|
+
return generated;
|
|
198
|
+
}
|
|
199
|
+
deriveKey(passphrase) {
|
|
200
|
+
// scrypt: derive a 32-byte key (256 bits) for AES-256
|
|
201
|
+
this.derivedKey = scryptSync(passphrase, this.salt, 32, { N: 16384, r: 8, p: 1 });
|
|
202
|
+
}
|
|
203
|
+
encrypt(plaintext) {
|
|
204
|
+
if (!this.derivedKey) {
|
|
205
|
+
throw new KeyNotFoundError('No AES-256-GCM key configured');
|
|
206
|
+
}
|
|
207
|
+
const iv = randomBytes(12); // 96-bit nonce recommended for GCM
|
|
208
|
+
const cipher = createCipheriv('aes-256-gcm', this.derivedKey, iv);
|
|
209
|
+
const encrypted = Buffer.concat([
|
|
210
|
+
cipher.update(plaintext, 'utf8'),
|
|
211
|
+
cipher.final(),
|
|
212
|
+
]);
|
|
213
|
+
const authTag = cipher.getAuthTag(); // 16 bytes
|
|
214
|
+
// Format: iv:authTag:ciphertext (all base64)
|
|
215
|
+
return `${iv.toString('base64')}:${authTag.toString('base64')}:${encrypted.toString('base64')}`;
|
|
216
|
+
}
|
|
217
|
+
decrypt(ciphertext) {
|
|
218
|
+
if (!this.derivedKey) {
|
|
219
|
+
throw new KeyNotFoundError('No AES-256-GCM key configured');
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
const parts = ciphertext.split(':');
|
|
223
|
+
if (parts.length !== 3) {
|
|
224
|
+
throw new EncryptionError('Invalid AES-256-GCM ciphertext format: expected iv:authTag:ciphertext');
|
|
225
|
+
}
|
|
226
|
+
const iv = Buffer.from(parts[0], 'base64');
|
|
227
|
+
const authTag = Buffer.from(parts[1], 'base64');
|
|
228
|
+
const encrypted = Buffer.from(parts[2], 'base64');
|
|
229
|
+
if (iv.length !== 12) {
|
|
230
|
+
throw new EncryptionError(`Invalid IV length: expected 12, got ${iv.length}`);
|
|
231
|
+
}
|
|
232
|
+
if (authTag.length !== 16) {
|
|
233
|
+
throw new EncryptionError(`Invalid auth tag length: expected 16, got ${authTag.length}`);
|
|
234
|
+
}
|
|
235
|
+
const decipher = createDecipheriv('aes-256-gcm', this.derivedKey, iv);
|
|
236
|
+
decipher.setAuthTag(authTag);
|
|
237
|
+
const decrypted = Buffer.concat([
|
|
238
|
+
decipher.update(encrypted),
|
|
239
|
+
decipher.final(),
|
|
240
|
+
]);
|
|
241
|
+
return decrypted.toString('utf8');
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
if (error instanceof EncryptionError || error instanceof KeyNotFoundError) {
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
throw new EncryptionError(`AES-256-GCM decryption failed: ${String(error)}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
isAvailable() {
|
|
251
|
+
return true; // Uses only Node.js built-in crypto
|
|
252
|
+
}
|
|
253
|
+
generateKey() {
|
|
254
|
+
// Generate a 64-character hex key (256 bits of entropy)
|
|
255
|
+
return randomBytes(32).toString('hex');
|
|
256
|
+
}
|
|
257
|
+
}
|
|
157
258
|
export class AgeEncryptor {
|
|
158
259
|
recipient;
|
|
159
260
|
identityFile;
|
|
@@ -477,6 +578,69 @@ export class CredentialManager {
|
|
|
477
578
|
...(existing.tags !== undefined && { tags: existing.tags }),
|
|
478
579
|
});
|
|
479
580
|
}
|
|
581
|
+
/**
|
|
582
|
+
* Check if an OAuth token is expired or will expire soon
|
|
583
|
+
*/
|
|
584
|
+
isTokenExpired(name, bufferMinutes = 5) {
|
|
585
|
+
const credential = this.store.get(name);
|
|
586
|
+
if (!credential || !credential.expiresAt) {
|
|
587
|
+
return false; // No expiration set
|
|
588
|
+
}
|
|
589
|
+
const now = new Date();
|
|
590
|
+
const bufferMs = bufferMinutes * 60 * 1000;
|
|
591
|
+
const expiryWithBuffer = new Date(credential.expiresAt.getTime() - bufferMs);
|
|
592
|
+
return expiryWithBuffer <= now;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Update OAuth access token after refresh
|
|
596
|
+
*/
|
|
597
|
+
updateOAuthToken(name, newAccessToken, expiresIn) {
|
|
598
|
+
const existing = this.store.get(name);
|
|
599
|
+
if (!existing) {
|
|
600
|
+
throw new CredentialNotFoundError(`Credential '${name}' not found`);
|
|
601
|
+
}
|
|
602
|
+
// Calculate new expiration time if provided
|
|
603
|
+
let newExpiresAt = existing.expiresAt;
|
|
604
|
+
if (expiresIn) {
|
|
605
|
+
newExpiresAt = new Date(Date.now() + expiresIn * 1000);
|
|
606
|
+
}
|
|
607
|
+
const params = {
|
|
608
|
+
name,
|
|
609
|
+
value: newAccessToken,
|
|
610
|
+
credentialType: existing.credentialType,
|
|
611
|
+
};
|
|
612
|
+
if (existing.description)
|
|
613
|
+
params.description = existing.description;
|
|
614
|
+
if (existing.metadata)
|
|
615
|
+
params.metadata = existing.metadata;
|
|
616
|
+
if (newExpiresAt)
|
|
617
|
+
params.expiresAt = newExpiresAt;
|
|
618
|
+
if (existing.tags && existing.tags.length > 0)
|
|
619
|
+
params.tags = existing.tags;
|
|
620
|
+
return this.set(params);
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Get OAuth tokens with automatic expiration checking
|
|
624
|
+
*/
|
|
625
|
+
getOAuthTokens(name) {
|
|
626
|
+
const credential = this.store.get(name);
|
|
627
|
+
if (!credential) {
|
|
628
|
+
throw new CredentialNotFoundError(`Credential '${name}' not found`);
|
|
629
|
+
}
|
|
630
|
+
const accessToken = this.encryptor.decrypt(credential.value);
|
|
631
|
+
const metadata = credential.metadata || {};
|
|
632
|
+
const result = {
|
|
633
|
+
accessToken,
|
|
634
|
+
isExpired: this.isTokenExpired(name),
|
|
635
|
+
};
|
|
636
|
+
if (metadata.refresh_token)
|
|
637
|
+
result.refreshToken = metadata.refresh_token;
|
|
638
|
+
if (metadata.client_id)
|
|
639
|
+
result.clientId = metadata.client_id;
|
|
640
|
+
if (metadata.client_secret)
|
|
641
|
+
result.clientSecret = metadata.client_secret;
|
|
642
|
+
return result;
|
|
643
|
+
}
|
|
480
644
|
export(name) {
|
|
481
645
|
const credential = this.store.get(name);
|
|
482
646
|
if (!credential) {
|
|
@@ -494,6 +658,35 @@ export class CredentialManager {
|
|
|
494
658
|
tags: credential.tags ?? [],
|
|
495
659
|
};
|
|
496
660
|
}
|
|
661
|
+
/**
|
|
662
|
+
* Migrate existing plain-text (or differently-encrypted) credentials to
|
|
663
|
+
* the current encryptor. Reads each credential's raw stored value, decrypts
|
|
664
|
+
* it with the provided `oldEncryptor` (or treats it as plain text if null),
|
|
665
|
+
* then re-encrypts with the current encryptor and saves.
|
|
666
|
+
*
|
|
667
|
+
* Returns the number of credentials migrated.
|
|
668
|
+
*/
|
|
669
|
+
migrateToEncrypted(oldEncryptor) {
|
|
670
|
+
const credentials = this.store.list();
|
|
671
|
+
let migrated = 0;
|
|
672
|
+
for (const cred of credentials) {
|
|
673
|
+
try {
|
|
674
|
+
// Decrypt with old encryptor, or use raw value if none
|
|
675
|
+
const plaintext = oldEncryptor ? oldEncryptor.decrypt(cred.value) : cred.value;
|
|
676
|
+
// Re-encrypt with current encryptor
|
|
677
|
+
const encrypted = this.encryptor.encrypt(plaintext);
|
|
678
|
+
cred.value = encrypted;
|
|
679
|
+
cred.updatedAt = new Date();
|
|
680
|
+
this.store.save(cred);
|
|
681
|
+
migrated++;
|
|
682
|
+
}
|
|
683
|
+
catch {
|
|
684
|
+
// Skip credentials that fail to decrypt (already encrypted with current key, etc.)
|
|
685
|
+
continue;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
return migrated;
|
|
689
|
+
}
|
|
497
690
|
importCredential(data) {
|
|
498
691
|
const now = new Date();
|
|
499
692
|
const credential = {
|
|
@@ -522,6 +715,17 @@ export class KeyManager {
|
|
|
522
715
|
keyFile(name) {
|
|
523
716
|
return join(this.keyDir, `${name}.key`);
|
|
524
717
|
}
|
|
718
|
+
generateAES256GCMKey(name = 'default') {
|
|
719
|
+
const encryptor = new AES256GCMEncryptor({ key: 'temp' }); // temp key just to call generateKey
|
|
720
|
+
const key = encryptor.generateKey();
|
|
721
|
+
const keyFile = join(this.keyDir, `${name}.aes`);
|
|
722
|
+
writeFileSync(keyFile, key, { mode: 0o600 });
|
|
723
|
+
return key;
|
|
724
|
+
}
|
|
725
|
+
getAES256GCMKey(name = 'default') {
|
|
726
|
+
const keyFile = join(this.keyDir, `${name}.aes`);
|
|
727
|
+
return existsSync(keyFile) ? readFileSync(keyFile, 'utf8').trim() : null;
|
|
728
|
+
}
|
|
525
729
|
generateFernetKey(name = 'default') {
|
|
526
730
|
const encryptor = new FernetEncryptor();
|
|
527
731
|
const key = encryptor.generateKey();
|
|
@@ -557,7 +761,14 @@ export class KeyManager {
|
|
|
557
761
|
return keys;
|
|
558
762
|
const entries = readdirSync(this.keyDir);
|
|
559
763
|
for (const entry of entries) {
|
|
560
|
-
if (entry.endsWith('.
|
|
764
|
+
if (entry.endsWith('.aes')) {
|
|
765
|
+
keys.push({
|
|
766
|
+
name: entry.replace(/\.aes$/, ''),
|
|
767
|
+
type: 'aes-256-gcm',
|
|
768
|
+
file: join(this.keyDir, entry),
|
|
769
|
+
});
|
|
770
|
+
}
|
|
771
|
+
else if (entry.endsWith('.key')) {
|
|
561
772
|
keys.push({
|
|
562
773
|
name: entry.replace(/\.key$/, ''),
|
|
563
774
|
type: 'fernet',
|
|
@@ -578,6 +789,11 @@ export class KeyManager {
|
|
|
578
789
|
}
|
|
579
790
|
deleteKey(name) {
|
|
580
791
|
let deleted = false;
|
|
792
|
+
const aesKey = join(this.keyDir, `${name}.aes`);
|
|
793
|
+
if (existsSync(aesKey)) {
|
|
794
|
+
unlinkSync(aesKey);
|
|
795
|
+
deleted = true;
|
|
796
|
+
}
|
|
581
797
|
const fernetKey = this.keyFile(name);
|
|
582
798
|
if (existsSync(fernetKey)) {
|
|
583
799
|
unlinkSync(fernetKey);
|
|
@@ -597,12 +813,21 @@ export class KeyManager {
|
|
|
597
813
|
}
|
|
598
814
|
}
|
|
599
815
|
export function createCredentialManager(params) {
|
|
600
|
-
const backend = params.backend ?? EncryptionBackend.
|
|
816
|
+
const backend = params.backend ?? EncryptionBackend.AES_256_GCM;
|
|
601
817
|
const keyName = params.keyName ?? 'default';
|
|
602
818
|
const keyDir = join(params.stateDir, 'keys');
|
|
603
819
|
const dbPath = join(params.stateDir, 'credentials.db');
|
|
604
820
|
const keyManager = new KeyManager(keyDir);
|
|
605
821
|
const store = new SQLiteCredentialStore(dbPath);
|
|
822
|
+
if (backend === EncryptionBackend.AES_256_GCM) {
|
|
823
|
+
const keyFilePath = join(keyDir, `${keyName}.aes`);
|
|
824
|
+
const passphrase = params.passphrase ?? process.env.MARKTOFLOW_ENCRYPTION_KEY;
|
|
825
|
+
const encryptor = new AES256GCMEncryptor({
|
|
826
|
+
...(passphrase ? { key: passphrase } : {}),
|
|
827
|
+
keyFilePath,
|
|
828
|
+
});
|
|
829
|
+
return new CredentialManager(store, encryptor);
|
|
830
|
+
}
|
|
606
831
|
if (backend === EncryptionBackend.FERNET) {
|
|
607
832
|
let key = keyManager.getFernetKey(keyName);
|
|
608
833
|
if (!key) {
|
|
@@ -632,7 +857,7 @@ export function createCredentialManager(params) {
|
|
|
632
857
|
throw new Error(`Unknown backend: ${backend}`);
|
|
633
858
|
}
|
|
634
859
|
export function getAvailableBackends() {
|
|
635
|
-
const available = [EncryptionBackend.FERNET];
|
|
860
|
+
const available = [EncryptionBackend.AES_256_GCM, EncryptionBackend.FERNET];
|
|
636
861
|
const age = new AgeEncryptor();
|
|
637
862
|
if (age.isAvailable()) {
|
|
638
863
|
available.push(EncryptionBackend.AGE);
|