@true-and-useful/janee 0.8.3 → 0.8.5
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 +82 -2
- package/dist/cli/commands/add.d.ts +5 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +91 -5
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/serve-mcp.d.ts.map +1 -1
- package/dist/cli/commands/serve-mcp.js +41 -1
- package/dist/cli/commands/serve-mcp.js.map +1 -1
- package/dist/cli/commands/status.d.ts +4 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +127 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/config-yaml.d.ts +18 -0
- package/dist/cli/config-yaml.d.ts.map +1 -1
- package/dist/cli/config-yaml.js +28 -1
- package/dist/cli/config-yaml.js.map +1 -1
- package/dist/cli/index.js +11 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/agent-scope.d.ts +81 -0
- package/dist/core/agent-scope.d.ts.map +1 -0
- package/dist/core/agent-scope.js +146 -0
- package/dist/core/agent-scope.js.map +1 -0
- package/dist/core/exec.d.ts +86 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +149 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/health.d.ts +27 -0
- package/dist/core/health.d.ts.map +1 -0
- package/dist/core/health.js +73 -0
- package/dist/core/health.js.map +1 -0
- package/dist/core/mcp-server.d.ts +13 -0
- package/dist/core/mcp-server.d.ts.map +1 -1
- package/dist/core/mcp-server.js +299 -11
- package/dist/core/mcp-server.js.map +1 -1
- package/dist/core/sessions.d.ts.map +1 -1
- package/dist/core/sessions.js +11 -1
- package/dist/core/sessions.js.map +1 -1
- package/dist/providers/env.d.ts +27 -0
- package/dist/providers/env.d.ts.map +1 -0
- package/dist/providers/env.js +64 -0
- package/dist/providers/env.js.map +1 -0
- package/dist/providers/filesystem.d.ts +34 -0
- package/dist/providers/filesystem.d.ts.map +1 -0
- package/dist/providers/filesystem.js +143 -0
- package/dist/providers/filesystem.js.map +1 -0
- package/dist/providers/index.d.ts +25 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +39 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/registry.d.ts +40 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +113 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/types.d.ts +137 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +135 -0
- package/dist/providers/types.js.map +1 -0
- package/package.json +1 -1
package/dist/core/mcp-server.js
CHANGED
|
@@ -3,6 +3,39 @@
|
|
|
3
3
|
* MCP Server for Janee
|
|
4
4
|
* Exposes capabilities to AI agents via Model Context Protocol
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
6
39
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
40
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
41
|
};
|
|
@@ -19,6 +52,13 @@ const rules_js_1 = require("./rules.js");
|
|
|
19
52
|
const http_1 = __importDefault(require("http"));
|
|
20
53
|
const https_1 = __importDefault(require("https"));
|
|
21
54
|
const express_1 = __importDefault(require("express"));
|
|
55
|
+
const exec_js_1 = require("./exec.js");
|
|
56
|
+
const fs_1 = require("fs");
|
|
57
|
+
const agent_scope_js_1 = require("./agent-scope.js");
|
|
58
|
+
const path_1 = require("path");
|
|
59
|
+
// Read version from package.json
|
|
60
|
+
const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
|
|
61
|
+
const pkgVersion = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf8')).version || '0.0.0';
|
|
22
62
|
/**
|
|
23
63
|
* Parse TTL string to seconds
|
|
24
64
|
*/
|
|
@@ -40,13 +80,13 @@ function parseTTL(ttl) {
|
|
|
40
80
|
* Create and start MCP server
|
|
41
81
|
*/
|
|
42
82
|
function createMCPServer(options) {
|
|
43
|
-
const { sessionManager, auditLogger, onExecute, onReloadConfig } = options;
|
|
83
|
+
const { sessionManager, auditLogger, onExecute, onExecCommand, onReloadConfig, onPersistOwnership } = options;
|
|
44
84
|
// Store as mutable to support hot-reloading
|
|
45
85
|
let capabilities = options.capabilities;
|
|
46
86
|
let services = options.services;
|
|
47
87
|
const server = new index_js_1.Server({
|
|
48
88
|
name: 'janee',
|
|
49
|
-
version:
|
|
89
|
+
version: pkgVersion
|
|
50
90
|
}, {
|
|
51
91
|
capabilities: {
|
|
52
92
|
tools: {}
|
|
@@ -55,10 +95,15 @@ function createMCPServer(options) {
|
|
|
55
95
|
// Tool: list_services
|
|
56
96
|
const listServicesTool = {
|
|
57
97
|
name: 'list_services',
|
|
58
|
-
description: 'List available API capabilities managed by Janee',
|
|
98
|
+
description: 'List available API capabilities managed by Janee. If you provide your agentId, only credentials you have access to will be shown.',
|
|
59
99
|
inputSchema: {
|
|
60
100
|
type: 'object',
|
|
61
|
-
properties: {
|
|
101
|
+
properties: {
|
|
102
|
+
agentId: {
|
|
103
|
+
type: 'string',
|
|
104
|
+
description: 'Your agent identifier (optional — filters results to credentials you can access)'
|
|
105
|
+
}
|
|
106
|
+
},
|
|
62
107
|
required: []
|
|
63
108
|
}
|
|
64
109
|
};
|
|
@@ -94,6 +139,10 @@ function createMCPServer(options) {
|
|
|
94
139
|
reason: {
|
|
95
140
|
type: 'string',
|
|
96
141
|
description: 'Reason for this request (required for some capabilities)'
|
|
142
|
+
},
|
|
143
|
+
agentId: {
|
|
144
|
+
type: 'string',
|
|
145
|
+
description: 'Your agent identifier (required for agent-scoped credentials)'
|
|
97
146
|
}
|
|
98
147
|
},
|
|
99
148
|
required: ['capability', 'method', 'path']
|
|
@@ -109,9 +158,69 @@ function createMCPServer(options) {
|
|
|
109
158
|
required: []
|
|
110
159
|
}
|
|
111
160
|
};
|
|
161
|
+
// Tool: janee_exec (RFC 0001 - Secure CLI Execution)
|
|
162
|
+
const execTool = {
|
|
163
|
+
name: 'janee_exec',
|
|
164
|
+
description: 'Execute a CLI command with credentials injected via environment variables. The agent never sees the actual credential — Janee injects it and scrubs output.',
|
|
165
|
+
inputSchema: {
|
|
166
|
+
type: 'object',
|
|
167
|
+
properties: {
|
|
168
|
+
capability: {
|
|
169
|
+
type: 'string',
|
|
170
|
+
description: 'Capability name (must be exec mode, from list_services)'
|
|
171
|
+
},
|
|
172
|
+
command: {
|
|
173
|
+
type: 'array',
|
|
174
|
+
items: { type: 'string' },
|
|
175
|
+
description: 'Command and arguments as array, e.g. ["gh", "issue", "list"]'
|
|
176
|
+
},
|
|
177
|
+
stdin: {
|
|
178
|
+
type: 'string',
|
|
179
|
+
description: 'Optional stdin input to pipe to the command'
|
|
180
|
+
},
|
|
181
|
+
reason: {
|
|
182
|
+
type: 'string',
|
|
183
|
+
description: 'Reason for this execution (required for some capabilities)'
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
required: ['capability', 'command']
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
// Tool: manage_credential (agent-scoped credential access control)
|
|
190
|
+
const manageCredentialTool = {
|
|
191
|
+
name: 'manage_credential',
|
|
192
|
+
description: 'View or manage access policies for agent-scoped credentials. Agents can check who has access, grant access to other agents, or revoke access.',
|
|
193
|
+
inputSchema: {
|
|
194
|
+
type: 'object',
|
|
195
|
+
properties: {
|
|
196
|
+
action: {
|
|
197
|
+
type: 'string',
|
|
198
|
+
enum: ['view', 'grant', 'revoke'],
|
|
199
|
+
description: 'Action to perform: view ownership info, grant access to another agent, or revoke access'
|
|
200
|
+
},
|
|
201
|
+
service: {
|
|
202
|
+
type: 'string',
|
|
203
|
+
description: 'Service name to manage'
|
|
204
|
+
},
|
|
205
|
+
targetAgentId: {
|
|
206
|
+
type: 'string',
|
|
207
|
+
description: 'Agent ID to grant/revoke access for (required for grant/revoke actions)'
|
|
208
|
+
},
|
|
209
|
+
agentId: {
|
|
210
|
+
type: 'string',
|
|
211
|
+
description: 'Your agent identifier (used to verify ownership)'
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
required: ['action', 'service']
|
|
215
|
+
}
|
|
216
|
+
};
|
|
112
217
|
// Register tools
|
|
113
218
|
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
114
|
-
const tools = [listServicesTool, executeTool];
|
|
219
|
+
const tools = [listServicesTool, executeTool, manageCredentialTool];
|
|
220
|
+
// Add exec tool if handler is provided
|
|
221
|
+
if (onExecCommand) {
|
|
222
|
+
tools.push(execTool);
|
|
223
|
+
}
|
|
115
224
|
// Only expose reload_config if a reload handler is provided
|
|
116
225
|
if (onReloadConfig) {
|
|
117
226
|
tools.push(reloadConfigTool);
|
|
@@ -119,24 +228,36 @@ function createMCPServer(options) {
|
|
|
119
228
|
return { tools };
|
|
120
229
|
});
|
|
121
230
|
// Handle tool calls
|
|
122
|
-
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
231
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
|
|
123
232
|
const { name, arguments: args } = request.params;
|
|
124
233
|
try {
|
|
125
234
|
switch (name) {
|
|
126
|
-
case 'list_services':
|
|
235
|
+
case 'list_services': {
|
|
236
|
+
const listAgentId = (0, agent_scope_js_1.resolveAgentIdentity)({ agentId: extra?.sessionId, metadata: { verifiedAgentId: extra?.authInfo?.clientId } }, args?.agentId);
|
|
127
237
|
return {
|
|
128
238
|
content: [{
|
|
129
239
|
type: 'text',
|
|
130
|
-
text: JSON.stringify(capabilities
|
|
240
|
+
text: JSON.stringify(capabilities
|
|
241
|
+
.filter(cap => {
|
|
242
|
+
const svc = services.get(cap.service);
|
|
243
|
+
return (0, agent_scope_js_1.canAgentAccess)(listAgentId, svc?.ownership);
|
|
244
|
+
})
|
|
245
|
+
.map(cap => ({
|
|
131
246
|
name: cap.name,
|
|
132
247
|
service: cap.service,
|
|
248
|
+
mode: cap.mode || 'proxy',
|
|
133
249
|
ttl: cap.ttl,
|
|
134
250
|
autoApprove: cap.autoApprove,
|
|
135
251
|
requiresReason: cap.requiresReason,
|
|
136
|
-
rules: cap.rules
|
|
252
|
+
rules: cap.rules,
|
|
253
|
+
...(cap.mode === 'exec' && {
|
|
254
|
+
allowCommands: cap.allowCommands,
|
|
255
|
+
env: cap.env ? Object.keys(cap.env) : undefined,
|
|
256
|
+
})
|
|
137
257
|
})), null, 2)
|
|
138
258
|
}]
|
|
139
259
|
};
|
|
260
|
+
}
|
|
140
261
|
case 'reload_config': {
|
|
141
262
|
if (!onReloadConfig) {
|
|
142
263
|
throw new Error('Config reload not supported');
|
|
@@ -169,11 +290,25 @@ function createMCPServer(options) {
|
|
|
169
290
|
}
|
|
170
291
|
case 'execute': {
|
|
171
292
|
const { capability, method, path, body, headers, reason } = args;
|
|
293
|
+
// Validate required arguments
|
|
294
|
+
if (!capability) {
|
|
295
|
+
throw new Error('Missing required argument: capability');
|
|
296
|
+
}
|
|
297
|
+
if (!method) {
|
|
298
|
+
throw new Error('Missing required argument: method (GET, POST, PUT, DELETE, etc.)');
|
|
299
|
+
}
|
|
300
|
+
if (!path) {
|
|
301
|
+
throw new Error('Missing required argument: path');
|
|
302
|
+
}
|
|
172
303
|
// Find capability
|
|
173
304
|
const cap = capabilities.find(c => c.name === capability);
|
|
174
305
|
if (!cap) {
|
|
175
306
|
throw new Error(`Unknown capability: ${capability}`);
|
|
176
307
|
}
|
|
308
|
+
// Reject exec-mode capabilities — they should use janee_exec instead
|
|
309
|
+
if (cap.mode === 'exec') {
|
|
310
|
+
throw new Error(`Capability "${capability}" is an exec-mode capability. Use the 'janee_exec' tool instead.`);
|
|
311
|
+
}
|
|
177
312
|
// Check if reason required
|
|
178
313
|
if (cap.requiresReason && !reason) {
|
|
179
314
|
throw new Error(`Capability "${capability}" requires a reason`);
|
|
@@ -185,9 +320,16 @@ function createMCPServer(options) {
|
|
|
185
320
|
auditLogger.logDenied(cap.service, method, path, ruleCheck.reason || 'Request denied by policy', reason);
|
|
186
321
|
throw new Error(ruleCheck.reason || 'Request denied by policy');
|
|
187
322
|
}
|
|
323
|
+
// Check agent-scoped access (transport-bound identity preferred over client-asserted)
|
|
324
|
+
const executeAgentId = (0, agent_scope_js_1.resolveAgentIdentity)({ agentId: extra?.sessionId, metadata: { verifiedAgentId: extra?.authInfo?.clientId } }, args.agentId);
|
|
325
|
+
const executeSvc = services.get(cap.service);
|
|
326
|
+
if (!(0, agent_scope_js_1.canAgentAccess)(executeAgentId, executeSvc?.ownership)) {
|
|
327
|
+
auditLogger.logDenied(cap.service, method, path, 'Agent does not have access to this credential', reason);
|
|
328
|
+
throw new Error(`Access denied: credential for service "${cap.service}" is not accessible to this agent`);
|
|
329
|
+
}
|
|
188
330
|
// Get or create session
|
|
189
331
|
const ttlSeconds = parseTTL(cap.ttl);
|
|
190
|
-
const session = sessionManager.createSession(cap.name, cap.service, ttlSeconds, { reason });
|
|
332
|
+
const session = sessionManager.createSession(cap.name, cap.service, ttlSeconds, { agentId: executeAgentId, reason });
|
|
191
333
|
// Build API request
|
|
192
334
|
const apiReq = {
|
|
193
335
|
service: cap.service,
|
|
@@ -208,6 +350,149 @@ function createMCPServer(options) {
|
|
|
208
350
|
}]
|
|
209
351
|
};
|
|
210
352
|
}
|
|
353
|
+
case 'janee_exec': {
|
|
354
|
+
if (!onExecCommand) {
|
|
355
|
+
throw new Error('CLI execution not supported in this configuration');
|
|
356
|
+
}
|
|
357
|
+
const { capability: execCapName, command: rawExecCommand, stdin: execStdin, reason: execReason } = args;
|
|
358
|
+
// Validate required arguments
|
|
359
|
+
if (!execCapName) {
|
|
360
|
+
throw new Error('Missing required argument: capability');
|
|
361
|
+
}
|
|
362
|
+
if (!rawExecCommand || (Array.isArray(rawExecCommand) && rawExecCommand.length === 0) || (typeof rawExecCommand === 'string' && rawExecCommand.trim() === '')) {
|
|
363
|
+
throw new Error('Missing required argument: command');
|
|
364
|
+
}
|
|
365
|
+
// Normalize command to array — accept both string and array from MCP clients
|
|
366
|
+
const execCommand = Array.isArray(rawExecCommand)
|
|
367
|
+
? rawExecCommand
|
|
368
|
+
: typeof rawExecCommand === 'string'
|
|
369
|
+
? rawExecCommand.trim().split(/\s+/)
|
|
370
|
+
: [];
|
|
371
|
+
// Find capability
|
|
372
|
+
const execCap = capabilities.find(c => c.name === execCapName);
|
|
373
|
+
if (!execCap) {
|
|
374
|
+
throw new Error(`Unknown capability: ${execCapName}`);
|
|
375
|
+
}
|
|
376
|
+
// Verify this is an exec-mode capability
|
|
377
|
+
if (execCap.mode !== 'exec') {
|
|
378
|
+
throw new Error(`Capability "${execCapName}" is not an exec-mode capability. Use the 'execute' tool for API proxy capabilities.`);
|
|
379
|
+
}
|
|
380
|
+
// Check if reason required
|
|
381
|
+
if (execCap.requiresReason && !execReason) {
|
|
382
|
+
throw new Error(`Capability "${execCapName}" requires a reason`);
|
|
383
|
+
}
|
|
384
|
+
// Validate command against whitelist
|
|
385
|
+
const cmdValidation = (0, exec_js_1.validateCommand)(execCommand, execCap.allowCommands || []);
|
|
386
|
+
if (!cmdValidation.allowed) {
|
|
387
|
+
auditLogger.logDenied(execCap.service, 'EXEC', execCommand.join(' '), cmdValidation.reason || 'Command not allowed', execReason);
|
|
388
|
+
throw new Error(cmdValidation.reason || 'Command not allowed');
|
|
389
|
+
}
|
|
390
|
+
// Get or create session
|
|
391
|
+
const execTtlSeconds = parseTTL(execCap.ttl);
|
|
392
|
+
const execSession = sessionManager.createSession(execCap.name, execCap.service, execTtlSeconds, { reason: execReason });
|
|
393
|
+
// Execute command
|
|
394
|
+
const execResult = await onExecCommand(execSession, execCap, execCommand, execStdin);
|
|
395
|
+
// Log to audit
|
|
396
|
+
auditLogger.log({
|
|
397
|
+
service: execCap.service,
|
|
398
|
+
path: execCommand.join(' '),
|
|
399
|
+
method: 'EXEC',
|
|
400
|
+
headers: { 'x-janee-reason': execReason || '' },
|
|
401
|
+
}, {
|
|
402
|
+
statusCode: execResult.exitCode === 0 ? 200 : 500,
|
|
403
|
+
headers: {},
|
|
404
|
+
body: execResult.stdout,
|
|
405
|
+
}, execResult.executionTimeMs);
|
|
406
|
+
return {
|
|
407
|
+
content: [{
|
|
408
|
+
type: 'text',
|
|
409
|
+
text: JSON.stringify({
|
|
410
|
+
exitCode: execResult.exitCode,
|
|
411
|
+
stdout: execResult.stdout,
|
|
412
|
+
stderr: execResult.stderr,
|
|
413
|
+
executionTimeMs: execResult.executionTimeMs,
|
|
414
|
+
}, null, 2)
|
|
415
|
+
}]
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
case 'manage_credential': {
|
|
419
|
+
const { action: credAction, service: credService, targetAgentId: credTarget } = args;
|
|
420
|
+
const credAgentId = (0, agent_scope_js_1.resolveAgentIdentity)({ agentId: extra?.sessionId, metadata: { verifiedAgentId: extra?.authInfo?.clientId } }, args.agentId);
|
|
421
|
+
if (!credService) {
|
|
422
|
+
throw new Error('Missing required argument: service');
|
|
423
|
+
}
|
|
424
|
+
const svc = services.get(credService);
|
|
425
|
+
if (!svc) {
|
|
426
|
+
throw new Error(`Unknown service: ${credService}`);
|
|
427
|
+
}
|
|
428
|
+
if (credAction === 'view') {
|
|
429
|
+
return {
|
|
430
|
+
content: [{
|
|
431
|
+
type: 'text',
|
|
432
|
+
text: JSON.stringify({
|
|
433
|
+
service: credService,
|
|
434
|
+
ownership: svc.ownership || { accessPolicy: 'all-agents', note: 'No ownership metadata (legacy credential)' },
|
|
435
|
+
yourAccess: (0, agent_scope_js_1.canAgentAccess)(credAgentId, svc.ownership)
|
|
436
|
+
}, null, 2)
|
|
437
|
+
}]
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
// Grant/revoke require ownership verification
|
|
441
|
+
if (!credAgentId) {
|
|
442
|
+
throw new Error('agentId is required for grant/revoke actions');
|
|
443
|
+
}
|
|
444
|
+
if (!svc.ownership) {
|
|
445
|
+
throw new Error('Cannot manage access for legacy credentials without ownership metadata. Re-add the service to enable scoping.');
|
|
446
|
+
}
|
|
447
|
+
if (svc.ownership.createdBy !== credAgentId) {
|
|
448
|
+
throw new Error('Only the credential owner can grant or revoke access');
|
|
449
|
+
}
|
|
450
|
+
if (credAction === 'grant') {
|
|
451
|
+
if (!credTarget) {
|
|
452
|
+
throw new Error('targetAgentId is required for grant action');
|
|
453
|
+
}
|
|
454
|
+
const { grantAccess } = await Promise.resolve().then(() => __importStar(require('./agent-scope.js')));
|
|
455
|
+
svc.ownership = grantAccess(svc.ownership, credTarget);
|
|
456
|
+
// Persist ownership change to config storage
|
|
457
|
+
if (onPersistOwnership) {
|
|
458
|
+
onPersistOwnership(credService, svc.ownership);
|
|
459
|
+
}
|
|
460
|
+
return {
|
|
461
|
+
content: [{
|
|
462
|
+
type: 'text',
|
|
463
|
+
text: JSON.stringify({
|
|
464
|
+
success: true,
|
|
465
|
+
message: `Granted access to ${credTarget}`,
|
|
466
|
+
ownership: svc.ownership,
|
|
467
|
+
persisted: !!onPersistOwnership
|
|
468
|
+
}, null, 2)
|
|
469
|
+
}]
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
if (credAction === 'revoke') {
|
|
473
|
+
if (!credTarget) {
|
|
474
|
+
throw new Error('targetAgentId is required for revoke action');
|
|
475
|
+
}
|
|
476
|
+
const { revokeAccess } = await Promise.resolve().then(() => __importStar(require('./agent-scope.js')));
|
|
477
|
+
svc.ownership = revokeAccess(svc.ownership, credTarget);
|
|
478
|
+
// Persist ownership change to config storage
|
|
479
|
+
if (onPersistOwnership) {
|
|
480
|
+
onPersistOwnership(credService, svc.ownership);
|
|
481
|
+
}
|
|
482
|
+
return {
|
|
483
|
+
content: [{
|
|
484
|
+
type: 'text',
|
|
485
|
+
text: JSON.stringify({
|
|
486
|
+
success: true,
|
|
487
|
+
message: `Revoked access from ${credTarget}`,
|
|
488
|
+
ownership: svc.ownership,
|
|
489
|
+
persisted: !!onPersistOwnership
|
|
490
|
+
}, null, 2)
|
|
491
|
+
}]
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
throw new Error(`Unknown action: ${credAction}. Use 'view', 'grant', or 'revoke'.`);
|
|
495
|
+
}
|
|
211
496
|
default:
|
|
212
497
|
throw new Error(`Unknown tool: ${name}`);
|
|
213
498
|
}
|
|
@@ -237,7 +522,10 @@ function makeAPIRequest(targetUrl, request) {
|
|
|
237
522
|
port: targetUrl.port,
|
|
238
523
|
path: targetUrl.pathname + targetUrl.search,
|
|
239
524
|
method: request.method,
|
|
240
|
-
headers:
|
|
525
|
+
headers: {
|
|
526
|
+
'User-Agent': 'janee/' + pkgVersion,
|
|
527
|
+
...request.headers
|
|
528
|
+
}
|
|
241
529
|
};
|
|
242
530
|
const req = client.request(options, (res) => {
|
|
243
531
|
let body = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/core/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/core/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;IACH,OAAO,CAAC,IAAI;IAwBZ;;OAEG;IACH,OAAO,CAAC,IAAI;IAeZ;;OAEG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAClD,OAAO;IA4BV;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgBlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAazC;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;IACH,OAAO,CAAC,IAAI;IAwBZ;;OAEG;IACH,OAAO,CAAC,IAAI;IAeZ;;OAEG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAClD,OAAO;IA4BV;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgBlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAazC;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;IAsBzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAehB"}
|
package/dist/core/sessions.js
CHANGED
|
@@ -106,8 +106,8 @@ class SessionManager {
|
|
|
106
106
|
return false;
|
|
107
107
|
}
|
|
108
108
|
session.revoked = true;
|
|
109
|
-
this.sessions.delete(sessionId);
|
|
110
109
|
this.save();
|
|
110
|
+
this.sessions.delete(sessionId);
|
|
111
111
|
return true;
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
@@ -116,6 +116,7 @@ class SessionManager {
|
|
|
116
116
|
listSessions() {
|
|
117
117
|
const now = new Date();
|
|
118
118
|
const active = [];
|
|
119
|
+
let cleaned = false;
|
|
119
120
|
for (const [id, session] of this.sessions.entries()) {
|
|
120
121
|
if (!session.revoked && now <= session.expiresAt) {
|
|
121
122
|
active.push(session);
|
|
@@ -123,8 +124,12 @@ class SessionManager {
|
|
|
123
124
|
else {
|
|
124
125
|
// Clean up expired
|
|
125
126
|
this.sessions.delete(id);
|
|
127
|
+
cleaned = true;
|
|
126
128
|
}
|
|
127
129
|
}
|
|
130
|
+
if (cleaned) {
|
|
131
|
+
this.save();
|
|
132
|
+
}
|
|
128
133
|
return active;
|
|
129
134
|
}
|
|
130
135
|
/**
|
|
@@ -132,11 +137,16 @@ class SessionManager {
|
|
|
132
137
|
*/
|
|
133
138
|
cleanup() {
|
|
134
139
|
const now = new Date();
|
|
140
|
+
let cleaned = false;
|
|
135
141
|
for (const [id, session] of this.sessions.entries()) {
|
|
136
142
|
if (session.revoked || now > session.expiresAt) {
|
|
137
143
|
this.sessions.delete(id);
|
|
144
|
+
cleaned = true;
|
|
138
145
|
}
|
|
139
146
|
}
|
|
147
|
+
if (cleaned) {
|
|
148
|
+
this.save();
|
|
149
|
+
}
|
|
140
150
|
}
|
|
141
151
|
}
|
|
142
152
|
exports.SessionManager = SessionManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,qCAAyC;AACzC,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAapB,MAAa,cAAc;IACjB,QAAQ,GAAyB,IAAI,GAAG,EAAE,CAAC;IAC3C,WAAW,CAAS;IAE5B,YAAY,WAAoB;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACK,IAAI;QACV,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAG9B,CAAC;YAEH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACtB,GAAG,CAAC;oBACJ,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;oBAChC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,IAAI;QACV,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC;YACJ,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;YACpC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;SACrC,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,aAAa,CACX,UAAkB,EAClB,OAAe,EACf,UAAkB,EAClB,UAAiD,EAAE;QAEnD,MAAM,EAAE,GAAG,IAAA,sBAAa,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAY;YACvB,EAAE;YACF,UAAU;YACV,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,GAAG;YACd,SAAS;YACT,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,mBAAmB;QACnB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;QAEtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,mBAAmB;gBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAxKD,wCAwKC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Variable Secrets Provider
|
|
3
|
+
*
|
|
4
|
+
* The simplest external provider: reads secrets from environment variables.
|
|
5
|
+
* Useful for CI/CD, Docker, Kubernetes, and simple deployments.
|
|
6
|
+
*
|
|
7
|
+
* Usage in config:
|
|
8
|
+
* key: env://STRIPE_API_KEY
|
|
9
|
+
*
|
|
10
|
+
* This reads from process.env.STRIPE_API_KEY at runtime.
|
|
11
|
+
*/
|
|
12
|
+
import { SecretsProvider, HealthCheckResult, ProviderConfig } from './types';
|
|
13
|
+
export declare class EnvProvider implements SecretsProvider {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly type = "env";
|
|
16
|
+
private prefix;
|
|
17
|
+
private required;
|
|
18
|
+
private initialized;
|
|
19
|
+
constructor(config: ProviderConfig);
|
|
20
|
+
initialize(): Promise<void>;
|
|
21
|
+
getSecret(varPath: string): Promise<string | null>;
|
|
22
|
+
listSecrets(prefix?: string): Promise<string[]>;
|
|
23
|
+
dispose(): Promise<void>;
|
|
24
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
25
|
+
private ensureInitialized;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/providers/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAgC,MAAM,SAAS,CAAC;AAS3G,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,cAAc;IAO5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoBlD,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAK/C,OAAO,CAAC,iBAAiB;CAS1B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Environment Variable Secrets Provider
|
|
4
|
+
*
|
|
5
|
+
* The simplest external provider: reads secrets from environment variables.
|
|
6
|
+
* Useful for CI/CD, Docker, Kubernetes, and simple deployments.
|
|
7
|
+
*
|
|
8
|
+
* Usage in config:
|
|
9
|
+
* key: env://STRIPE_API_KEY
|
|
10
|
+
*
|
|
11
|
+
* This reads from process.env.STRIPE_API_KEY at runtime.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.EnvProvider = void 0;
|
|
15
|
+
const types_1 = require("./types");
|
|
16
|
+
class EnvProvider {
|
|
17
|
+
name;
|
|
18
|
+
type = 'env';
|
|
19
|
+
prefix;
|
|
20
|
+
required;
|
|
21
|
+
initialized = false;
|
|
22
|
+
constructor(config) {
|
|
23
|
+
this.name = config.name;
|
|
24
|
+
const envConfig = config.config;
|
|
25
|
+
this.prefix = envConfig.prefix || '';
|
|
26
|
+
this.required = envConfig.required || false;
|
|
27
|
+
}
|
|
28
|
+
async initialize() {
|
|
29
|
+
this.initialized = true;
|
|
30
|
+
}
|
|
31
|
+
async getSecret(varPath) {
|
|
32
|
+
this.ensureInitialized();
|
|
33
|
+
const envVar = this.prefix + varPath;
|
|
34
|
+
const value = process.env[envVar];
|
|
35
|
+
if (value === undefined) {
|
|
36
|
+
if (this.required) {
|
|
37
|
+
throw new types_1.SecretError(types_1.SecretErrorCode.NOT_FOUND, `EnvProvider "${this.name}": required environment variable "${envVar}" is not set`, { provider: this.name, secretPath: varPath });
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
async listSecrets(prefix) {
|
|
44
|
+
this.ensureInitialized();
|
|
45
|
+
const fullPrefix = this.prefix + (prefix || '');
|
|
46
|
+
return Object.keys(process.env)
|
|
47
|
+
.filter(key => key.startsWith(fullPrefix))
|
|
48
|
+
.map(key => key.slice(this.prefix.length));
|
|
49
|
+
}
|
|
50
|
+
async dispose() {
|
|
51
|
+
this.initialized = false;
|
|
52
|
+
}
|
|
53
|
+
async healthCheck() {
|
|
54
|
+
// Environment variables are always available
|
|
55
|
+
return { healthy: true, latencyMs: 0 };
|
|
56
|
+
}
|
|
57
|
+
ensureInitialized() {
|
|
58
|
+
if (!this.initialized) {
|
|
59
|
+
throw new types_1.SecretError(types_1.SecretErrorCode.NOT_INITIALIZED, `EnvProvider "${this.name}": not initialized. Call initialize() first.`, { provider: this.name });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.EnvProvider = EnvProvider;
|
|
64
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/providers/env.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,mCAA2G;AAS3G,MAAa,WAAW;IACb,IAAI,CAAS;IACb,IAAI,GAAG,KAAK,CAAC;IAEd,MAAM,CAAS;IACf,QAAQ,CAAU;IAClB,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,MAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,MAA8B,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,mBAAW,CACnB,uBAAe,CAAC,SAAS,EACzB,gBAAgB,IAAI,CAAC,IAAI,qCAAqC,MAAM,cAAc,EAClF,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAC7C,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;aACzC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,6CAA6C;QAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,mBAAW,CACnB,uBAAe,CAAC,eAAe,EAC/B,gBAAgB,IAAI,CAAC,IAAI,8CAA8C,EACvE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAnED,kCAmEC"}
|