@forestadmin/workflow-executor 1.20.2 → 1.21.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.
@@ -7,22 +7,32 @@ export interface WorkflowExecutor {
7
7
  stop(): Promise<void>;
8
8
  readonly state: RunnerState;
9
9
  }
10
- export interface ExecutorOptions {
10
+ export interface WorkflowExecutorTuningOptions {
11
+ /** Interval in seconds at which the executor polls the orchestrator for pending steps. */
12
+ pollingIntervalS?: number;
13
+ /** Per-step execution timeout in seconds. */
14
+ stepTimeoutS?: number;
15
+ /** Max duration in seconds of a single AI provider invocation. */
16
+ aiInvokeTimeoutS?: number;
17
+ /** Timeout in seconds for draining in-flight steps when the executor stops. */
18
+ stopTimeoutS?: number;
19
+ /** Max steps auto-chained per run before yielding to the next poll. `0` disables chaining. */
20
+ maxChainDepth?: number;
21
+ /** Collection schema cache TTL in seconds. Lower it to pick up orchestrator schema changes sooner. */
22
+ schemaCacheTtlS?: number;
23
+ /** Minimum level of the executor's logs. Defaults to `Info`. */
24
+ loggerLevel?: LoggerLevel;
25
+ }
26
+ export interface ExecutorOptions extends WorkflowExecutorTuningOptions {
11
27
  envSecret: string;
12
28
  authSecret: string;
13
29
  agentUrl: string;
14
30
  httpPort: number;
15
31
  forestServerUrl?: string;
16
32
  aiConfigurations?: AiConfiguration[];
17
- pollingIntervalS?: number;
18
33
  logger?: Logger;
19
- loggerLevel?: LoggerLevel;
20
- stopTimeoutS?: number;
21
- stepTimeoutS?: number;
22
- aiInvokeTimeoutS?: number;
23
- maxChainDepth?: number;
24
- schemaCacheTtlS?: number;
25
34
  forceAiError?: boolean;
35
+ executorEncryptionKey?: string;
26
36
  manageProcessSignals?: boolean;
27
37
  }
28
38
  export type DatabaseExecutorOptions = ExecutorOptions & ({
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
@@ -47,7 +14,7 @@ const console_logger_1 = __importDefault(require("./adapters/console-logger"));
47
14
  const forest_server_workflow_port_1 = __importDefault(require("./adapters/forest-server-workflow-port"));
48
15
  const forestadmin_client_activity_log_port_factory_1 = __importDefault(require("./adapters/forestadmin-client-activity-log-port-factory"));
49
16
  const server_ai_adapter_1 = __importDefault(require("./adapters/server-ai-adapter"));
50
- const credential_encryption_1 = __importStar(require("./crypto/credential-encryption"));
17
+ const credential_encryption_1 = __importDefault(require("./crypto/credential-encryption"));
51
18
  const defaults_1 = require("./defaults");
52
19
  const executor_http_server_1 = __importDefault(require("./http/executor-http-server"));
53
20
  const token_service_1 = __importDefault(require("./oauth/token-service"));
@@ -69,8 +36,8 @@ function buildCommonDependencies(options) {
69
36
  const logger = options.logger ?? (0, console_logger_1.default)(options.loggerLevel ?? defaults_1.DEFAULT_LOGGER_LEVEL);
70
37
  // Lazy key by design (OAuth-less executors boot without it), but surface a security-relevant
71
38
  // heads-up so a missing key isn't discovered only when a deposit 503s.
72
- if (!(0, credential_encryption_1.isExecutorEncryptionKeyConfigured)()) {
73
- logger('Warn', 'FOREST_EXECUTOR_ENCRYPTION_KEY is not set — OAuth-protected MCP servers are unavailable (credential deposits return 503) until it is configured.');
39
+ if (!options.executorEncryptionKey) {
40
+ logger('Warn', 'No encryption key configured — set FOREST_EXECUTOR_ENCRYPTION_KEY (standalone) or pass encryptionKey to addWorkflowExecutor() (embedded) — OAuth-protected MCP servers are unavailable (credential deposits return 503) until it is.');
74
41
  }
75
42
  const workflowPort = new forest_server_workflow_port_1.default({
76
43
  envSecret: options.envSecret,
@@ -114,7 +81,7 @@ function buildCommonDependencies(options) {
114
81
  aiModelPort,
115
82
  activityLogPortFactory,
116
83
  logger,
117
- pollingIntervalS: options.pollingIntervalS ?? defaults_1.DEFAULT_POLLING_INTERVAL_S,
84
+ pollingIntervalS: positiveOrDefault(options.pollingIntervalS, defaults_1.DEFAULT_POLLING_INTERVAL_S),
118
85
  envSecret: options.envSecret,
119
86
  authSecret: options.authSecret,
120
87
  stopTimeoutS: options.stopTimeoutS,
@@ -193,7 +160,7 @@ function createWorkflowExecutor(runner, server, logger, manageProcessSignals) {
193
160
  function buildInMemoryExecutor(options) {
194
161
  const deps = buildCommonDependencies(options);
195
162
  const mcpOAuthCredentialsStore = new in_memory_mcp_oauth_credentials_store_1.default();
196
- const credentialEncryption = new credential_encryption_1.default();
163
+ const credentialEncryption = new credential_encryption_1.default(options.executorEncryptionKey);
197
164
  // Shares the store + encryption with the deposit endpoint so runtime reads and writes (rotation)
198
165
  // go through the same instance the HTTP server exposes. In-memory is dev-only: credentials live
199
166
  // only for the process lifetime, but oauth2 steps work end-to-end just like the database executor.
@@ -237,7 +204,7 @@ function buildDatabaseExecutor(options) {
237
204
  sequelize,
238
205
  schema: mergedOptions.schema,
239
206
  });
240
- const credentialEncryption = new credential_encryption_1.default();
207
+ const credentialEncryption = new credential_encryption_1.default(options.executorEncryptionKey);
241
208
  // Shares the store + encryption with the deposit endpoint so runtime reads and writes (rotation)
242
209
  // go through the same instance the HTTP server migrates on start.
243
210
  const mcpOAuthTokenService = new token_service_1.default({
@@ -264,4 +231,4 @@ function buildDatabaseExecutor(options) {
264
231
  });
265
232
  return createWorkflowExecutor(runner, server, deps.logger, options.manageProcessSignals ?? true);
266
233
  }
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtd29ya2Zsb3ctZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtd29ya2Zsb3ctZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0T0Esc0RBd0NDO0FBRUQsc0RBbURDO0FBcFVELHdFQUFxRjtBQUNyRix5Q0FBc0M7QUFFdEMsaUdBQXNFO0FBQ3RFLHFGQUEyRDtBQUMzRCx1R0FBMkU7QUFDM0UsK0VBQTREO0FBQzVELHlHQUE4RTtBQUM5RSwySUFBOEc7QUFDOUcscUZBQTJEO0FBQzNELHdGQUV3QztBQUN4Qyx5Q0FPb0I7QUFDcEIsdUZBQTZEO0FBQzdELDBFQUFzRDtBQUN0RCxnRkFBc0Q7QUFDdEQsc0RBQThCO0FBQzlCLGtFQUF5QztBQUN6Qyx5SEFBNkY7QUFDN0YsNkVBQW9EO0FBQ3BELDJIQUE4RjtBQUM5RiwrRUFBcUQ7QUFFckQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFxQzdCLDJGQUEyRjtBQUMzRiw2RkFBNkY7QUFDN0YsU0FBUyxpQkFBaUIsQ0FBQyxLQUF5QixFQUFFLFFBQWdCO0lBQ3BFLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDN0YsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsT0FBd0I7SUFDdkQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxvQ0FBeUIsQ0FBQztJQUM3RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUEsd0JBQW1CLEVBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSwrQkFBb0IsQ0FBQyxDQUFDO0lBRWxHLDZGQUE2RjtJQUM3Rix1RUFB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
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtd29ya2Zsb3ctZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtd29ya2Zsb3ctZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFtUEEsc0RBd0NDO0FBRUQsc0RBbURDO0FBM1VELHdFQUFxRjtBQUNyRix5Q0FBc0M7QUFFdEMsaUdBQXNFO0FBQ3RFLHFGQUEyRDtBQUMzRCx1R0FBMkU7QUFDM0UsK0VBQTREO0FBQzVELHlHQUE4RTtBQUM5RSwySUFBOEc7QUFDOUcscUZBQTJEO0FBQzNELDJGQUFrRTtBQUNsRSx5Q0FPb0I7QUFDcEIsdUZBQTZEO0FBQzdELDBFQUFzRDtBQUN0RCxnRkFBc0Q7QUFDdEQsc0RBQThCO0FBQzlCLGtFQUF5QztBQUN6Qyx5SEFBNkY7QUFDN0YsNkVBQW9EO0FBQ3BELDJIQUE4RjtBQUM5RiwrRUFBcUQ7QUFFckQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUE4QzdCLDJGQUEyRjtBQUMzRiw2RkFBNkY7QUFDN0YsU0FBUyxpQkFBaUIsQ0FBQyxLQUF5QixFQUFFLFFBQWdCO0lBQ3BFLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDN0YsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsT0FBd0I7SUFDdkQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxvQ0FBeUIsQ0FBQztJQUM3RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUEsd0JBQW1CLEVBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSwrQkFBb0IsQ0FBQyxDQUFDO0lBRWxHLDZGQUE2RjtJQUM3Rix1RUFBdUU7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFB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
package/dist/cli-core.js CHANGED
@@ -175,6 +175,7 @@ function readEnvConfig(env, args) {
175
175
  maxChainDepth: parsePositiveIntEnv('MAX_CHAIN_DEPTH', env.MAX_CHAIN_DEPTH),
176
176
  schemaCacheTtlS: parsePositiveIntEnv('SCHEMA_CACHE_TTL_S', env.SCHEMA_CACHE_TTL_S),
177
177
  loggerLevel: parseLoggerLevelEnv(env.LOG_LEVEL) ?? defaults_1.DEFAULT_LOGGER_LEVEL,
178
+ executorEncryptionKey: env.FOREST_EXECUTOR_ENCRYPTION_KEY,
178
179
  ...(aiConfigurations && { aiConfigurations }),
179
180
  ...(env.FORCE_AI_ERROR === 'true' && { forceAiError: true }),
180
181
  };
@@ -214,6 +215,7 @@ Database connection (use DATABASE_URL, or build it from parts when it is unset):
214
215
  DATABASE_PORT Database port (default: ${DEFAULT_DATABASE_PORT})
215
216
 
216
217
  Optional environment variables:
218
+ FOREST_EXECUTOR_ENCRYPTION_KEY HKDF secret encrypting OAuth-protected MCP connector credentials at rest (required only if you use them)
217
219
  DATABASE_SSL Connect to the database over TLS (default: true; set "false" for a local DB without TLS)
218
220
  DATABASE_SCHEMA Postgres schema for the executor's tables (default: forest)
219
221
  HTTP_PORT Default: ${defaults_1.DEFAULT_HTTP_PORT}
@@ -308,4 +310,4 @@ async function runCli(argv, env, factories) {
308
310
  throw error;
309
311
  }
310
312
  }
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjs7Ozs7QUFxSC9CLDhCQWtDQztBQUlELGdDQVNDO0FBNERELHNDQStDQztBQUVELDhCQStDQztBQUVELG9DQUVDO0FBRUQsZ0NBdUJDO0FBRUQsd0JBd0RDO0FBbFpELDZCQUF3QjtBQUV4QiwrRUFBNEQ7QUFDNUQsNkVBQTBEO0FBTTFELHlDQVVvQjtBQUNwQixxQ0FBbUU7QUFDbkUsa0VBSW9DO0FBRXBDLE1BQU0sWUFBWSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDeEQsTUFBTSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUV2RSxTQUFTLG1CQUFtQixDQUFDLElBQVksRUFBRSxHQUF1QjtJQUNoRSxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTNCLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksMkJBQWtCLENBQUMsR0FBRyxJQUFJLHFDQUFxQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsR0FBdUI7SUFDbEQsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUUzQixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxH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
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjs7Ozs7QUFxSC9CLDhCQWtDQztBQUlELGdDQVNDO0FBNERELHNDQWdEQztBQUVELDhCQWdEQztBQUVELG9DQUVDO0FBRUQsZ0NBdUJDO0FBRUQsd0JBd0RDO0FBcFpELDZCQUF3QjtBQUV4QiwrRUFBNEQ7QUFDNUQsNkVBQTBEO0FBTTFELHlDQVVvQjtBQUNwQixxQ0FBbUU7QUFDbkUsa0VBSW9DO0FBRXBDLE1BQU0sWUFBWSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDeEQsTUFBTSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUV2RSxTQUFTLG1CQUFtQixDQUFDLElBQVksRUFBRSxHQUF1QjtJQUNoRSxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTNCLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksMkJBQWtCLENBQUMsR0FBRyxJQUFJLHFDQUFxQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsR0FBdUI7SUFDbEQsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUUzQixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUUsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLDJCQUFrQixDQUMxQiwyREFBMkQsR0FBRyxJQUFJLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFMUMsK0ZBQStGO0FBQy9GLDhGQUE4RjtBQUM5RixTQUFTLGNBQWMsQ0FBQyxHQUF1QjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUU5QixJQUFJLENBQUMsSUFBQSw2Q0FBeUIsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSwyQkFBa0IsQ0FDMUIsc0RBQXNEO1lBQ3BELDhEQUE4RCx5Q0FBcUIsaUJBQWlCLEdBQUcsR0FBRyxDQUM3RyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUFZLEVBQUUsR0FBdUIsRUFBRSxZQUFZLEdBQUcsS0FBSztJQUNsRixJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sWUFBWSxDQUFDO0lBRTlCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXhDLE1BQU0sSUFBSSwyQkFBa0IsQ0FBQyxHQUFHLElBQUkseUNBQXlDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVELHlHQUF5RztBQUN6RyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUF3QixDQUFDO0FBRXRFLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBdUIvQyxTQUFnQixTQUFTLENBQUMsSUFBYztJQUN0QyxNQUFNLE1BQU0sR0FBWTtRQUN0QixJQUFJLEVBQUUsS0FBSztRQUNYLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLEtBQUs7UUFDZixNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxLQUFLO0tBQ1osQ0FBQztJQUVGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNaLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxJQUFJO2dCQUNQLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxJQUFJO2dCQUNQLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixNQUFNO1lBQ1IsS0FBSyxhQUFhO2dCQUNoQixNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDbkIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsbUdBQW1HO0FBQ25HLDhGQUE4RjtBQUM5RixTQUFnQixVQUFVLENBQ3hCLElBQWEsRUFDYixLQUFrQixFQUNsQixTQUE2QixPQUFPLENBQUMsTUFBTTtJQUUzQyxJQUFJLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxJQUFBLHdCQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELElBQUksSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUEsdUJBQWtCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFBLHVCQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLHdCQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFzQjtJQUMzQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBRS9DLElBQUksUUFBUSxLQUFLLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVyQyxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FDYix5R0FBeUcsQ0FDMUcsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFdBQVcsS0FBSyxXQUFXLElBQUksV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELE9BQU87UUFDTDtZQUNFLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFdBQVc7WUFDckIsS0FBSyxFQUFFLFFBQWtCO1lBQ3pCLE1BQU0sRUFBRSxVQUFvQjtTQUM3QjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFDbkMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBVSxDQUFDO0FBRXBGLFNBQVMseUJBQXlCLENBQUMsR0FBc0I7SUFDdkQsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUU5RixJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTdELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXhELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksMkJBQWtCLENBQzFCLG9FQUFvRTtZQUNsRSxhQUFhLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLElBQUkscUJBQXFCLENBQUM7SUFDMUYsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsYUFBdUIsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRixNQUFNLE9BQU8sR0FBRyxhQUF1QixDQUFDO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDMUYsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsYUFBdUIsQ0FBQyxDQUFDO0lBRTdELE9BQU8sY0FBYyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxHQUFzQjtJQUNoRCxPQUFPLEdBQUcsQ0FBQyxZQUFZLElBQUkseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxHQUFzQixFQUFFLElBQWE7SUFDakUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQVUsQ0FBQztJQUN2RixNQUFNLE9BQU8sR0FBYSxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVoRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLElBQUksQ0FDViw0RkFBNEYsQ0FDN0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDdkYsU0FBUyxXQUFXLDhCQUE4QixDQUNyRCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sZUFBZSxHQUFvQjtRQUN2QyxTQUFTLEVBQUUsR0FBRyxDQUFDLGlCQUEyQjtRQUMxQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGtCQUE0QjtRQUM1QyxRQUFRLEVBQUUsR0FBRyxDQUFDLFNBQW1CO1FBQ2pDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLDRCQUFpQjtRQUM5RSxlQUFlLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtRQUN0QyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUM7UUFDbkYsWUFBWSxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDdkUsWUFBWSxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDdkUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1FBQ3JGLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQzFFLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUM7UUFDbEYsV0FBVyxFQUFFLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSwrQkFBb0I7UUFDdkUscUJBQXFCLEVBQUUsR0FBRyxDQUFDLDhCQUE4QjtRQUN6RCxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxLQUFLLE1BQU0sSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztLQUM3RCxDQUFDO0lBRUYsT0FBTztRQUNMLGVBQWU7UUFDZixXQUFXO1FBQ1gsNkVBQTZFO1FBQzdFLCtEQUErRDtRQUMvRCxXQUFXLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQztRQUNwRSxjQUFjLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDbkQsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTtLQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLFNBQVM7SUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBc0JlLHFCQUFxQjs7Ozs7O29DQU1uQyw0QkFBaUI7b0NBQ2pCLG9DQUF5QjttQ0FDMUIscUNBQTBCO21DQUMxQixpQ0FBc0I7c0VBQ2EsaUNBQXNCOytGQUNHLHNDQUEyQjtxRkFDckMsa0NBQXVCOzJFQUNqQyxxQ0FBMEI7aUVBQ3BDLCtCQUFvQjs7Ozs7Ozs7OzttRUFVbEIsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxTQUFnQixZQUFZO0lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxNQUFjLEVBQUUsTUFBaUI7SUFDMUQsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDNUUsSUFBSSxPQUFlLENBQUM7SUFFcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsT0FBTyxHQUFHLHlCQUF5QixDQUFDO0lBQ3RDLENBQUM7U0FBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6QyxPQUFPLEdBQUcsVUFBVSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUMvRixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sRUFBRSw0QkFBNEIsRUFBRTtRQUMzQyxJQUFJO1FBQ0osV0FBVyxFQUFFLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUMxRCxjQUFjLEVBQUUsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLGtDQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDbEYsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksb0NBQXlCO1FBQ2xFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLHFDQUEwQjtRQUNyRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSwrQkFBb0I7UUFDckQsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQzFCLElBQWMsRUFDZCxHQUFzQixFQUN0QixTQUF1QjtJQUV2QixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxTQUFTLEVBQUUsQ0FBQztRQUVaLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLFlBQVksRUFBRSxDQUFDO1FBRWYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsV0FBVyxJQUFJLCtCQUFvQixDQUFDLENBQUM7SUFDNUYsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBRXZDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFM0IsSUFBSSxDQUFDO1FBQ0gsSUFBSSxRQUEwQixDQUFDO1FBRS9CLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxRQUFRLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGVBQWUsR0FBNEI7Z0JBQy9DLEdBQUcsTUFBTSxDQUFDLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRTtvQkFDUixHQUFHLEVBQUUsTUFBTSxDQUFDLFdBQXFCO29CQUNqQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQy9ELEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJO3dCQUN4QixjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxFQUFFO3FCQUN0RSxDQUFDO2lCQUNIO2FBQ0YsQ0FBQztZQUNGLFFBQVEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsTUFBTSxFQUFFLHlCQUF5QixFQUFFO1lBQ3hDLEdBQUcsRUFBRSxvQkFBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUU7U0FDM0QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFO1lBQ25ELEtBQUssRUFBRSxJQUFBLDRCQUFtQixFQUFDLEtBQUssQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIn0=
@@ -1,8 +1,9 @@
1
- export declare function isExecutorEncryptionKeyConfigured(): boolean;
2
1
  export interface EncryptedValue {
3
2
  ciphertext: Buffer;
4
3
  }
5
4
  export default class CredentialEncryption {
5
+ private readonly secret;
6
+ constructor(secret: string | undefined);
6
7
  encrypt(plaintext: string): EncryptedValue;
7
8
  decrypt(value: Buffer): string;
8
9
  private deriveKey;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isExecutorEncryptionKeyConfigured = isExecutorEncryptionKeyConfigured;
4
3
  const crypto_1 = require("crypto");
5
4
  const errors_1 = require("../errors");
6
- const ENV_KEY = 'FOREST_EXECUTOR_ENCRYPTION_KEY';
7
5
  // Fixed context label bound into the HKDF derivation — domain-separates this key from any other
8
6
  // use of the same secret. Changing it would make every existing row undecryptable.
9
7
  const HKDF_INFO = 'forest-executor:mcp-oauth-credentials';
@@ -12,13 +10,6 @@ const KEY_BYTES = 32; // AES-256
12
10
  const IV_BYTES = 12; // GCM standard nonce length
13
11
  const AUTH_TAG_BYTES = 16;
14
12
  const ALGORITHM = 'aes-256-gcm';
15
- // Boot-time check (no derivation, no throw): is the at-rest key configured? Lets startup emit a
16
- // warning that OAuth-protected MCP servers are unavailable until it is set. There is deliberately no
17
- // default key — a hardcoded one would be public in this open-source package and defeat the at-rest
18
- // encryption (a DB dump would be decryptable with the shipped key).
19
- function isExecutorEncryptionKeyConfigured() {
20
- return Boolean(process.env[ENV_KEY]);
21
- }
22
13
  // Concatenate byte arrays without going through Buffer.concat — keeps everything in the concrete
23
14
  // Uint8Array<ArrayBuffer> domain the Node crypto types expect.
24
15
  function concatBytes(parts) {
@@ -31,11 +22,11 @@ function concatBytes(parts) {
31
22
  }
32
23
  return out;
33
24
  }
34
- // At-rest encryption for secrets the executor stores. The HKDF key (from
35
- // FOREST_EXECUTOR_ENCRYPTION_KEY) is read lazily — an executor that stores no such secrets boots
36
- // without it — and fails closed: a missing key throws rather than persisting or returning an
37
- // unprotected value.
25
+ // No default key by design: a hardcoded one would ship publicly in this open-source package.
38
26
  class CredentialEncryption {
27
+ constructor(secret) {
28
+ this.secret = secret;
29
+ }
39
30
  encrypt(plaintext) {
40
31
  const iv = (0, crypto_1.randomFillSync)(new Uint8Array(IV_BYTES));
41
32
  const cipher = (0, crypto_1.createCipheriv)(ALGORITHM, this.deriveKey(), iv);
@@ -62,7 +53,7 @@ class CredentialEncryption {
62
53
  return Buffer.from(decrypted).toString('utf8');
63
54
  }
64
55
  deriveKey() {
65
- const secret = process.env[ENV_KEY];
56
+ const { secret } = this;
66
57
  if (!secret)
67
58
  throw new errors_1.ExecutorEncryptionKeyMissingError();
68
59
  // Empty salt is intentional: the fixed HKDF_INFO label gives domain separation and the
@@ -72,4 +63,4 @@ class CredentialEncryption {
72
63
  }
73
64
  }
74
65
  exports.default = CredentialEncryption;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1lbmNyeXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NyeXB0by9jcmVkZW50aWFsLWVuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsOEVBRUM7QUFwQkQsbUNBQW9GO0FBRXBGLHNDQUE4RDtBQUU5RCxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsQ0FBQztBQUNqRCxnR0FBZ0c7QUFDaEcsbUZBQW1GO0FBQ25GLE1BQU0sU0FBUyxHQUFHLHVDQUF1QyxDQUFDO0FBQzFELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUM3QixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxVQUFVO0FBQ2hDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDRCQUE0QjtBQUNqRCxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBRWhDLGdHQUFnRztBQUNoRyxxR0FBcUc7QUFDckcsbUdBQW1HO0FBQ25HLG9FQUFvRTtBQUNwRSxTQUFnQixpQ0FBaUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFPRCxpR0FBaUc7QUFDakcsK0RBQStEO0FBQy9ELFNBQVMsV0FBVyxDQUFDLEtBQW1CO0lBQ3RDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFZixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLEdBQUcs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
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1lbmNyeXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NyeXB0by9jcmVkZW50aWFsLWVuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBb0Y7QUFFcEYsc0NBQThEO0FBRTlELGdHQUFnRztBQUNoRyxtRkFBbUY7QUFDbkYsTUFBTSxTQUFTLEdBQUcsdUNBQXVDLENBQUM7QUFDMUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBQzdCLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVU7QUFDaEMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsNEJBQTRCO0FBQ2pELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUM7QUFPaEMsaUdBQWlHO0FBQ2pHLCtEQUErRDtBQUMvRCxTQUFTLFdBQVcsQ0FBQyxLQUFtQjtJQUN0QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QixNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsNkZBQTZGO0FBQzdGLE1BQXFCLG9CQUFvQjtJQUN2QyxZQUE2QixNQUEwQjtRQUExQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUFHLENBQUM7SUFFM0QsT0FBTyxDQUFDLFNBQWlCO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWMsRUFBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUEsdUJBQWMsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFcEQsT0FBTztZQUNMLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUNwRSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUU1RCxNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFnQixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7WUFDNUIsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDakMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sU0FBUztRQUNmLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksMENBQWlDLEVBQUUsQ0FBQztRQUUzRCx1RkFBdUY7UUFDdkYsc0ZBQXNGO1FBQ3RGLDRGQUE0RjtRQUM1RixPQUFPLElBQUksVUFBVSxDQUFDLElBQUEsaUJBQVEsRUFBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRjtBQTVDRCx1Q0E0Q0MifQ==
package/dist/index.d.ts CHANGED
@@ -41,5 +41,5 @@ export { buildDatabaseRunStore, buildInMemoryRunStore } from './stores/build-run
41
41
  export { buildInMemoryExecutor, buildDatabaseExecutor } from './build-workflow-executor';
42
42
  export { runCli } from './cli-core';
43
43
  export { default as PrettyLogger } from './adapters/pretty-logger';
44
- export type { WorkflowExecutor, ExecutorOptions, DatabaseExecutorOptions, } from './build-workflow-executor';
44
+ export type { WorkflowExecutor, WorkflowExecutorTuningOptions, ExecutorOptions, DatabaseExecutorOptions, } from './build-workflow-executor';
45
45
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/workflow-executor",
3
- "version": "1.20.2",
3
+ "version": "1.21.0",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "forest-workflow-executor": "dist/cli.js"
@@ -30,8 +30,8 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@forestadmin/agent-client": "1.11.0",
33
- "@forestadmin/ai-proxy": "1.12.0",
34
- "@forestadmin/forestadmin-client": "1.40.5",
33
+ "@forestadmin/ai-proxy": "1.12.1",
34
+ "@forestadmin/forestadmin-client": "1.41.0",
35
35
  "@koa/bodyparser": "^6.1.0",
36
36
  "@koa/router": "^15.6.0",
37
37
  "jsonwebtoken": "^9.0.3",