@camunda/ccma-api 0.0.3 → 0.0.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/dist/index.d.ts +11 -5
- package/dist/index.js +6 -0
- package/dist/index.js.map +2 -2
- package/dist/services/accounts/orgs.service.d.ts +10 -1
- package/dist/services/accounts/orgs.service.js +34 -0
- package/dist/services/accounts/orgs.service.js.map +2 -2
- package/dist/services/ask-backend/ask-backend.service.d.ts +85 -0
- package/dist/services/ask-backend/ask-backend.service.js +378 -0
- package/dist/services/ask-backend/ask-backend.service.js.map +7 -0
- package/dist/services/console/console.admin.service.d.ts +65 -0
- package/dist/services/console/console.admin.service.js +156 -2
- package/dist/services/console/console.admin.service.js.map +2 -2
- package/dist/services/console/console.cluster-parameters.service.d.ts +1 -0
- package/dist/services/console/console.cluster-parameters.service.js.map +2 -2
- package/dist/services/console/console.cluster.service.d.ts +9 -0
- package/dist/services/console/console.cluster.service.js +28 -0
- package/dist/services/console/console.cluster.service.js.map +2 -2
- package/dist/services/console/console.clusterplan.modification.service.d.ts +1 -0
- package/dist/services/console/console.clusterplan.modification.service.js +28 -0
- package/dist/services/console/console.clusterplan.modification.service.js.map +2 -2
- package/dist/services/console/generation.service.d.ts +11 -0
- package/dist/services/console/generation.service.js +36 -2
- package/dist/services/console/generation.service.js.map +2 -2
- package/dist/services/glean/glean.service.d.ts +20 -0
- package/dist/services/glean/glean.service.js +49 -0
- package/dist/services/glean/glean.service.js.map +7 -0
- package/dist/services/incident-io/incident-io.service.d.ts +20 -0
- package/dist/services/incident-io/incident-io.service.js +67 -0
- package/dist/services/incident-io/incident-io.service.js.map +7 -0
- package/dist/services/incident-io/incident-io.service.spec.d.ts +1 -0
- package/dist/services/slack/slack.service.d.ts +37 -0
- package/dist/services/slack/slack.service.js +98 -0
- package/dist/services/slack/slack.service.js.map +2 -2
- package/package.json +3 -6
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
2
|
+
import type { OpenIncident } from '../incident-io/incident-io.service.js';
|
|
3
|
+
export type { OpenIncident };
|
|
4
|
+
/**
|
|
5
|
+
* AskBackendService provides typed access to the ask-backend API endpoints.
|
|
6
|
+
*
|
|
7
|
+
* Unlike other services in this package that use `base: { id: 'system' }` for
|
|
8
|
+
* URL resolution, ask-backend's base URL is supplied directly by the caller
|
|
9
|
+
* (`baseUrl` on each request) because it is externally configurable at runtime
|
|
10
|
+
* (e.g. `ASK_BACKEND_URL` in the MCP client) rather than being fixed per stage
|
|
11
|
+
* in the environment configuration.
|
|
12
|
+
*/
|
|
13
|
+
export interface AskBackendBaseParams extends RequestBaseParams {
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AskBackendSearchOrgsParams extends AskBackendBaseParams {
|
|
17
|
+
search?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface AskBackendOrgParams extends AskBackendBaseParams {
|
|
20
|
+
orgId: string;
|
|
21
|
+
}
|
|
22
|
+
export interface AskBackendRunQueryParams extends AskBackendBaseParams {
|
|
23
|
+
sql: string;
|
|
24
|
+
}
|
|
25
|
+
export interface AskBackendGetOrgClustersParams extends AskBackendBaseParams {
|
|
26
|
+
orgId: string;
|
|
27
|
+
}
|
|
28
|
+
export interface OrgSummary {
|
|
29
|
+
uuid: string;
|
|
30
|
+
name: string;
|
|
31
|
+
salesPlanType?: string;
|
|
32
|
+
clusterCount?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface OrgDetail {
|
|
35
|
+
uuid: string;
|
|
36
|
+
name: string;
|
|
37
|
+
salesPlanType?: string;
|
|
38
|
+
salesPlanName?: string;
|
|
39
|
+
created: string;
|
|
40
|
+
internal: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface OrgOwnerInfo {
|
|
43
|
+
owner: string;
|
|
44
|
+
email: string;
|
|
45
|
+
first?: string;
|
|
46
|
+
last?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface OrgMemberInfo {
|
|
49
|
+
userId: string;
|
|
50
|
+
name: string;
|
|
51
|
+
email: string;
|
|
52
|
+
roles?: string[];
|
|
53
|
+
}
|
|
54
|
+
export interface OrgClusterRow {
|
|
55
|
+
orgId: string;
|
|
56
|
+
orgName: string;
|
|
57
|
+
clusterCount: number;
|
|
58
|
+
}
|
|
59
|
+
export declare class AskBackendService {
|
|
60
|
+
static getOpenIncidents(params: AskBackendBaseParams): Promise<OpenIncident[]>;
|
|
61
|
+
static searchOrgs(params: AskBackendSearchOrgsParams): Promise<OrgSummary[]>;
|
|
62
|
+
static getOrgDetails(params: AskBackendOrgParams): Promise<OrgDetail>;
|
|
63
|
+
static getOrgOwner(params: AskBackendOrgParams): Promise<OrgOwnerInfo>;
|
|
64
|
+
static getOrgMembers(params: AskBackendOrgParams): Promise<OrgMemberInfo[]>;
|
|
65
|
+
static getOrgClustersFromConsole(params: AskBackendOrgParams): Promise<unknown[]>;
|
|
66
|
+
static getOrgLlmUsage(params: AskBackendOrgParams): Promise<Record<string, unknown>>;
|
|
67
|
+
static runBigQuery(params: AskBackendRunQueryParams): Promise<unknown[]>;
|
|
68
|
+
static getOrgValueMetrics(params: AskBackendOrgParams & {
|
|
69
|
+
days?: number;
|
|
70
|
+
}): Promise<unknown[]>;
|
|
71
|
+
static listClusterPlanTypes(params: AskBackendBaseParams): Promise<unknown[]>;
|
|
72
|
+
static getClusterPlanType(params: AskBackendBaseParams & {
|
|
73
|
+
planTypeId: string;
|
|
74
|
+
}): Promise<unknown>;
|
|
75
|
+
static getGeneration(params: AskBackendBaseParams & {
|
|
76
|
+
generationId: string;
|
|
77
|
+
}): Promise<unknown>;
|
|
78
|
+
static getUpgradableGenerations(params: AskBackendBaseParams & {
|
|
79
|
+
generationId: string;
|
|
80
|
+
}): Promise<unknown[]>;
|
|
81
|
+
static listConnections(params: AskBackendBaseParams & {
|
|
82
|
+
strategy?: 'all' | 'waad' | 'samlp';
|
|
83
|
+
}): Promise<unknown[]>;
|
|
84
|
+
static getOrgClusters(params: AskBackendGetOrgClustersParams): Promise<OrgClusterRow[]>;
|
|
85
|
+
}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
function makeContext(name, url, normalizedUrl, type, source) {
|
|
4
|
+
return {
|
|
5
|
+
method: { name, url, normalizedUrl, type },
|
|
6
|
+
source,
|
|
7
|
+
target: { name: "ask-backend", type: "internal" }
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
class AskBackendService {
|
|
11
|
+
static async getOpenIncidents(params) {
|
|
12
|
+
const url = `${params.baseUrl}/api/incident/incidents`;
|
|
13
|
+
const ctx = makeContext(
|
|
14
|
+
"AskBackendService.getOpenIncidents",
|
|
15
|
+
url,
|
|
16
|
+
"/api/incident/incidents",
|
|
17
|
+
"get",
|
|
18
|
+
params.config.metrics?.source ?? "unset"
|
|
19
|
+
);
|
|
20
|
+
const response = await request({
|
|
21
|
+
...params,
|
|
22
|
+
url,
|
|
23
|
+
method: "get",
|
|
24
|
+
metricsDetails: ctx
|
|
25
|
+
});
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
throw new HttpError(
|
|
28
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
29
|
+
response.status,
|
|
30
|
+
response.statusText
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
return response.body ?? [];
|
|
34
|
+
}
|
|
35
|
+
static async searchOrgs(params) {
|
|
36
|
+
const url = `${params.baseUrl}/api/accounts/orgs?search=${encodeURIComponent(params.search ?? "")}`;
|
|
37
|
+
const ctx = makeContext(
|
|
38
|
+
"AskBackendService.searchOrgs",
|
|
39
|
+
`${params.baseUrl}/api/accounts/orgs`,
|
|
40
|
+
"/api/accounts/orgs",
|
|
41
|
+
"get",
|
|
42
|
+
params.config.metrics?.source ?? "unset"
|
|
43
|
+
);
|
|
44
|
+
const response = await request({
|
|
45
|
+
...params,
|
|
46
|
+
url,
|
|
47
|
+
method: "get",
|
|
48
|
+
metricsDetails: ctx
|
|
49
|
+
});
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
throw new HttpError(
|
|
52
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
53
|
+
response.status,
|
|
54
|
+
response.statusText
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
return response.body ?? [];
|
|
58
|
+
}
|
|
59
|
+
static async getOrgDetails(params) {
|
|
60
|
+
const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}`;
|
|
61
|
+
const ctx = makeContext(
|
|
62
|
+
"AskBackendService.getOrgDetails",
|
|
63
|
+
url,
|
|
64
|
+
"/api/accounts/orgs/:orgId",
|
|
65
|
+
"get",
|
|
66
|
+
params.config.metrics?.source ?? "unset"
|
|
67
|
+
);
|
|
68
|
+
const response = await request({
|
|
69
|
+
...params,
|
|
70
|
+
url,
|
|
71
|
+
method: "get",
|
|
72
|
+
metricsDetails: ctx
|
|
73
|
+
});
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
throw new HttpError(
|
|
76
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
77
|
+
response.status,
|
|
78
|
+
response.statusText
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
return response.body;
|
|
82
|
+
}
|
|
83
|
+
static async getOrgOwner(params) {
|
|
84
|
+
const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/owner`;
|
|
85
|
+
const ctx = makeContext(
|
|
86
|
+
"AskBackendService.getOrgOwner",
|
|
87
|
+
`${params.baseUrl}/api/accounts/orgs/:orgId/owner`,
|
|
88
|
+
"/api/accounts/orgs/:orgId/owner",
|
|
89
|
+
"get",
|
|
90
|
+
params.config.metrics?.source ?? "unset"
|
|
91
|
+
);
|
|
92
|
+
const response = await request({
|
|
93
|
+
...params,
|
|
94
|
+
url,
|
|
95
|
+
method: "get",
|
|
96
|
+
metricsDetails: ctx
|
|
97
|
+
});
|
|
98
|
+
if (!response.ok) {
|
|
99
|
+
throw new HttpError(
|
|
100
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
101
|
+
response.status,
|
|
102
|
+
response.statusText
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
return response.body;
|
|
106
|
+
}
|
|
107
|
+
static async getOrgMembers(params) {
|
|
108
|
+
const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/members`;
|
|
109
|
+
const ctx = makeContext(
|
|
110
|
+
"AskBackendService.getOrgMembers",
|
|
111
|
+
`${params.baseUrl}/api/accounts/orgs/:orgId/members`,
|
|
112
|
+
"/api/accounts/orgs/:orgId/members",
|
|
113
|
+
"get",
|
|
114
|
+
params.config.metrics?.source ?? "unset"
|
|
115
|
+
);
|
|
116
|
+
const response = await request({
|
|
117
|
+
...params,
|
|
118
|
+
url,
|
|
119
|
+
method: "get",
|
|
120
|
+
metricsDetails: ctx
|
|
121
|
+
});
|
|
122
|
+
if (!response.ok) {
|
|
123
|
+
throw new HttpError(
|
|
124
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
125
|
+
response.status,
|
|
126
|
+
response.statusText
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
return response.body ?? [];
|
|
130
|
+
}
|
|
131
|
+
static async getOrgClustersFromConsole(params) {
|
|
132
|
+
const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/clusters`;
|
|
133
|
+
const ctx = makeContext(
|
|
134
|
+
"AskBackendService.getOrgClustersFromConsole",
|
|
135
|
+
`${params.baseUrl}/api/accounts/orgs/:orgId/clusters`,
|
|
136
|
+
"/api/accounts/orgs/:orgId/clusters",
|
|
137
|
+
"get",
|
|
138
|
+
params.config.metrics?.source ?? "unset"
|
|
139
|
+
);
|
|
140
|
+
const response = await request({
|
|
141
|
+
...params,
|
|
142
|
+
url,
|
|
143
|
+
method: "get",
|
|
144
|
+
metricsDetails: ctx
|
|
145
|
+
});
|
|
146
|
+
if (!response.ok) {
|
|
147
|
+
throw new HttpError(
|
|
148
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
149
|
+
response.status,
|
|
150
|
+
response.statusText
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
return response.body ?? [];
|
|
154
|
+
}
|
|
155
|
+
static async getOrgLlmUsage(params) {
|
|
156
|
+
const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/llm`;
|
|
157
|
+
const ctx = makeContext(
|
|
158
|
+
"AskBackendService.getOrgLlmUsage",
|
|
159
|
+
`${params.baseUrl}/api/accounts/orgs/:orgId/llm`,
|
|
160
|
+
"/api/accounts/orgs/:orgId/llm",
|
|
161
|
+
"get",
|
|
162
|
+
params.config.metrics?.source ?? "unset"
|
|
163
|
+
);
|
|
164
|
+
const response = await request({
|
|
165
|
+
...params,
|
|
166
|
+
url,
|
|
167
|
+
method: "get",
|
|
168
|
+
metricsDetails: ctx
|
|
169
|
+
});
|
|
170
|
+
if (!response.ok) {
|
|
171
|
+
throw new HttpError(
|
|
172
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
173
|
+
response.status,
|
|
174
|
+
response.statusText
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
return response.body;
|
|
178
|
+
}
|
|
179
|
+
static async runBigQuery(params) {
|
|
180
|
+
const url = `${params.baseUrl}/api/bigquery/query`;
|
|
181
|
+
const ctx = makeContext(
|
|
182
|
+
"AskBackendService.runBigQuery",
|
|
183
|
+
url,
|
|
184
|
+
"/api/bigquery/query",
|
|
185
|
+
"post",
|
|
186
|
+
params.config.metrics?.source ?? "unset"
|
|
187
|
+
);
|
|
188
|
+
const response = await request({
|
|
189
|
+
...params,
|
|
190
|
+
url,
|
|
191
|
+
method: "post",
|
|
192
|
+
body: { sql: params.sql },
|
|
193
|
+
metricsDetails: ctx
|
|
194
|
+
});
|
|
195
|
+
if (!response.ok) {
|
|
196
|
+
throw new HttpError(
|
|
197
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
198
|
+
response.status,
|
|
199
|
+
response.statusText
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
return response.body ?? [];
|
|
203
|
+
}
|
|
204
|
+
static async getOrgValueMetrics(params) {
|
|
205
|
+
const qs = params.days !== void 0 ? `?days=${params.days}` : "";
|
|
206
|
+
const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/value-metrics${qs}`;
|
|
207
|
+
const ctx = makeContext(
|
|
208
|
+
"AskBackendService.getOrgValueMetrics",
|
|
209
|
+
`${params.baseUrl}/api/accounts/orgs/:orgId/value-metrics`,
|
|
210
|
+
"/api/accounts/orgs/:orgId/value-metrics",
|
|
211
|
+
"get",
|
|
212
|
+
params.config.metrics?.source ?? "unset"
|
|
213
|
+
);
|
|
214
|
+
const response = await request({
|
|
215
|
+
...params,
|
|
216
|
+
url,
|
|
217
|
+
method: "get",
|
|
218
|
+
metricsDetails: ctx
|
|
219
|
+
});
|
|
220
|
+
if (!response.ok) {
|
|
221
|
+
throw new HttpError(
|
|
222
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
223
|
+
response.status,
|
|
224
|
+
response.statusText
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
return response.body ?? [];
|
|
228
|
+
}
|
|
229
|
+
static async listClusterPlanTypes(params) {
|
|
230
|
+
const url = `${params.baseUrl}/api/admin/cluster-plan-types`;
|
|
231
|
+
const ctx = makeContext(
|
|
232
|
+
"AskBackendService.listClusterPlanTypes",
|
|
233
|
+
url,
|
|
234
|
+
"/api/admin/cluster-plan-types",
|
|
235
|
+
"get",
|
|
236
|
+
params.config.metrics?.source ?? "unset"
|
|
237
|
+
);
|
|
238
|
+
const response = await request({
|
|
239
|
+
...params,
|
|
240
|
+
url,
|
|
241
|
+
method: "get",
|
|
242
|
+
metricsDetails: ctx
|
|
243
|
+
});
|
|
244
|
+
if (!response.ok) {
|
|
245
|
+
throw new HttpError(
|
|
246
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
247
|
+
response.status,
|
|
248
|
+
response.statusText
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
return response.body ?? [];
|
|
252
|
+
}
|
|
253
|
+
static async getClusterPlanType(params) {
|
|
254
|
+
const url = `${params.baseUrl}/api/admin/cluster-plan-types/${encodeURIComponent(params.planTypeId)}`;
|
|
255
|
+
const ctx = makeContext(
|
|
256
|
+
"AskBackendService.getClusterPlanType",
|
|
257
|
+
`${params.baseUrl}/api/admin/cluster-plan-types/:planTypeId`,
|
|
258
|
+
"/api/admin/cluster-plan-types/:planTypeId",
|
|
259
|
+
"get",
|
|
260
|
+
params.config.metrics?.source ?? "unset"
|
|
261
|
+
);
|
|
262
|
+
const response = await request({
|
|
263
|
+
...params,
|
|
264
|
+
url,
|
|
265
|
+
method: "get",
|
|
266
|
+
metricsDetails: ctx
|
|
267
|
+
});
|
|
268
|
+
if (!response.ok) {
|
|
269
|
+
throw new HttpError(
|
|
270
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
271
|
+
response.status,
|
|
272
|
+
response.statusText
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
return response.body;
|
|
276
|
+
}
|
|
277
|
+
static async getGeneration(params) {
|
|
278
|
+
const url = `${params.baseUrl}/api/admin/generations/${encodeURIComponent(params.generationId)}`;
|
|
279
|
+
const ctx = makeContext(
|
|
280
|
+
"AskBackendService.getGeneration",
|
|
281
|
+
`${params.baseUrl}/api/admin/generations/:generationId`,
|
|
282
|
+
"/api/admin/generations/:generationId",
|
|
283
|
+
"get",
|
|
284
|
+
params.config.metrics?.source ?? "unset"
|
|
285
|
+
);
|
|
286
|
+
const response = await request({
|
|
287
|
+
...params,
|
|
288
|
+
url,
|
|
289
|
+
method: "get",
|
|
290
|
+
metricsDetails: ctx
|
|
291
|
+
});
|
|
292
|
+
if (!response.ok) {
|
|
293
|
+
throw new HttpError(
|
|
294
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
295
|
+
response.status,
|
|
296
|
+
response.statusText
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
return response.body;
|
|
300
|
+
}
|
|
301
|
+
static async getUpgradableGenerations(params) {
|
|
302
|
+
const url = `${params.baseUrl}/api/admin/generations/${encodeURIComponent(params.generationId)}/upgradable`;
|
|
303
|
+
const ctx = makeContext(
|
|
304
|
+
"AskBackendService.getUpgradableGenerations",
|
|
305
|
+
`${params.baseUrl}/api/admin/generations/:generationId/upgradable`,
|
|
306
|
+
"/api/admin/generations/:generationId/upgradable",
|
|
307
|
+
"get",
|
|
308
|
+
params.config.metrics?.source ?? "unset"
|
|
309
|
+
);
|
|
310
|
+
const response = await request({
|
|
311
|
+
...params,
|
|
312
|
+
url,
|
|
313
|
+
method: "get",
|
|
314
|
+
metricsDetails: ctx
|
|
315
|
+
});
|
|
316
|
+
if (!response.ok) {
|
|
317
|
+
throw new HttpError(
|
|
318
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
319
|
+
response.status,
|
|
320
|
+
response.statusText
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
return response.body ?? [];
|
|
324
|
+
}
|
|
325
|
+
static async listConnections(params) {
|
|
326
|
+
const strategy = params.strategy ?? "all";
|
|
327
|
+
const url = `${params.baseUrl}/api/admin/connections?strategy=${strategy}`;
|
|
328
|
+
const ctx = makeContext(
|
|
329
|
+
"AskBackendService.listConnections",
|
|
330
|
+
`${params.baseUrl}/api/admin/connections`,
|
|
331
|
+
"/api/admin/connections",
|
|
332
|
+
"get",
|
|
333
|
+
params.config.metrics?.source ?? "unset"
|
|
334
|
+
);
|
|
335
|
+
const response = await request({
|
|
336
|
+
...params,
|
|
337
|
+
url,
|
|
338
|
+
method: "get",
|
|
339
|
+
metricsDetails: ctx
|
|
340
|
+
});
|
|
341
|
+
if (!response.ok) {
|
|
342
|
+
throw new HttpError(
|
|
343
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
344
|
+
response.status,
|
|
345
|
+
response.statusText
|
|
346
|
+
);
|
|
347
|
+
}
|
|
348
|
+
return response.body ?? [];
|
|
349
|
+
}
|
|
350
|
+
static async getOrgClusters(params) {
|
|
351
|
+
const url = `${params.baseUrl}/api/bigquery/org-clusters?orgId=${encodeURIComponent(params.orgId)}`;
|
|
352
|
+
const ctx = makeContext(
|
|
353
|
+
"AskBackendService.getOrgClusters",
|
|
354
|
+
`${params.baseUrl}/api/bigquery/org-clusters`,
|
|
355
|
+
"/api/bigquery/org-clusters",
|
|
356
|
+
"get",
|
|
357
|
+
params.config.metrics?.source ?? "unset"
|
|
358
|
+
);
|
|
359
|
+
const response = await request({
|
|
360
|
+
...params,
|
|
361
|
+
url,
|
|
362
|
+
method: "get",
|
|
363
|
+
metricsDetails: ctx
|
|
364
|
+
});
|
|
365
|
+
if (!response.ok) {
|
|
366
|
+
throw new HttpError(
|
|
367
|
+
`${ctx.method.name}: ${response.status} ${response.statusText}`,
|
|
368
|
+
response.status,
|
|
369
|
+
response.statusText
|
|
370
|
+
);
|
|
371
|
+
}
|
|
372
|
+
return response.body ?? [];
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
export {
|
|
376
|
+
AskBackendService
|
|
377
|
+
};
|
|
378
|
+
//# sourceMappingURL=ask-backend.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/ask-backend/ask-backend.service.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\nimport type { OpenIncident } from '../incident-io/incident-io.service.js'\n\nexport type { OpenIncident }\n\n/**\n * AskBackendService provides typed access to the ask-backend API endpoints.\n *\n * Unlike other services in this package that use `base: { id: 'system' }` for\n * URL resolution, ask-backend's base URL is supplied directly by the caller\n * (`baseUrl` on each request) because it is externally configurable at runtime\n * (e.g. `ASK_BACKEND_URL` in the MCP client) rather than being fixed per stage\n * in the environment configuration.\n */\nexport interface AskBackendBaseParams extends RequestBaseParams {\n baseUrl: string\n}\n\nexport interface AskBackendSearchOrgsParams extends AskBackendBaseParams {\n search?: string\n}\n\nexport interface AskBackendOrgParams extends AskBackendBaseParams {\n orgId: string\n}\n\nexport interface AskBackendRunQueryParams extends AskBackendBaseParams {\n sql: string\n}\n\n// Kept for backwards compat \u2014 callers of getOrgClusters (BigQuery) still use this\nexport interface AskBackendGetOrgClustersParams extends AskBackendBaseParams {\n orgId: string\n}\n\nexport interface OrgSummary {\n uuid: string\n name: string\n salesPlanType?: string\n clusterCount?: number\n}\n\nexport interface OrgDetail {\n uuid: string\n name: string\n salesPlanType?: string\n salesPlanName?: string\n created: string\n internal: boolean\n}\n\nexport interface OrgOwnerInfo {\n owner: string\n email: string\n first?: string\n last?: string\n}\n\nexport interface OrgMemberInfo {\n userId: string\n name: string\n email: string\n roles?: string[]\n}\n\nexport interface OrgClusterRow {\n orgId: string\n orgName: string\n clusterCount: number\n}\n\nfunction makeContext(\n name: string,\n url: string,\n normalizedUrl: string,\n type: 'get' | 'post',\n source: string,\n): RequestBaseServiceContext {\n return {\n method: { name, url, normalizedUrl, type },\n source,\n target: { name: 'ask-backend', type: 'internal' },\n }\n}\n\nexport class AskBackendService {\n public static async getOpenIncidents(\n params: AskBackendBaseParams,\n ): Promise<OpenIncident[]> {\n const url = `${params.baseUrl}/api/incident/incidents`\n const ctx = makeContext(\n 'AskBackendService.getOpenIncidents',\n url,\n '/api/incident/incidents',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OpenIncident[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async searchOrgs(\n params: AskBackendSearchOrgsParams,\n ): Promise<OrgSummary[]> {\n const url = `${params.baseUrl}/api/accounts/orgs?search=${encodeURIComponent(params.search ?? '')}`\n const ctx = makeContext(\n 'AskBackendService.searchOrgs',\n `${params.baseUrl}/api/accounts/orgs`,\n '/api/accounts/orgs',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgSummary[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgDetails(\n params: AskBackendOrgParams,\n ): Promise<OrgDetail> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}`\n const ctx = makeContext(\n 'AskBackendService.getOrgDetails',\n url,\n '/api/accounts/orgs/:orgId',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgDetail>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getOrgOwner(\n params: AskBackendOrgParams,\n ): Promise<OrgOwnerInfo> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/owner`\n const ctx = makeContext(\n 'AskBackendService.getOrgOwner',\n `${params.baseUrl}/api/accounts/orgs/:orgId/owner`,\n '/api/accounts/orgs/:orgId/owner',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgOwnerInfo>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getOrgMembers(\n params: AskBackendOrgParams,\n ): Promise<OrgMemberInfo[]> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/members`\n const ctx = makeContext(\n 'AskBackendService.getOrgMembers',\n `${params.baseUrl}/api/accounts/orgs/:orgId/members`,\n '/api/accounts/orgs/:orgId/members',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgMemberInfo[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgClustersFromConsole(\n params: AskBackendOrgParams,\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/clusters`\n const ctx = makeContext(\n 'AskBackendService.getOrgClustersFromConsole',\n `${params.baseUrl}/api/accounts/orgs/:orgId/clusters`,\n '/api/accounts/orgs/:orgId/clusters',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgLlmUsage(\n params: AskBackendOrgParams,\n ): Promise<Record<string, unknown>> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/llm`\n const ctx = makeContext(\n 'AskBackendService.getOrgLlmUsage',\n `${params.baseUrl}/api/accounts/orgs/:orgId/llm`,\n '/api/accounts/orgs/:orgId/llm',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<Record<string, unknown>>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async runBigQuery(\n params: AskBackendRunQueryParams,\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/bigquery/query`\n const ctx = makeContext(\n 'AskBackendService.runBigQuery',\n url,\n '/api/bigquery/query',\n 'post',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'post',\n body: { sql: params.sql },\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgValueMetrics(\n params: AskBackendOrgParams & { days?: number },\n ): Promise<unknown[]> {\n const qs = params.days !== undefined ? `?days=${params.days}` : ''\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/value-metrics${qs}`\n const ctx = makeContext(\n 'AskBackendService.getOrgValueMetrics',\n `${params.baseUrl}/api/accounts/orgs/:orgId/value-metrics`,\n '/api/accounts/orgs/:orgId/value-metrics',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async listClusterPlanTypes(\n params: AskBackendBaseParams,\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/admin/cluster-plan-types`\n const ctx = makeContext(\n 'AskBackendService.listClusterPlanTypes',\n url,\n '/api/admin/cluster-plan-types',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getClusterPlanType(\n params: AskBackendBaseParams & { planTypeId: string },\n ): Promise<unknown> {\n const url = `${params.baseUrl}/api/admin/cluster-plan-types/${encodeURIComponent(params.planTypeId)}`\n const ctx = makeContext(\n 'AskBackendService.getClusterPlanType',\n `${params.baseUrl}/api/admin/cluster-plan-types/:planTypeId`,\n '/api/admin/cluster-plan-types/:planTypeId',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async getGeneration(\n params: AskBackendBaseParams & { generationId: string },\n ): Promise<unknown> {\n const url = `${params.baseUrl}/api/admin/generations/${encodeURIComponent(params.generationId)}`\n const ctx = makeContext(\n 'AskBackendService.getGeneration',\n `${params.baseUrl}/api/admin/generations/:generationId`,\n '/api/admin/generations/:generationId',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async getUpgradableGenerations(\n params: AskBackendBaseParams & { generationId: string },\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/admin/generations/${encodeURIComponent(params.generationId)}/upgradable`\n const ctx = makeContext(\n 'AskBackendService.getUpgradableGenerations',\n `${params.baseUrl}/api/admin/generations/:generationId/upgradable`,\n '/api/admin/generations/:generationId/upgradable',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async listConnections(\n params: AskBackendBaseParams & { strategy?: 'all' | 'waad' | 'samlp' },\n ): Promise<unknown[]> {\n const strategy = params.strategy ?? 'all'\n const url = `${params.baseUrl}/api/admin/connections?strategy=${strategy}`\n const ctx = makeContext(\n 'AskBackendService.listConnections',\n `${params.baseUrl}/api/admin/connections`,\n '/api/admin/connections',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgClusters(\n params: AskBackendGetOrgClustersParams,\n ): Promise<OrgClusterRow[]> {\n const url = `${params.baseUrl}/api/bigquery/org-clusters?orgId=${encodeURIComponent(params.orgId)}`\n const ctx = makeContext(\n 'AskBackendService.getOrgClusters',\n `${params.baseUrl}/api/bigquery/org-clusters`,\n '/api/bigquery/org-clusters',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgClusterRow[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ClusterBulkOperationAck, ClusterBulkOperationDto, ClusterBulkOperationPostContent, ClusterModificationConfigDto, ClusterModificationDto, ClusterPlanTypeDto, ClusterUsageMetricsData, CommonClusterDto, UniqueTaskUser, ValueMetrics } from '@camunda/ccma-shared-types';
|
|
2
2
|
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
+
import type { OpenIncident } from '../incident-io/incident-io.service.js';
|
|
3
4
|
export interface UpdateClusterToNewPlanTypeRequest extends RequestBaseParams {
|
|
4
5
|
params: {
|
|
5
6
|
orgId: string;
|
|
@@ -46,6 +47,45 @@ export interface CreateLiteLLMSecretsForOrgRequest extends RequestBaseParams {
|
|
|
46
47
|
};
|
|
47
48
|
};
|
|
48
49
|
}
|
|
50
|
+
export type SpecExplainerFieldSource = 'plan' | 'generation' | 'planType' | 'override' | 'modification' | 'infra' | 'computed' | 'featureFlag' | 'org' | 'cluster';
|
|
51
|
+
export interface SpecExplainerFieldAnnotation {
|
|
52
|
+
source: SpecExplainerFieldSource;
|
|
53
|
+
sourcePath?: string;
|
|
54
|
+
sourceValue?: unknown;
|
|
55
|
+
finalValue: unknown;
|
|
56
|
+
transforms?: string[];
|
|
57
|
+
overrides?: Array<{
|
|
58
|
+
by: SpecExplainerFieldSource;
|
|
59
|
+
originalValue: unknown;
|
|
60
|
+
}>;
|
|
61
|
+
fallbackChain?: Array<{
|
|
62
|
+
source: SpecExplainerFieldSource;
|
|
63
|
+
value: unknown;
|
|
64
|
+
used: boolean;
|
|
65
|
+
}>;
|
|
66
|
+
}
|
|
67
|
+
export interface SpecExplainerResponse {
|
|
68
|
+
spec: Record<string, unknown>;
|
|
69
|
+
annotations: Record<string, SpecExplainerFieldAnnotation>;
|
|
70
|
+
sources: {
|
|
71
|
+
plan: Record<string, unknown>;
|
|
72
|
+
generation: Record<string, unknown>;
|
|
73
|
+
planType: Record<string, unknown>;
|
|
74
|
+
overrideEnvVars?: Record<string, unknown>;
|
|
75
|
+
activeModification?: {
|
|
76
|
+
planModifications: Array<{
|
|
77
|
+
key: string;
|
|
78
|
+
value: unknown;
|
|
79
|
+
}>;
|
|
80
|
+
};
|
|
81
|
+
featureFlags: Record<string, boolean>;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export interface GetSpecExplainerRequest extends RequestBaseParams {
|
|
85
|
+
params: {
|
|
86
|
+
clusterId: string;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
49
89
|
export interface GetAllClustersRequest extends RequestBaseParams {
|
|
50
90
|
params: {
|
|
51
91
|
headers: {
|
|
@@ -290,6 +330,7 @@ export declare class ConsoleAdminService {
|
|
|
290
330
|
uuid: string;
|
|
291
331
|
configId: string;
|
|
292
332
|
expiresAt: Date | null;
|
|
333
|
+
description?: string;
|
|
293
334
|
}): Promise<ClusterModificationConfigDto | undefined>;
|
|
294
335
|
static getAllClusterBulkOperations(params: RequestBaseParams): Promise<ClusterBulkOperationDto[] | undefined>;
|
|
295
336
|
static getClusterBulkOperation(params: {
|
|
@@ -308,6 +349,16 @@ export declare class ConsoleAdminService {
|
|
|
308
349
|
static deleteClusterBulkOperation(params: {
|
|
309
350
|
uuid: string;
|
|
310
351
|
} & RequestBaseParams): Promise<void>;
|
|
352
|
+
static getDbCorpses(params: RequestBaseParams): Promise<{
|
|
353
|
+
corpses: Array<{
|
|
354
|
+
clusterId: string;
|
|
355
|
+
orgId: string;
|
|
356
|
+
name: string;
|
|
357
|
+
created: string;
|
|
358
|
+
k8sContextUuid?: string;
|
|
359
|
+
k8sContext?: string;
|
|
360
|
+
}>;
|
|
361
|
+
}>;
|
|
311
362
|
static getK8sCorpses(params: RequestBaseParams): Promise<{
|
|
312
363
|
corpses: Array<{
|
|
313
364
|
clusterId: string;
|
|
@@ -317,6 +368,13 @@ export declare class ConsoleAdminService {
|
|
|
317
368
|
k8sContext?: string;
|
|
318
369
|
}>;
|
|
319
370
|
}>;
|
|
371
|
+
static deleteDbCorpses(params: RequestBaseParams): Promise<{
|
|
372
|
+
deleted: number;
|
|
373
|
+
corpses: Array<{
|
|
374
|
+
clusterId: string;
|
|
375
|
+
orgId: string;
|
|
376
|
+
}>;
|
|
377
|
+
}>;
|
|
320
378
|
static deleteK8sCorpses(params: RequestBaseParams): Promise<{
|
|
321
379
|
deleted: number;
|
|
322
380
|
corpses: Array<{
|
|
@@ -325,4 +383,11 @@ export declare class ConsoleAdminService {
|
|
|
325
383
|
}>;
|
|
326
384
|
}>;
|
|
327
385
|
static createLiteLLMSecretsForOrg(params: CreateLiteLLMSecretsForOrgRequest): Promise<void>;
|
|
386
|
+
static getSpecExplainer(params: GetSpecExplainerRequest): Promise<SpecExplainerResponse>;
|
|
387
|
+
static getOpenIncidents(params: RequestBaseParams): Promise<{
|
|
388
|
+
incidents: OpenIncident[];
|
|
389
|
+
}>;
|
|
390
|
+
static getClusterIncidents(params: RequestBaseParams & {
|
|
391
|
+
clusterId: string;
|
|
392
|
+
}): Promise<OpenIncident[]>;
|
|
328
393
|
}
|