@superblocksteam/mcp-server 2.0.162-next.2 → 2.0.163-next.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 +17 -2
- package/dist/setup/setup-config.js +1 -1
- package/dist/setup/setup-config.js.map +1 -1
- package/dist/target/resolve-base-url-target.d.ts +1 -0
- package/dist/target/resolve-base-url-target.d.ts.map +1 -1
- package/dist/target/resolve-base-url-target.js +1 -0
- package/dist/target/resolve-base-url-target.js.map +1 -1
- package/dist/tools/app-databases.d.ts +379 -0
- package/dist/tools/app-databases.d.ts.map +1 -0
- package/dist/tools/app-databases.js +392 -0
- package/dist/tools/app-databases.js.map +1 -0
- package/dist/tools/delete-integration.d.ts.map +1 -1
- package/dist/tools/delete-integration.js +1 -1
- package/dist/tools/delete-integration.js.map +1 -1
- package/dist/tools/get-app-database-pool-provisioning-run.d.ts +3 -0
- package/dist/tools/get-app-database-pool-provisioning-run.d.ts.map +1 -0
- package/dist/tools/get-app-database-pool-provisioning-run.js +45 -0
- package/dist/tools/get-app-database-pool-provisioning-run.js.map +1 -0
- package/dist/tools/get-app-databases-overview.d.ts +3 -0
- package/dist/tools/get-app-databases-overview.d.ts.map +1 -0
- package/dist/tools/get-app-databases-overview.js +58 -0
- package/dist/tools/get-app-databases-overview.js.map +1 -0
- package/dist/tools/get-application-database-compatibility.d.ts +3 -0
- package/dist/tools/get-application-database-compatibility.d.ts.map +1 -0
- package/dist/tools/get-application-database-compatibility.js +50 -0
- package/dist/tools/get-application-database-compatibility.js.map +1 -0
- package/dist/tools/get-application-summary.d.ts.map +1 -1
- package/dist/tools/get-application-summary.js +14 -1
- package/dist/tools/get-application-summary.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +12 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-app-database-pools.d.ts +3 -0
- package/dist/tools/list-app-database-pools.d.ts.map +1 -0
- package/dist/tools/list-app-database-pools.js +44 -0
- package/dist/tools/list-app-database-pools.js.map +1 -0
- package/dist/tools/list-app-databases.d.ts +3 -0
- package/dist/tools/list-app-databases.d.ts.map +1 -0
- package/dist/tools/list-app-databases.js +101 -0
- package/dist/tools/list-app-databases.js.map +1 -0
- package/dist/tools/list-applications.d.ts.map +1 -1
- package/dist/tools/list-applications.js +45 -13
- package/dist/tools/list-applications.js.map +1 -1
- package/dist/tools/list-cve-exceptions.d.ts +3 -0
- package/dist/tools/list-cve-exceptions.d.ts.map +1 -0
- package/dist/tools/list-cve-exceptions.js +42 -0
- package/dist/tools/list-cve-exceptions.js.map +1 -0
- package/dist/tools/list-integrations.d.ts.map +1 -1
- package/dist/tools/list-integrations.js +6 -1
- package/dist/tools/list-integrations.js.map +1 -1
- package/dist/tools/schemas.d.ts +13 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +73 -15
- package/dist/tools/schemas.js.map +1 -1
- package/package.json +6 -6
- package/dist/tools/update-integration.d.ts +0 -3
- package/dist/tools/update-integration.d.ts.map +0 -1
- package/dist/tools/update-integration.js +0 -40
- package/dist/tools/update-integration.js.map +0 -1
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared wire schemas and projections for the App Databases admin tools.
|
|
3
|
+
*
|
|
4
|
+
* The schemas mirror the server's `AdminConfig` and `PhysicalPoolSummary`
|
|
5
|
+
* responses (`packages/server/src/service/databaseLifecycle/adminConfig.ts`
|
|
6
|
+
* and `@superblocksteam/shared` database-lifecycle types). Only the fields the
|
|
7
|
+
* tools read are declared; zod strips the rest, so an added server field is
|
|
8
|
+
* ignored rather than breaking a projection, while a missing or malformed one
|
|
9
|
+
* fails with a message that names the API and the offending path instead of a
|
|
10
|
+
* TypeError from deep inside a `.map()`.
|
|
11
|
+
*
|
|
12
|
+
* Projections rename to snake_case for MCP clients and drop provider
|
|
13
|
+
* diagnostics, which are verbose Terraform output that the admin page shows
|
|
14
|
+
* on demand and that would otherwise dominate a tool result.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
import { callServerApi, ServerApiError } from "./server-api.js";
|
|
18
|
+
export const APP_DATABASES_ADMIN_CONFIG_PATH = "/api/v1/database-lifecycle/admin/config";
|
|
19
|
+
export const APP_DATABASES_PHYSICAL_POOLS_PATH = "/api/v1/database-lifecycle/admin/physical-pools";
|
|
20
|
+
export const APP_DATABASES_POOL_PROVISIONING_PATH = "/api/v1/database-lifecycle/admin/physical-pool-provisioning";
|
|
21
|
+
export const APP_DATABASES_APPLICATIONS_PATH = "/api/v1/database-lifecycle/applications";
|
|
22
|
+
// These are synchronous reads of org-scoped tables. Anything slower than this
|
|
23
|
+
// is a wedged route, not a big estate, and the agent is better off with a
|
|
24
|
+
// clear timeout than a call that never returns.
|
|
25
|
+
export const APP_DATABASES_READ_TIMEOUT_MS = 30_000;
|
|
26
|
+
export const APP_DATABASES_DISABLED_MESSAGE = "App databases are not enabled for this organization.";
|
|
27
|
+
export function classifyAppDatabasesFailure(error) {
|
|
28
|
+
if (error instanceof ServerApiError) {
|
|
29
|
+
if (error.status === 400 &&
|
|
30
|
+
error.message.trim() === APP_DATABASES_DISABLED_MESSAGE) {
|
|
31
|
+
return { availability: "disabled", error: null };
|
|
32
|
+
}
|
|
33
|
+
if (error.status === 404) {
|
|
34
|
+
return { availability: "unsupported", error: null };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
availability: "error",
|
|
39
|
+
error: error instanceof Error ? error.message : String(error),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Mirrors `AppDatabaseCompatibility` from @superblocksteam/shared. The
|
|
43
|
+
// verdict alone is what a summary wants; the full report adds the per-tag
|
|
44
|
+
// breakdown.
|
|
45
|
+
export const appDatabaseCompatibilitySchema = z.object({
|
|
46
|
+
hasAppDatabase: z.boolean(),
|
|
47
|
+
needsAttention: z.boolean(),
|
|
48
|
+
overallState: z.string(),
|
|
49
|
+
});
|
|
50
|
+
export const appDatabaseCompatibilityReportSchema = appDatabaseCompatibilitySchema.extend({
|
|
51
|
+
tags: z.array(z.object({
|
|
52
|
+
availableModes: z.array(z.string()),
|
|
53
|
+
missingOperations: z.array(z.string()),
|
|
54
|
+
profileKey: z.string(),
|
|
55
|
+
requiredOperations: z.array(z.string()),
|
|
56
|
+
supportState: z.string(),
|
|
57
|
+
})),
|
|
58
|
+
});
|
|
59
|
+
export function projectAppDatabaseCompatibility(compatibility) {
|
|
60
|
+
return {
|
|
61
|
+
has_database: compatibility.hasAppDatabase,
|
|
62
|
+
overall_state: compatibility.overallState,
|
|
63
|
+
needs_attention: compatibility.needsAttention,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function projectAppDatabaseCompatibilityReport(report) {
|
|
67
|
+
return {
|
|
68
|
+
...projectAppDatabaseCompatibility(report),
|
|
69
|
+
data_tags: report.tags.map((tag) => ({
|
|
70
|
+
data_tag: tag.profileKey,
|
|
71
|
+
support_state: tag.supportState,
|
|
72
|
+
available_modes: tag.availableModes,
|
|
73
|
+
required_operations: tag.requiredOperations,
|
|
74
|
+
missing_operations: tag.missingOperations,
|
|
75
|
+
})),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Compatibility verdict for one application, or the reason none could be had.
|
|
80
|
+
* Never throws: the caller already has the application and should keep it.
|
|
81
|
+
*/
|
|
82
|
+
export async function fetchAppDatabaseStatus(options) {
|
|
83
|
+
try {
|
|
84
|
+
const compatibility = await callServerApi({
|
|
85
|
+
baseUrl: options.baseUrl,
|
|
86
|
+
token: options.token,
|
|
87
|
+
method: "GET",
|
|
88
|
+
path: `${APP_DATABASES_APPLICATIONS_PATH}/${options.applicationId}/compatibility`,
|
|
89
|
+
timeoutMs: APP_DATABASES_READ_TIMEOUT_MS,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
availability: "available",
|
|
93
|
+
error: null,
|
|
94
|
+
status: projectAppDatabaseCompatibility(parseServerResponse(appDatabaseCompatibilitySchema, compatibility, "App Databases compatibility API")),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
return { ...classifyAppDatabasesFailure(error), status: null };
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// The server caps one summary request at this many application IDs.
|
|
102
|
+
const APP_DATABASE_SUMMARY_MAX_APPLICATIONS = 200;
|
|
103
|
+
// How many summary requests may be in flight at once. Each one holds a server
|
|
104
|
+
// transaction while it authorizes its IDs, so a large organization must not
|
|
105
|
+
// turn one tool call into dozens of simultaneous transactions.
|
|
106
|
+
export const APP_DATABASE_PRESENCE_MAX_CONCURRENT_BATCHES = 4;
|
|
107
|
+
const applicationDatabaseSummarySchema = z.object({
|
|
108
|
+
applications: z.record(z.string(), z.object({ hasDatabase: z.boolean() })),
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* Which of the given applications currently hold an App Database, or the
|
|
112
|
+
* reason that could not be answered. Never throws: the caller already has the
|
|
113
|
+
* application list and should keep it.
|
|
114
|
+
*
|
|
115
|
+
* The summary route is a presence check over bindings, so asking for the
|
|
116
|
+
* whole set of IDs in a batch costs the same as one; it is how the homepage
|
|
117
|
+
* decorates its own list. Batches beyond the server's cap overlap, but only a
|
|
118
|
+
* few at a time: each one is a server transaction, and the has_app_database
|
|
119
|
+
* filter sends every application in the organization.
|
|
120
|
+
*/
|
|
121
|
+
export async function fetchAppDatabasePresence(options) {
|
|
122
|
+
const ids = [...new Set(options.applicationIds)];
|
|
123
|
+
if (ids.length === 0)
|
|
124
|
+
return { availability: "not_checked", error: null };
|
|
125
|
+
const batches = [];
|
|
126
|
+
for (let start = 0; start < ids.length; start += APP_DATABASE_SUMMARY_MAX_APPLICATIONS) {
|
|
127
|
+
batches.push(ids.slice(start, start + APP_DATABASE_SUMMARY_MAX_APPLICATIONS));
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
const byApplicationId = new Map();
|
|
131
|
+
for (let start = 0; start < batches.length; start += APP_DATABASE_PRESENCE_MAX_CONCURRENT_BATCHES) {
|
|
132
|
+
const window = batches.slice(start, start + APP_DATABASE_PRESENCE_MAX_CONCURRENT_BATCHES);
|
|
133
|
+
const responses = await Promise.all(window.map((batch) => callServerApi({
|
|
134
|
+
baseUrl: options.baseUrl,
|
|
135
|
+
token: options.token,
|
|
136
|
+
method: "GET",
|
|
137
|
+
path: `${APP_DATABASES_APPLICATIONS_PATH}/summary`,
|
|
138
|
+
query: { applicationId: batch },
|
|
139
|
+
timeoutMs: APP_DATABASES_READ_TIMEOUT_MS,
|
|
140
|
+
})));
|
|
141
|
+
responses.forEach((raw, index) => {
|
|
142
|
+
const summary = parseServerResponse(applicationDatabaseSummarySchema, raw, "App Databases summary API");
|
|
143
|
+
for (const id of window[index] ?? []) {
|
|
144
|
+
byApplicationId.set(id, summary.applications[id]?.hasDatabase ?? false);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return { availability: "available", byApplicationId, error: null };
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
return classifyAppDatabasesFailure(error);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
export function parseServerResponse(schema, data, api) {
|
|
155
|
+
const result = schema.safeParse(data);
|
|
156
|
+
if (!result.success) {
|
|
157
|
+
const detail = result.error.issues
|
|
158
|
+
.slice(0, 3)
|
|
159
|
+
.map((issue) => issue.path.length > 0
|
|
160
|
+
? `${issue.path.map(String).join(".")}: ${issue.message}`
|
|
161
|
+
: issue.message)
|
|
162
|
+
.join("; ");
|
|
163
|
+
throw new Error(`Unexpected response from ${api}: ${detail}`);
|
|
164
|
+
}
|
|
165
|
+
return result.data;
|
|
166
|
+
}
|
|
167
|
+
const nullableString = z.string().nullable();
|
|
168
|
+
const adminConfigBindingSchema = z.object({
|
|
169
|
+
id: z.string(),
|
|
170
|
+
applicationId: z.string(),
|
|
171
|
+
applicationCreator: z.object({ email: z.string() }).nullable(),
|
|
172
|
+
applicationName: nullableString,
|
|
173
|
+
connection: z.object({
|
|
174
|
+
authMode: nullableString,
|
|
175
|
+
database: nullableString,
|
|
176
|
+
host: nullableString,
|
|
177
|
+
port: z.number().nullable(),
|
|
178
|
+
region: nullableString,
|
|
179
|
+
}),
|
|
180
|
+
createdAt: z.string(),
|
|
181
|
+
engine: nullableString,
|
|
182
|
+
integrationId: nullableString,
|
|
183
|
+
profile: nullableString,
|
|
184
|
+
logicalName: z.string(),
|
|
185
|
+
instanceId: nullableString,
|
|
186
|
+
lifecycleState: z.string(),
|
|
187
|
+
migrationState: z.string(),
|
|
188
|
+
migrationsRequired: z.boolean(),
|
|
189
|
+
lastError: z
|
|
190
|
+
.object({
|
|
191
|
+
code: z.string(),
|
|
192
|
+
message: z.string(),
|
|
193
|
+
operation: nullableString,
|
|
194
|
+
})
|
|
195
|
+
.nullable(),
|
|
196
|
+
lastRequestOperation: nullableString,
|
|
197
|
+
lastActivityAt: z.string(),
|
|
198
|
+
lastMigrationAt: nullableString,
|
|
199
|
+
provisionedAt: nullableString,
|
|
200
|
+
retiredAt: nullableString,
|
|
201
|
+
retireInFlight: z.boolean(),
|
|
202
|
+
orphaned: z.boolean(),
|
|
203
|
+
});
|
|
204
|
+
const adminConfigProfileSchema = z.object({
|
|
205
|
+
profile: z.string(),
|
|
206
|
+
isUnserved: z.boolean(),
|
|
207
|
+
isContested: z.boolean(),
|
|
208
|
+
requestedEngines: z.array(z.string()),
|
|
209
|
+
summary: z.object({
|
|
210
|
+
apps: z.number(),
|
|
211
|
+
failed: z.number(),
|
|
212
|
+
instances: z.number(),
|
|
213
|
+
}),
|
|
214
|
+
});
|
|
215
|
+
const adminConfigInstanceSchema = z.object({
|
|
216
|
+
agentName: nullableString,
|
|
217
|
+
id: z.string(),
|
|
218
|
+
profiles: z.array(z.string()),
|
|
219
|
+
host: z.string(),
|
|
220
|
+
port: z.number().nullable(),
|
|
221
|
+
engine: nullableString,
|
|
222
|
+
capacity: z.object({ used: z.number(), max: z.number().nullable() }),
|
|
223
|
+
lifecycleSummary: z.object({
|
|
224
|
+
ready: z.number(),
|
|
225
|
+
failed: z.number(),
|
|
226
|
+
inFlight: z.number(),
|
|
227
|
+
}),
|
|
228
|
+
region: nullableString,
|
|
229
|
+
status: nullableString,
|
|
230
|
+
awsConsoleUrl: z.string().optional(),
|
|
231
|
+
createdAt: z.string().optional(),
|
|
232
|
+
updatedAt: z.string().optional(),
|
|
233
|
+
});
|
|
234
|
+
const provisionablePoolSchema = z.object({
|
|
235
|
+
agentName: z.string(),
|
|
236
|
+
dataTags: z.array(z.string()),
|
|
237
|
+
engine: z.string(),
|
|
238
|
+
});
|
|
239
|
+
const adminConfigPhysicalPoolSchema = provisionablePoolSchema.extend({
|
|
240
|
+
instanceIds: z.array(z.string()),
|
|
241
|
+
provisioningId: z.string().optional(),
|
|
242
|
+
status: z.string(),
|
|
243
|
+
});
|
|
244
|
+
export const adminConfigSchema = z.object({
|
|
245
|
+
provisionableDataTags: z.array(z.string()),
|
|
246
|
+
provisionablePools: z.array(provisionablePoolSchema),
|
|
247
|
+
physicalPools: z.array(adminConfigPhysicalPoolSchema),
|
|
248
|
+
profiles: z.array(adminConfigProfileSchema),
|
|
249
|
+
instances: z.array(adminConfigInstanceSchema),
|
|
250
|
+
bindings: z.array(adminConfigBindingSchema),
|
|
251
|
+
limit: z.number(),
|
|
252
|
+
offset: z.number(),
|
|
253
|
+
total: z.number(),
|
|
254
|
+
});
|
|
255
|
+
export function projectAppDatabase(binding) {
|
|
256
|
+
return {
|
|
257
|
+
id: binding.id,
|
|
258
|
+
application: {
|
|
259
|
+
id: binding.applicationId,
|
|
260
|
+
name: binding.applicationName,
|
|
261
|
+
creator_email: binding.applicationCreator?.email ?? null,
|
|
262
|
+
orphaned: binding.orphaned,
|
|
263
|
+
},
|
|
264
|
+
data_tag: binding.profile,
|
|
265
|
+
engine: binding.engine,
|
|
266
|
+
logical_name: binding.logicalName,
|
|
267
|
+
lifecycle_state: binding.lifecycleState,
|
|
268
|
+
migration_state: binding.migrationState,
|
|
269
|
+
migrations_required: binding.migrationsRequired,
|
|
270
|
+
instance_id: binding.instanceId,
|
|
271
|
+
integration_id: binding.integrationId,
|
|
272
|
+
connection: {
|
|
273
|
+
auth_mode: binding.connection.authMode,
|
|
274
|
+
database: binding.connection.database,
|
|
275
|
+
host: binding.connection.host,
|
|
276
|
+
port: binding.connection.port,
|
|
277
|
+
region: binding.connection.region,
|
|
278
|
+
},
|
|
279
|
+
last_error: binding.lastError
|
|
280
|
+
? {
|
|
281
|
+
code: binding.lastError.code,
|
|
282
|
+
message: binding.lastError.message,
|
|
283
|
+
operation: binding.lastError.operation,
|
|
284
|
+
}
|
|
285
|
+
: null,
|
|
286
|
+
last_request_operation: binding.lastRequestOperation,
|
|
287
|
+
created_at: binding.createdAt,
|
|
288
|
+
provisioned_at: binding.provisionedAt,
|
|
289
|
+
last_migration_at: binding.lastMigrationAt,
|
|
290
|
+
last_activity_at: binding.lastActivityAt,
|
|
291
|
+
retired_at: binding.retiredAt,
|
|
292
|
+
retire_in_flight: binding.retireInFlight,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
export function projectDataTag(profile) {
|
|
296
|
+
return {
|
|
297
|
+
data_tag: profile.profile,
|
|
298
|
+
applications: profile.summary.apps,
|
|
299
|
+
failed_databases: profile.summary.failed,
|
|
300
|
+
instances: profile.summary.instances,
|
|
301
|
+
requested_engines: profile.requestedEngines,
|
|
302
|
+
is_unserved: profile.isUnserved,
|
|
303
|
+
is_contested: profile.isContested,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
export function projectInstance(instance) {
|
|
307
|
+
return {
|
|
308
|
+
id: instance.id,
|
|
309
|
+
agent_name: instance.agentName,
|
|
310
|
+
engine: instance.engine,
|
|
311
|
+
host: instance.host,
|
|
312
|
+
port: instance.port,
|
|
313
|
+
region: instance.region,
|
|
314
|
+
status: instance.status,
|
|
315
|
+
data_tags: instance.profiles,
|
|
316
|
+
capacity: { used: instance.capacity.used, max: instance.capacity.max },
|
|
317
|
+
databases: {
|
|
318
|
+
ready: instance.lifecycleSummary.ready,
|
|
319
|
+
failed: instance.lifecycleSummary.failed,
|
|
320
|
+
in_flight: instance.lifecycleSummary.inFlight,
|
|
321
|
+
},
|
|
322
|
+
aws_console_url: instance.awsConsoleUrl ?? null,
|
|
323
|
+
created_at: instance.createdAt ?? null,
|
|
324
|
+
updated_at: instance.updatedAt ?? null,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
export function projectProvisionablePool(pool) {
|
|
328
|
+
return {
|
|
329
|
+
agent_name: pool.agentName,
|
|
330
|
+
engine: pool.engine,
|
|
331
|
+
data_tags: pool.dataTags,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
export function projectPhysicalPool(pool) {
|
|
335
|
+
return {
|
|
336
|
+
...projectProvisionablePool(pool),
|
|
337
|
+
instance_ids: pool.instanceIds,
|
|
338
|
+
provisioning_id: pool.provisioningId ?? null,
|
|
339
|
+
status: pool.status,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
// Mirrors `PhysicalPoolProvisioningState` from @superblocksteam/shared.
|
|
343
|
+
export const physicalPoolProvisioningStateSchema = z.object({
|
|
344
|
+
completedAt: z.string().optional(),
|
|
345
|
+
error: z.object({ code: z.string(), message: z.string() }).optional(),
|
|
346
|
+
physicalDatabaseInstanceId: z.string().optional(),
|
|
347
|
+
provisioningId: z.string().optional(),
|
|
348
|
+
startedAt: z.string().optional(),
|
|
349
|
+
startedBy: z.object({ displayName: z.string() }).optional(),
|
|
350
|
+
status: z.string(),
|
|
351
|
+
});
|
|
352
|
+
export const physicalPoolSummariesSchema = z.array(z.object({
|
|
353
|
+
agentName: z.string(),
|
|
354
|
+
engine: z.string(),
|
|
355
|
+
instances: z.array(z.object({
|
|
356
|
+
capacityMax: z.number(),
|
|
357
|
+
capacityUsed: z.number(),
|
|
358
|
+
endpoint: z.string(),
|
|
359
|
+
id: z.string(),
|
|
360
|
+
region: z.string(),
|
|
361
|
+
status: z.string(),
|
|
362
|
+
})),
|
|
363
|
+
provisioning: physicalPoolProvisioningStateSchema,
|
|
364
|
+
}));
|
|
365
|
+
export function projectPoolProvisioningRun(run) {
|
|
366
|
+
return {
|
|
367
|
+
status: run.status,
|
|
368
|
+
provisioning_id: run.provisioningId ?? null,
|
|
369
|
+
physical_database_instance_id: run.physicalDatabaseInstanceId ?? null,
|
|
370
|
+
started_at: run.startedAt ?? null,
|
|
371
|
+
started_by: run.startedBy?.displayName ?? null,
|
|
372
|
+
completed_at: run.completedAt ?? null,
|
|
373
|
+
error: run.error
|
|
374
|
+
? { code: run.error.code, message: run.error.message }
|
|
375
|
+
: null,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
export function projectPhysicalPoolSummary(pool) {
|
|
379
|
+
return {
|
|
380
|
+
agent_name: pool.agentName,
|
|
381
|
+
engine: pool.engine,
|
|
382
|
+
instances: pool.instances.map((instance) => ({
|
|
383
|
+
id: instance.id,
|
|
384
|
+
endpoint: instance.endpoint,
|
|
385
|
+
region: instance.region,
|
|
386
|
+
status: instance.status,
|
|
387
|
+
capacity: { used: instance.capacityUsed, max: instance.capacityMax },
|
|
388
|
+
})),
|
|
389
|
+
provisioning: projectPoolProvisioningRun(pool.provisioning),
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=app-databases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-databases.js","sourceRoot":"","sources":["../../src/tools/app-databases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-integration.d.ts","sourceRoot":"","sources":["../../src/tools/delete-integration.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"delete-integration.d.ts","sourceRoot":"","sources":["../../src/tools/delete-integration.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,eAAO,MAAM,iBAAiB,EAAE,cA2B/B,CAAC"}
|
|
@@ -13,7 +13,7 @@ const deleteIntegrationInputSchema = z
|
|
|
13
13
|
export const deleteIntegration = {
|
|
14
14
|
name: "delete_integration",
|
|
15
15
|
title: "Delete Integration",
|
|
16
|
-
description: "Delete an integration by ID.",
|
|
16
|
+
description: "Delete an integration by ID. Integrations that back an App Database (managed_by = database_lifecycle in list_integrations) cannot be deleted here; retire the App Database instead.",
|
|
17
17
|
inputSchema: schemas.deleteIntegrationToolInputSchema,
|
|
18
18
|
annotations: {
|
|
19
19
|
readOnlyHint: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-integration.js","sourceRoot":"","sources":["../../src/tools/delete-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,4BAA4B,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,
|
|
1
|
+
{"version":3,"file":"delete-integration.js","sourceRoot":"","sources":["../../src/tools/delete-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,4BAA4B,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,qLAAqL;IACvL,WAAW,EAAE,OAAO,CAAC,gCAAgC;IACrD,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtE,OAAO;YACL,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-app-database-pool-provisioning-run.d.ts","sourceRoot":"","sources":["../../src/tools/get-app-database-pool-provisioning-run.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAYpD,eAAO,MAAM,iCAAiC,EAAE,cAuC/C,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
4
|
+
import { APP_DATABASES_POOL_PROVISIONING_PATH, APP_DATABASES_READ_TIMEOUT_MS, parseServerResponse, physicalPoolProvisioningStateSchema, projectPoolProvisioningRun, } from "./app-databases.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { callServerApi } from "./server-api.js";
|
|
7
|
+
import { parseToolInput } from "./validation.js";
|
|
8
|
+
const getAppDatabasePoolProvisioningRunInputSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
base_url: z.url(),
|
|
11
|
+
provisioning_id: z.uuid(),
|
|
12
|
+
})
|
|
13
|
+
.strict();
|
|
14
|
+
export const getAppDatabasePoolProvisioningRun = {
|
|
15
|
+
name: "get_app_database_pool_provisioning_run",
|
|
16
|
+
title: "Get App Database Pool Provisioning Run",
|
|
17
|
+
description: "Get one App Database pool provisioning run by the provisioning_id reported by list_app_database_pools or get_app_databases_overview: its status (provisioning, active, or failed), who started it and when, the physical instance it registered once active, and the error if it failed. Requires the app_databases:manage permission (Admin or Owner by default) and App Databases to be enabled for the organization.",
|
|
18
|
+
inputSchema: schemas.getAppDatabasePoolProvisioningRunToolInputSchema,
|
|
19
|
+
annotations: {
|
|
20
|
+
readOnlyHint: true,
|
|
21
|
+
destructiveHint: false,
|
|
22
|
+
idempotentHint: true,
|
|
23
|
+
openWorldHint: true,
|
|
24
|
+
},
|
|
25
|
+
audience: "customer",
|
|
26
|
+
async handler(args) {
|
|
27
|
+
const input = parseToolInput(getAppDatabasePoolProvisioningRunInputSchema, args);
|
|
28
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
29
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
30
|
+
const run = parseServerResponse(physicalPoolProvisioningStateSchema, await callServerApi({
|
|
31
|
+
baseUrl,
|
|
32
|
+
token: auth.token,
|
|
33
|
+
method: "GET",
|
|
34
|
+
path: `${APP_DATABASES_POOL_PROVISIONING_PATH}/${input.provisioning_id}`,
|
|
35
|
+
timeoutMs: APP_DATABASES_READ_TIMEOUT_MS,
|
|
36
|
+
}), "App Databases pool provisioning API");
|
|
37
|
+
return {
|
|
38
|
+
run: projectPoolProvisioningRun(run),
|
|
39
|
+
auth_source: auth.source,
|
|
40
|
+
base_url: baseUrl,
|
|
41
|
+
environment: detectEnvironment(baseUrl),
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=get-app-database-pool-provisioning-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-app-database-pool-provisioning-run.js","sourceRoot":"","sources":["../../src/tools/get-app-database-pool-provisioning-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,mBAAmB,EACnB,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,4CAA4C,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;IACjB,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE;CAC1B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAmB;IAC/D,IAAI,EAAE,wCAAwC;IAC9C,KAAK,EAAE,wCAAwC;IAC/C,WAAW,EACT,yZAAyZ;IAC3Z,WAAW,EAAE,OAAO,CAAC,gDAAgD;IACrE,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAC1B,4CAA4C,EAC5C,IAAI,CACL,CAAC;QACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,mBAAmB,CAC7B,mCAAmC,EACnC,MAAM,aAAa,CAAC;YAClB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,oCAAoC,IAAI,KAAK,CAAC,eAAe,EAAE;YACxE,SAAS,EAAE,6BAA6B;SACzC,CAAC,EACF,qCAAqC,CACtC,CAAC;QAEF,OAAO;YACL,GAAG,EAAE,0BAA0B,CAAC,GAAG,CAAC;YACpC,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-app-databases-overview.d.ts","sourceRoot":"","sources":["../../src/tools/get-app-databases-overview.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWpD,eAAO,MAAM,uBAAuB,EAAE,cAoDrC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { detectEnvironment, normalizeBaseUrl } from "../urls.js";
|
|
4
|
+
import { APP_DATABASES_ADMIN_CONFIG_PATH, APP_DATABASES_READ_TIMEOUT_MS, adminConfigSchema, parseServerResponse, projectDataTag, projectInstance, projectPhysicalPool, projectProvisionablePool, } from "./app-databases.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { callServerApi } from "./server-api.js";
|
|
7
|
+
import { parseToolInput } from "./validation.js";
|
|
8
|
+
const getAppDatabasesOverviewInputSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
base_url: z.url(),
|
|
11
|
+
})
|
|
12
|
+
.strict();
|
|
13
|
+
export const getAppDatabasesOverview = {
|
|
14
|
+
name: "get_app_databases_overview",
|
|
15
|
+
title: "Get App Databases Overview",
|
|
16
|
+
description: "Org-wide App Databases summary: the total number of database records (database_record_count, which includes retired databases; use list_app_databases to enumerate live ones), per data tag how many applications and instances it has and whether a lifecycle agent serves it, every physical database instance with its capacity and per-state database counts, the physical pools each agent advertises, and which pools and data tags can be provisioned right now. Use list_app_databases for the individual databases. Requires the app_databases:manage permission (Admin or Owner by default) and App Databases to be enabled for the organization.",
|
|
17
|
+
inputSchema: schemas.getAppDatabasesOverviewToolInputSchema,
|
|
18
|
+
annotations: {
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
destructiveHint: false,
|
|
21
|
+
idempotentHint: true,
|
|
22
|
+
openWorldHint: true,
|
|
23
|
+
},
|
|
24
|
+
audience: "customer",
|
|
25
|
+
async handler(args) {
|
|
26
|
+
const input = parseToolInput(getAppDatabasesOverviewInputSchema, args);
|
|
27
|
+
const baseUrl = normalizeBaseUrl(input.base_url);
|
|
28
|
+
const auth = await resolveAuthForOrigin(baseUrl);
|
|
29
|
+
// The rollups cover the whole organization whatever the page size, so
|
|
30
|
+
// fetch the smallest page and leave the rows to list_app_databases.
|
|
31
|
+
const config = parseServerResponse(adminConfigSchema, await callServerApi({
|
|
32
|
+
baseUrl,
|
|
33
|
+
token: auth.token,
|
|
34
|
+
method: "GET",
|
|
35
|
+
path: APP_DATABASES_ADMIN_CONFIG_PATH,
|
|
36
|
+
query: { limit: 1, offset: 0 },
|
|
37
|
+
timeoutMs: APP_DATABASES_READ_TIMEOUT_MS,
|
|
38
|
+
}), "App Databases admin API");
|
|
39
|
+
return {
|
|
40
|
+
// The server's total is every binding record it holds. Retired
|
|
41
|
+
// databases keep their record (it is what carries `retired_at`), so this
|
|
42
|
+
// counts them too and is not the number of live databases. The server
|
|
43
|
+
// only resolves retirement per returned page, so a live count would need
|
|
44
|
+
// a server-side change; until then list_app_databases is the way to
|
|
45
|
+
// enumerate live rows.
|
|
46
|
+
database_record_count: config.total,
|
|
47
|
+
data_tags: config.profiles.map(projectDataTag),
|
|
48
|
+
instances: config.instances.map(projectInstance),
|
|
49
|
+
physical_pools: config.physicalPools.map(projectPhysicalPool),
|
|
50
|
+
provisionable_pools: config.provisionablePools.map(projectProvisionablePool),
|
|
51
|
+
provisionable_data_tags: config.provisionableDataTags,
|
|
52
|
+
auth_source: auth.source,
|
|
53
|
+
base_url: baseUrl,
|
|
54
|
+
environment: detectEnvironment(baseUrl),
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=get-app-databases-overview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-app-databases-overview.js","sourceRoot":"","sources":["../../src/tools/get-app-databases-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,kCAAkC,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;CAClB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,4BAA4B;IACnC,WAAW,EACT,6nBAA6nB;IAC/nB,WAAW,EAAE,OAAO,CAAC,sCAAsC;IAC3D,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,MAAM,GAAG,mBAAmB,CAChC,iBAAiB,EACjB,MAAM,aAAa,CAAC;YAClB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YAC9B,SAAS,EAAE,6BAA6B;SACzC,CAAC,EACF,yBAAyB,CAC1B,CAAC;QAEF,OAAO;YACL,+DAA+D;YAC/D,yEAAyE;YACzE,sEAAsE;YACtE,yEAAyE;YACzE,oEAAoE;YACpE,uBAAuB;YACvB,qBAAqB,EAAE,MAAM,CAAC,KAAK;YACnC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;YAC9C,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;YAChD,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC7D,mBAAmB,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAChD,wBAAwB,CACzB;YACD,uBAAuB,EAAE,MAAM,CAAC,qBAAqB;YACrD,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-application-database-compatibility.d.ts","sourceRoot":"","sources":["../../src/tools/get-application-database-compatibility.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAUpD,eAAO,MAAM,mCAAmC,EAAE,cA+CjD,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { resolveAuthForOrigin } from "../auth/resolve-auth.js";
|
|
3
|
+
import { resolveAppTarget, } from "../target/resolve-app-target.js";
|
|
4
|
+
import { APP_DATABASES_APPLICATIONS_PATH, APP_DATABASES_READ_TIMEOUT_MS, appDatabaseCompatibilityReportSchema, parseServerResponse, projectAppDatabaseCompatibilityReport, } from "./app-databases.js";
|
|
5
|
+
import * as schemas from "./schemas.js";
|
|
6
|
+
import { callServerApi } from "./server-api.js";
|
|
7
|
+
import { parseToolInput } from "./validation.js";
|
|
8
|
+
const getApplicationDatabaseCompatibilityInputSchema = z.union([
|
|
9
|
+
z.object({ app_url: z.url() }).strict(),
|
|
10
|
+
z.object({ application_id: z.uuid(), base_url: z.url() }).strict(),
|
|
11
|
+
]);
|
|
12
|
+
export const getApplicationDatabaseCompatibility = {
|
|
13
|
+
name: "get_application_database_compatibility",
|
|
14
|
+
title: "Get Application Database Compatibility",
|
|
15
|
+
description: "Report whether one application's App Database can be served on every data tag the application can run under: whether it declares an App Database at all (has_database), the overall state (overall_state: compatible, temporarily_unavailable, or incompatible), whether someone has to change the application (needs_attention), and per data tag (data_tags) which lifecycle operations no connected agent supports. The verdict fields match the app_database block of get_application_summary. Use it to explain why publishing or editing an application is blocked on its database. Readable by anyone who can view the application. Supports either app_url or application_id plus base_url.",
|
|
16
|
+
inputSchema: schemas.getApplicationDatabaseCompatibilityToolInputSchema,
|
|
17
|
+
annotations: {
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
destructiveHint: false,
|
|
20
|
+
idempotentHint: true,
|
|
21
|
+
openWorldHint: true,
|
|
22
|
+
},
|
|
23
|
+
audience: "customer",
|
|
24
|
+
async handler(args) {
|
|
25
|
+
const input = parseToolInput(getApplicationDatabaseCompatibilityInputSchema, args);
|
|
26
|
+
const targetInput = "app_url" in input
|
|
27
|
+
? { app_url: input.app_url }
|
|
28
|
+
: { application_id: input.application_id, base_url: input.base_url };
|
|
29
|
+
const target = resolveAppTarget(targetInput);
|
|
30
|
+
const auth = await resolveAuthForOrigin(target.baseUrl);
|
|
31
|
+
const report = parseServerResponse(appDatabaseCompatibilityReportSchema, await callServerApi({
|
|
32
|
+
baseUrl: target.baseUrl,
|
|
33
|
+
token: auth.token,
|
|
34
|
+
method: "GET",
|
|
35
|
+
path: `${APP_DATABASES_APPLICATIONS_PATH}/${target.applicationId}/compatibility`,
|
|
36
|
+
timeoutMs: APP_DATABASES_READ_TIMEOUT_MS,
|
|
37
|
+
}), "App Databases compatibility API");
|
|
38
|
+
return {
|
|
39
|
+
application_id: target.applicationId,
|
|
40
|
+
// Same verdict fields as get_application_summary's app_database block,
|
|
41
|
+
// plus the per-tag breakdown.
|
|
42
|
+
...projectAppDatabaseCompatibilityReport(report),
|
|
43
|
+
auth_source: auth.source,
|
|
44
|
+
base_url: target.baseUrl,
|
|
45
|
+
environment: target.environment,
|
|
46
|
+
resolved_from: target.resolvedFrom,
|
|
47
|
+
};
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=get-application-database-compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-application-database-compatibility.js","sourceRoot":"","sources":["../../src/tools/get-application-database-compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,oCAAoC,EACpC,mBAAmB,EACnB,qCAAqC,GACtC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACvC,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACnE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mCAAmC,GAAmB;IACjE,IAAI,EAAE,wCAAwC;IAC9C,KAAK,EAAE,wCAAwC;IAC/C,WAAW,EACT,qqBAAqqB;IACvqB,WAAW,EAAE,OAAO,CAAC,kDAAkD;IACvE,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,UAAU;IACpB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,cAAc,CAC1B,8CAA8C,EAC9C,IAAI,CACL,CAAC;QACF,MAAM,WAAW,GACf,SAAS,IAAI,KAAK;YAChB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;YAC5B,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,mBAAmB,CAChC,oCAAoC,EACpC,MAAM,aAAa,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,+BAA+B,IAAI,MAAM,CAAC,aAAa,gBAAgB;YAChF,SAAS,EAAE,6BAA6B;SACzC,CAAC,EACF,iCAAiC,CAClC,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,aAAa;YACpC,uEAAuE;YACvE,8BAA8B;YAC9B,GAAG,qCAAqC,CAAC,MAAM,CAAC;YAChD,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,YAAY;SACnC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-application-summary.d.ts","sourceRoot":"","sources":["../../src/tools/get-application-summary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-application-summary.d.ts","sourceRoot":"","sources":["../../src/tools/get-application-summary.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,qBAAqB,EAAE,cAqDnC,CAAC"}
|