hawkeye-mcp-server 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -2
- package/build/config/config.d.ts +6 -1
- package/build/config/config.js +24 -5
- package/build/config/config.js.map +1 -1
- package/build/db/index.d.ts +51 -0
- package/build/db/index.js +174 -0
- package/build/db/index.js.map +1 -0
- package/build/db/postgres-state-provider.d.ts +52 -0
- package/build/db/postgres-state-provider.js +165 -0
- package/build/db/postgres-state-provider.js.map +1 -0
- package/build/index.d.ts +4 -1
- package/build/index.js +17 -84
- package/build/index.js.map +1 -1
- package/build/mcp-server-factory.d.ts +36 -0
- package/build/mcp-server-factory.js +92 -0
- package/build/mcp-server-factory.js.map +1 -0
- package/build/server.d.ts +9 -0
- package/build/server.js +337 -0
- package/build/server.js.map +1 -0
- package/build/services/auth.service.d.ts +38 -0
- package/build/services/auth.service.js +64 -0
- package/build/services/auth.service.js.map +1 -1
- package/build/services/project.service.d.ts +11 -0
- package/build/services/project.service.js +31 -0
- package/build/services/project.service.js.map +1 -1
- package/build/services/state.service.d.ts +115 -0
- package/build/services/state.service.js +172 -0
- package/build/services/state.service.js.map +1 -0
- package/build/tools/create-connection.d.ts +12 -0
- package/build/tools/create-connection.js +6 -0
- package/build/tools/create-connection.js.map +1 -1
- package/build/tools/create-manual-investigation.js +10 -6
- package/build/tools/create-manual-investigation.js.map +1 -1
- package/build/tools/get-connection-info.js +1 -0
- package/build/tools/get-connection-info.js.map +1 -1
- package/build/tools/get-session-link.js +1 -2
- package/build/tools/get-session-link.js.map +1 -1
- package/build/tools/get-status.js +2 -4
- package/build/tools/get-status.js.map +1 -1
- package/build/tools/index.js +11 -1
- package/build/tools/index.js.map +1 -1
- package/build/tools/inspect-session.js +1 -2
- package/build/tools/inspect-session.js.map +1 -1
- package/build/tools/list-connection-types.js +9 -0
- package/build/tools/list-connection-types.js.map +1 -1
- package/build/types/hawkeye.d.ts +7 -0
- package/build/types/hawkeye.js.map +1 -1
- package/build/utils/connection-builders.d.ts +8 -0
- package/build/utils/connection-builders.js +48 -1
- package/build/utils/connection-builders.js.map +1 -1
- package/build/utils/state.d.ts +24 -17
- package/build/utils/state.js +63 -72
- package/build/utils/state.js.map +1 -1
- package/package.json +12 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Authentication service for Hawkeye API
|
|
3
3
|
* Handles login, token caching, and automatic token refresh
|
|
4
|
+
*
|
|
5
|
+
* Supports two authentication modes:
|
|
6
|
+
* 1. Password mode: Uses email/password to login and get tokens
|
|
7
|
+
* 2. Bearer token mode: Uses an externally provided token (e.g., from Auth0)
|
|
4
8
|
*/
|
|
5
9
|
import { HttpClient } from '../utils/http-client.js';
|
|
10
|
+
/**
|
|
11
|
+
* Authentication mode
|
|
12
|
+
*/
|
|
13
|
+
export type AuthMode = 'password' | 'bearer';
|
|
14
|
+
/**
|
|
15
|
+
* User information returned from /v1/user/me
|
|
16
|
+
*/
|
|
17
|
+
export interface UserInfo {
|
|
18
|
+
email: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
uuid?: string;
|
|
21
|
+
organization_uuid?: string;
|
|
22
|
+
}
|
|
6
23
|
/**
|
|
7
24
|
* Authentication service
|
|
8
25
|
*/
|
|
@@ -10,7 +27,28 @@ export declare class AuthenticationService {
|
|
|
10
27
|
private httpClient;
|
|
11
28
|
private tokenCache;
|
|
12
29
|
private config;
|
|
30
|
+
private authMode;
|
|
31
|
+
private bearerToken;
|
|
32
|
+
private userInfo;
|
|
13
33
|
constructor(httpClient: HttpClient);
|
|
34
|
+
/**
|
|
35
|
+
* Set bearer token directly (for Auth0/OAuth mode)
|
|
36
|
+
* This bypasses the login flow and uses the provided token
|
|
37
|
+
*/
|
|
38
|
+
setBearerToken(token: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get the current authentication mode
|
|
41
|
+
*/
|
|
42
|
+
getAuthMode(): AuthMode;
|
|
43
|
+
/**
|
|
44
|
+
* Get cached user info (only available after validateAndGetUserInfo is called in bearer mode)
|
|
45
|
+
*/
|
|
46
|
+
getUserInfo(): UserInfo | null;
|
|
47
|
+
/**
|
|
48
|
+
* Validate the bearer token and get user info from Hawkeye API
|
|
49
|
+
* This should be called after setBearerToken to verify the token is valid
|
|
50
|
+
*/
|
|
51
|
+
validateAndGetUserInfo(): Promise<UserInfo>;
|
|
14
52
|
/**
|
|
15
53
|
* Get a valid access token, refreshing if necessary
|
|
16
54
|
*/
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Authentication service for Hawkeye API
|
|
3
3
|
* Handles login, token caching, and automatic token refresh
|
|
4
|
+
*
|
|
5
|
+
* Supports two authentication modes:
|
|
6
|
+
* 1. Password mode: Uses email/password to login and get tokens
|
|
7
|
+
* 2. Bearer token mode: Uses an externally provided token (e.g., from Auth0)
|
|
4
8
|
*/
|
|
5
9
|
import { AuthenticationError } from '../types/errors.js';
|
|
6
10
|
import { getConfig, CONSTANTS } from '../config/config.js';
|
|
@@ -12,13 +16,73 @@ export class AuthenticationService {
|
|
|
12
16
|
httpClient;
|
|
13
17
|
tokenCache = null;
|
|
14
18
|
config = getConfig();
|
|
19
|
+
authMode = 'password';
|
|
20
|
+
bearerToken = null;
|
|
21
|
+
userInfo = null;
|
|
15
22
|
constructor(httpClient) {
|
|
16
23
|
this.httpClient = httpClient;
|
|
17
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Set bearer token directly (for Auth0/OAuth mode)
|
|
27
|
+
* This bypasses the login flow and uses the provided token
|
|
28
|
+
*/
|
|
29
|
+
setBearerToken(token) {
|
|
30
|
+
this.bearerToken = token;
|
|
31
|
+
this.authMode = 'bearer';
|
|
32
|
+
this.httpClient.setAuthToken(token);
|
|
33
|
+
logger.info('Bearer token set, using Auth0 authentication mode');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the current authentication mode
|
|
37
|
+
*/
|
|
38
|
+
getAuthMode() {
|
|
39
|
+
return this.authMode;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get cached user info (only available after validateAndGetUserInfo is called in bearer mode)
|
|
43
|
+
*/
|
|
44
|
+
getUserInfo() {
|
|
45
|
+
return this.userInfo;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Validate the bearer token and get user info from Hawkeye API
|
|
49
|
+
* This should be called after setBearerToken to verify the token is valid
|
|
50
|
+
*/
|
|
51
|
+
async validateAndGetUserInfo() {
|
|
52
|
+
if (this.authMode !== 'bearer' || !this.bearerToken) {
|
|
53
|
+
throw new AuthenticationError('Cannot validate token: not in bearer token mode', {}, ['Use setBearerToken() first to set a bearer token']);
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
// Call /v1/user/me to validate token and get user info
|
|
57
|
+
const response = await this.httpClient.get('/v1/user/me');
|
|
58
|
+
if (!response.data?.email) {
|
|
59
|
+
throw new AuthenticationError('Invalid user info response: missing email', { response: response.data }, ['Verify the bearer token is valid and not expired']);
|
|
60
|
+
}
|
|
61
|
+
this.userInfo = response.data;
|
|
62
|
+
logger.info(`Bearer token validated for user: ${response.data.email}`);
|
|
63
|
+
return response.data;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
logger.error('Failed to validate bearer token', error);
|
|
67
|
+
if (error instanceof AuthenticationError) {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
throw new AuthenticationError('Bearer token validation failed', { originalError: error instanceof Error ? error.message : String(error) }, [
|
|
71
|
+
'Verify the bearer token is valid and not expired',
|
|
72
|
+
'Check if the token has the required scopes',
|
|
73
|
+
'Ensure the Hawkeye API accepts this token type',
|
|
74
|
+
]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
18
77
|
/**
|
|
19
78
|
* Get a valid access token, refreshing if necessary
|
|
20
79
|
*/
|
|
21
80
|
async getAccessToken() {
|
|
81
|
+
// In bearer token mode, return the bearer token directly
|
|
82
|
+
if (this.authMode === 'bearer' && this.bearerToken) {
|
|
83
|
+
logger.debug('Using bearer token (Auth0 mode)');
|
|
84
|
+
return this.bearerToken;
|
|
85
|
+
}
|
|
22
86
|
// Check if we have a valid cached token
|
|
23
87
|
if (this.tokenCache && this.isTokenValid()) {
|
|
24
88
|
logger.debug('Using cached authentication token');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { HttpClient } from '../utils/http-client.js';
|
|
6
6
|
import { AuthenticationService } from './auth.service.js';
|
|
7
7
|
import { Project } from '../types/hawkeye.js';
|
|
8
|
+
import { StateProvider } from './state.service.js';
|
|
8
9
|
/**
|
|
9
10
|
* Project management service
|
|
10
11
|
*/
|
|
@@ -14,7 +15,17 @@ export declare class ProjectService {
|
|
|
14
15
|
private config;
|
|
15
16
|
private projectCache;
|
|
16
17
|
private defaultProjectUuid;
|
|
18
|
+
private stateProvider?;
|
|
19
|
+
private userIdentifier?;
|
|
17
20
|
constructor(httpClient: HttpClient, authService: AuthenticationService);
|
|
21
|
+
/**
|
|
22
|
+
* Attach a state provider and user identifier for persistence (used in HTTP/server mode)
|
|
23
|
+
*/
|
|
24
|
+
setPersistenceContext(stateProvider: StateProvider, userIdentifier: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize default project from an external source without re-persisting
|
|
27
|
+
*/
|
|
28
|
+
setDefaultProjectFromState(projectUuid: string): void;
|
|
18
29
|
/**
|
|
19
30
|
* List all projects, using cache if available
|
|
20
31
|
*/
|
|
@@ -15,6 +15,8 @@ export class ProjectService {
|
|
|
15
15
|
config = getConfig();
|
|
16
16
|
projectCache = null;
|
|
17
17
|
defaultProjectUuid = null;
|
|
18
|
+
stateProvider;
|
|
19
|
+
userIdentifier;
|
|
18
20
|
constructor(httpClient, authService) {
|
|
19
21
|
this.httpClient = httpClient;
|
|
20
22
|
this.authService = authService;
|
|
@@ -28,6 +30,19 @@ export class ProjectService {
|
|
|
28
30
|
logger.info(`Loaded default project from state: ${this.defaultProjectUuid}`);
|
|
29
31
|
}
|
|
30
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Attach a state provider and user identifier for persistence (used in HTTP/server mode)
|
|
35
|
+
*/
|
|
36
|
+
setPersistenceContext(stateProvider, userIdentifier) {
|
|
37
|
+
this.stateProvider = stateProvider;
|
|
38
|
+
this.userIdentifier = userIdentifier;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Initialize default project from an external source without re-persisting
|
|
42
|
+
*/
|
|
43
|
+
setDefaultProjectFromState(projectUuid) {
|
|
44
|
+
this.defaultProjectUuid = projectUuid;
|
|
45
|
+
}
|
|
31
46
|
/**
|
|
32
47
|
* List all projects, using cache if available
|
|
33
48
|
*/
|
|
@@ -102,6 +117,22 @@ export class ProjectService {
|
|
|
102
117
|
*/
|
|
103
118
|
setDefaultProject(projectUuid) {
|
|
104
119
|
this.defaultProjectUuid = projectUuid;
|
|
120
|
+
// Persist per-user when running in HTTP/server mode
|
|
121
|
+
if (this.stateProvider && this.userIdentifier) {
|
|
122
|
+
this.stateProvider.setDefaultProjectUuid(projectUuid, this.userIdentifier)
|
|
123
|
+
.then(() => {
|
|
124
|
+
logger.info(`Default project set to: ${projectUuid}`);
|
|
125
|
+
})
|
|
126
|
+
.catch((error) => {
|
|
127
|
+
logger.error('Failed to persist default project to database', {
|
|
128
|
+
projectUuid,
|
|
129
|
+
userIdentifier: this.userIdentifier,
|
|
130
|
+
error: error instanceof Error ? error.message : String(error),
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// Fallback to legacy file-based state (stdio mode)
|
|
105
136
|
const stateManager = getStateManager();
|
|
106
137
|
stateManager.setDefaultProjectUuid(projectUuid);
|
|
107
138
|
logger.info(`Default project set to: ${projectUuid}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State service abstraction for persisting user preferences
|
|
3
|
+
* Supports multiple backends:
|
|
4
|
+
* - FileStateProvider: File-based storage for stdio/npm usage (single-user)
|
|
5
|
+
* - PostgresStateProvider: PostgreSQL storage for HTTP/SSE server (multi-user)
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* State data structure
|
|
9
|
+
*/
|
|
10
|
+
export interface StateData {
|
|
11
|
+
defaultProjectUuid?: string;
|
|
12
|
+
baseUrl?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* State provider interface - abstraction for different storage backends
|
|
16
|
+
*/
|
|
17
|
+
export interface StateProvider {
|
|
18
|
+
/**
|
|
19
|
+
* Get the default project UUID for a user
|
|
20
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
21
|
+
*/
|
|
22
|
+
getDefaultProjectUuid(userIdentifier?: string): Promise<string | undefined>;
|
|
23
|
+
/**
|
|
24
|
+
* Set the default project UUID for a user
|
|
25
|
+
* @param projectUuid - The project UUID to set as default
|
|
26
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
27
|
+
*/
|
|
28
|
+
setDefaultProjectUuid(projectUuid: string, userIdentifier?: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Clear the default project UUID for a user
|
|
31
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
32
|
+
*/
|
|
33
|
+
clearDefaultProjectUuid(userIdentifier?: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the base URL (only used in stdio mode for instance switching)
|
|
36
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
37
|
+
*/
|
|
38
|
+
getBaseUrl(userIdentifier?: string): Promise<string | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Set the base URL (only used in stdio mode for instance switching)
|
|
41
|
+
* @param baseUrl - The base URL to set
|
|
42
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
43
|
+
*/
|
|
44
|
+
setBaseUrl(baseUrl: string, userIdentifier?: string): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Clear the base URL
|
|
47
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
48
|
+
*/
|
|
49
|
+
clearBaseUrl(userIdentifier?: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Clear all state for a user
|
|
52
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
53
|
+
*/
|
|
54
|
+
clearAll(userIdentifier?: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Get all state data for a user
|
|
57
|
+
* @param userIdentifier - User email or identifier (ignored in single-user mode)
|
|
58
|
+
*/
|
|
59
|
+
getAll(userIdentifier?: string): Promise<StateData>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* File-based state provider for stdio/npm usage (single-user mode)
|
|
63
|
+
* Stores state in ~/.hawkeye-mcp/state.json
|
|
64
|
+
* This is the original implementation, preserved for backwards compatibility
|
|
65
|
+
*/
|
|
66
|
+
export declare class FileStateProvider implements StateProvider {
|
|
67
|
+
private statePath;
|
|
68
|
+
private state;
|
|
69
|
+
constructor();
|
|
70
|
+
/**
|
|
71
|
+
* Load state from file (synchronous, called on construction)
|
|
72
|
+
*/
|
|
73
|
+
private loadSync;
|
|
74
|
+
/**
|
|
75
|
+
* Save state to file
|
|
76
|
+
*/
|
|
77
|
+
private save;
|
|
78
|
+
getDefaultProjectUuid(_userIdentifier?: string): Promise<string | undefined>;
|
|
79
|
+
setDefaultProjectUuid(projectUuid: string, _userIdentifier?: string): Promise<void>;
|
|
80
|
+
clearDefaultProjectUuid(_userIdentifier?: string): Promise<void>;
|
|
81
|
+
getBaseUrl(_userIdentifier?: string): Promise<string | undefined>;
|
|
82
|
+
setBaseUrl(baseUrl: string, _userIdentifier?: string): Promise<void>;
|
|
83
|
+
clearBaseUrl(_userIdentifier?: string): Promise<void>;
|
|
84
|
+
clearAll(_userIdentifier?: string): Promise<void>;
|
|
85
|
+
getAll(_userIdentifier?: string): Promise<StateData>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the file state provider singleton
|
|
89
|
+
* Used for stdio mode (backwards compatibility)
|
|
90
|
+
*/
|
|
91
|
+
export declare function getFileStateProvider(): FileStateProvider;
|
|
92
|
+
/**
|
|
93
|
+
* State provider factory - creates the appropriate provider based on transport mode
|
|
94
|
+
* @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
|
|
95
|
+
*/
|
|
96
|
+
export declare function createStateProviderAsync(transportMode?: string): Promise<StateProvider>;
|
|
97
|
+
/**
|
|
98
|
+
* State provider factory (synchronous version)
|
|
99
|
+
* For HTTP mode, this will throw - use createStateProviderAsync instead
|
|
100
|
+
* @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
|
|
101
|
+
*/
|
|
102
|
+
export declare function createStateProvider(transportMode?: string): StateProvider;
|
|
103
|
+
/**
|
|
104
|
+
* Get the default state provider
|
|
105
|
+
* Automatically selects the appropriate backend based on TRANSPORT_MODE
|
|
106
|
+
*/
|
|
107
|
+
export declare function getStateProvider(): StateProvider;
|
|
108
|
+
/**
|
|
109
|
+
* Set a custom state provider (useful for testing or dependency injection)
|
|
110
|
+
*/
|
|
111
|
+
export declare function setStateProvider(provider: StateProvider): void;
|
|
112
|
+
/**
|
|
113
|
+
* Reset the state provider (useful for testing)
|
|
114
|
+
*/
|
|
115
|
+
export declare function resetStateProvider(): void;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State service abstraction for persisting user preferences
|
|
3
|
+
* Supports multiple backends:
|
|
4
|
+
* - FileStateProvider: File-based storage for stdio/npm usage (single-user)
|
|
5
|
+
* - PostgresStateProvider: PostgreSQL storage for HTTP/SSE server (multi-user)
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as os from 'os';
|
|
10
|
+
import { logger } from '../utils/logger.js';
|
|
11
|
+
/**
|
|
12
|
+
* File-based state provider for stdio/npm usage (single-user mode)
|
|
13
|
+
* Stores state in ~/.hawkeye-mcp/state.json
|
|
14
|
+
* This is the original implementation, preserved for backwards compatibility
|
|
15
|
+
*/
|
|
16
|
+
export class FileStateProvider {
|
|
17
|
+
statePath;
|
|
18
|
+
state = {};
|
|
19
|
+
constructor() {
|
|
20
|
+
const homeDir = os.homedir();
|
|
21
|
+
const stateDir = path.join(homeDir, '.hawkeye-mcp');
|
|
22
|
+
this.statePath = path.join(stateDir, 'state.json');
|
|
23
|
+
// Ensure state directory exists
|
|
24
|
+
if (!fs.existsSync(stateDir)) {
|
|
25
|
+
try {
|
|
26
|
+
fs.mkdirSync(stateDir, { recursive: true });
|
|
27
|
+
logger.info('Created state directory', { path: stateDir });
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
logger.error('Failed to create state directory', { error, path: stateDir });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Load existing state synchronously on construction
|
|
34
|
+
this.loadSync();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Load state from file (synchronous, called on construction)
|
|
38
|
+
*/
|
|
39
|
+
loadSync() {
|
|
40
|
+
try {
|
|
41
|
+
if (fs.existsSync(this.statePath)) {
|
|
42
|
+
const data = fs.readFileSync(this.statePath, 'utf-8');
|
|
43
|
+
this.state = JSON.parse(data);
|
|
44
|
+
logger.debug('Loaded state from file', { state: this.state });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
logger.debug('No state file found, starting with empty state');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
logger.error('Failed to load state file', { error, path: this.statePath });
|
|
52
|
+
this.state = {};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Save state to file
|
|
57
|
+
*/
|
|
58
|
+
save() {
|
|
59
|
+
try {
|
|
60
|
+
const data = JSON.stringify(this.state, null, 2);
|
|
61
|
+
fs.writeFileSync(this.statePath, data, 'utf-8');
|
|
62
|
+
logger.debug('Saved state to file', { state: this.state });
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
logger.error('Failed to save state file', { error, path: this.statePath });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async getDefaultProjectUuid(_userIdentifier) {
|
|
69
|
+
return this.state.defaultProjectUuid;
|
|
70
|
+
}
|
|
71
|
+
async setDefaultProjectUuid(projectUuid, _userIdentifier) {
|
|
72
|
+
this.state.defaultProjectUuid = projectUuid;
|
|
73
|
+
this.save();
|
|
74
|
+
logger.info('Set default project UUID', { projectUuid });
|
|
75
|
+
}
|
|
76
|
+
async clearDefaultProjectUuid(_userIdentifier) {
|
|
77
|
+
delete this.state.defaultProjectUuid;
|
|
78
|
+
this.save();
|
|
79
|
+
logger.info('Cleared default project UUID');
|
|
80
|
+
}
|
|
81
|
+
async getBaseUrl(_userIdentifier) {
|
|
82
|
+
return this.state.baseUrl;
|
|
83
|
+
}
|
|
84
|
+
async setBaseUrl(baseUrl, _userIdentifier) {
|
|
85
|
+
this.state.baseUrl = baseUrl;
|
|
86
|
+
this.save();
|
|
87
|
+
logger.info('Set base URL', { baseUrl });
|
|
88
|
+
}
|
|
89
|
+
async clearBaseUrl(_userIdentifier) {
|
|
90
|
+
delete this.state.baseUrl;
|
|
91
|
+
this.save();
|
|
92
|
+
logger.info('Cleared base URL');
|
|
93
|
+
}
|
|
94
|
+
async clearAll(_userIdentifier) {
|
|
95
|
+
this.state = {};
|
|
96
|
+
this.save();
|
|
97
|
+
logger.info('Cleared all state');
|
|
98
|
+
}
|
|
99
|
+
async getAll(_userIdentifier) {
|
|
100
|
+
return { ...this.state };
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Singleton instance for file-based state provider
|
|
105
|
+
*/
|
|
106
|
+
let fileStateProvider = null;
|
|
107
|
+
/**
|
|
108
|
+
* Get the file state provider singleton
|
|
109
|
+
* Used for stdio mode (backwards compatibility)
|
|
110
|
+
*/
|
|
111
|
+
export function getFileStateProvider() {
|
|
112
|
+
if (!fileStateProvider) {
|
|
113
|
+
fileStateProvider = new FileStateProvider();
|
|
114
|
+
}
|
|
115
|
+
return fileStateProvider;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* State provider factory - creates the appropriate provider based on transport mode
|
|
119
|
+
* @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
|
|
120
|
+
*/
|
|
121
|
+
export async function createStateProviderAsync(transportMode) {
|
|
122
|
+
const mode = transportMode || process.env.TRANSPORT_MODE || 'stdio';
|
|
123
|
+
if (mode === 'http') {
|
|
124
|
+
// Dynamically import PostgresStateProvider to avoid loading pg module in stdio mode
|
|
125
|
+
const { getPostgresStateProvider } = await import('../db/postgres-state-provider.js');
|
|
126
|
+
return getPostgresStateProvider();
|
|
127
|
+
}
|
|
128
|
+
// Default to file-based provider for stdio mode
|
|
129
|
+
return getFileStateProvider();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* State provider factory (synchronous version)
|
|
133
|
+
* For HTTP mode, this will throw - use createStateProviderAsync instead
|
|
134
|
+
* @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
|
|
135
|
+
*/
|
|
136
|
+
export function createStateProvider(transportMode) {
|
|
137
|
+
const mode = transportMode || process.env.TRANSPORT_MODE || 'stdio';
|
|
138
|
+
if (mode === 'http') {
|
|
139
|
+
throw new Error('HTTP mode requires async initialization. Use createStateProviderAsync() instead.');
|
|
140
|
+
}
|
|
141
|
+
// Default to file-based provider for stdio mode
|
|
142
|
+
return getFileStateProvider();
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Default state provider instance
|
|
146
|
+
* Uses factory to determine the appropriate backend
|
|
147
|
+
*/
|
|
148
|
+
let defaultStateProvider = null;
|
|
149
|
+
/**
|
|
150
|
+
* Get the default state provider
|
|
151
|
+
* Automatically selects the appropriate backend based on TRANSPORT_MODE
|
|
152
|
+
*/
|
|
153
|
+
export function getStateProvider() {
|
|
154
|
+
if (!defaultStateProvider) {
|
|
155
|
+
defaultStateProvider = createStateProvider();
|
|
156
|
+
}
|
|
157
|
+
return defaultStateProvider;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Set a custom state provider (useful for testing or dependency injection)
|
|
161
|
+
*/
|
|
162
|
+
export function setStateProvider(provider) {
|
|
163
|
+
defaultStateProvider = provider;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Reset the state provider (useful for testing)
|
|
167
|
+
*/
|
|
168
|
+
export function resetStateProvider() {
|
|
169
|
+
defaultStateProvider = null;
|
|
170
|
+
fileStateProvider = null;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=state.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.service.js","sourceRoot":"","sources":["../../src/services/state.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,11 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
|
|
|
30
30
|
elastic_url: z.ZodOptional<z.ZodString>;
|
|
31
31
|
elastic_api_key: z.ZodOptional<z.ZodString>;
|
|
32
32
|
prometheus_url: z.ZodOptional<z.ZodString>;
|
|
33
|
+
grafana_url: z.ZodOptional<z.ZodString>;
|
|
34
|
+
grafana_api_key: z.ZodOptional<z.ZodString>;
|
|
33
35
|
firehydrant_api_key: z.ZodOptional<z.ZodString>;
|
|
36
|
+
external_tool_url: z.ZodOptional<z.ZodString>;
|
|
37
|
+
external_tool_name: z.ZodOptional<z.ZodString>;
|
|
34
38
|
}, "strip", z.ZodTypeAny, {
|
|
35
39
|
name: string;
|
|
36
40
|
connection_type: string;
|
|
@@ -48,6 +52,9 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
|
|
|
48
52
|
splunk_url?: string | undefined;
|
|
49
53
|
splunk_api_key?: string | undefined;
|
|
50
54
|
prometheus_url?: string | undefined;
|
|
55
|
+
grafana_url?: string | undefined;
|
|
56
|
+
grafana_api_key?: string | undefined;
|
|
57
|
+
external_tool_url?: string | undefined;
|
|
51
58
|
servicenow_api_key?: string | undefined;
|
|
52
59
|
servicenow_url?: string | undefined;
|
|
53
60
|
github_installation_id?: string | undefined;
|
|
@@ -55,6 +62,7 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
|
|
|
55
62
|
elastic_url?: string | undefined;
|
|
56
63
|
elastic_api_key?: string | undefined;
|
|
57
64
|
firehydrant_api_key?: string | undefined;
|
|
65
|
+
external_tool_name?: string | undefined;
|
|
58
66
|
}, {
|
|
59
67
|
name: string;
|
|
60
68
|
connection_type: string;
|
|
@@ -72,6 +80,9 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
|
|
|
72
80
|
splunk_url?: string | undefined;
|
|
73
81
|
splunk_api_key?: string | undefined;
|
|
74
82
|
prometheus_url?: string | undefined;
|
|
83
|
+
grafana_url?: string | undefined;
|
|
84
|
+
grafana_api_key?: string | undefined;
|
|
85
|
+
external_tool_url?: string | undefined;
|
|
75
86
|
servicenow_api_key?: string | undefined;
|
|
76
87
|
servicenow_url?: string | undefined;
|
|
77
88
|
github_installation_id?: string | undefined;
|
|
@@ -79,6 +90,7 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
|
|
|
79
90
|
elastic_url?: string | undefined;
|
|
80
91
|
elastic_api_key?: string | undefined;
|
|
81
92
|
firehydrant_api_key?: string | undefined;
|
|
93
|
+
external_tool_name?: string | undefined;
|
|
82
94
|
}>;
|
|
83
95
|
export type CreateConnectionInput = z.infer<typeof CreateConnectionInputSchema>;
|
|
84
96
|
/**
|
|
@@ -41,8 +41,14 @@ const CreateConnectionInputSchema = z.object({
|
|
|
41
41
|
elastic_api_key: z.string().optional(),
|
|
42
42
|
// Prometheus fields
|
|
43
43
|
prometheus_url: z.string().optional(),
|
|
44
|
+
// Grafana fields
|
|
45
|
+
grafana_url: z.string().optional(),
|
|
46
|
+
grafana_api_key: z.string().optional(),
|
|
44
47
|
// FireHydrant fields
|
|
45
48
|
firehydrant_api_key: z.string().optional(),
|
|
49
|
+
// External Tool fields
|
|
50
|
+
external_tool_url: z.string().optional(),
|
|
51
|
+
external_tool_name: z.string().optional(),
|
|
46
52
|
});
|
|
47
53
|
/**
|
|
48
54
|
* Create a new connection
|