@kuadrant/kuadrant-backstage-plugin-frontend 0.0.2-dev-d2ba42b → 0.0.2-dev-9be93a3
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/api.esm.js +220 -0
- package/dist/api.esm.js.map +1 -0
- package/dist/apis.esm.js +15 -0
- package/dist/apis.esm.js.map +1 -0
- package/dist/components/ApiAccessCard/ApiAccessCard.esm.js +25 -36
- package/dist/components/ApiAccessCard/ApiAccessCard.esm.js.map +1 -1
- package/dist/components/ApiKeyDetailPage/ApiKeyDetailPage.esm.js +24 -36
- package/dist/components/ApiKeyDetailPage/ApiKeyDetailPage.esm.js.map +1 -1
- package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +20 -46
- package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
- package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js +9 -43
- package/dist/components/ApiProductDetailPage/ApiProductDetailPage.esm.js.map +1 -1
- package/dist/components/ApiProductInfoCard/ApiProductInfoCard.esm.js +5 -13
- package/dist/components/ApiProductInfoCard/ApiProductInfoCard.esm.js.map +1 -1
- package/dist/components/ApiProductOpenApiAlert/ApiProductOpenApiAlert.esm.js +7 -10
- package/dist/components/ApiProductOpenApiAlert/ApiProductOpenApiAlert.esm.js.map +1 -1
- package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js +32 -64
- package/dist/components/ApprovalQueueTable/ApprovalQueueTable.esm.js.map +1 -1
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +29 -51
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
- package/dist/components/EditAPIKeyDialog/EditAPIKeyDialog.esm.js +8 -18
- package/dist/components/EditAPIKeyDialog/EditAPIKeyDialog.esm.js.map +1 -1
- package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js +8 -28
- package/dist/components/EditAPIProductDialog/EditAPIProductDialog.esm.js.map +1 -1
- package/dist/components/EntityApiApprovalTab/EntityApiApprovalTab.esm.js +9 -25
- package/dist/components/EntityApiApprovalTab/EntityApiApprovalTab.esm.js.map +1 -1
- package/dist/components/KuadrantPage/ApiProductsPage.esm.js +19 -53
- package/dist/components/KuadrantPage/ApiProductsPage.esm.js.map +1 -1
- package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js +25 -52
- package/dist/components/MyApiKeysTable/MyApiKeysTable.esm.js.map +1 -1
- package/dist/components/RequestAccessDialog/RequestAccessDialog.esm.js +10 -25
- package/dist/components/RequestAccessDialog/RequestAccessDialog.esm.js.map +1 -1
- package/dist/index.d.ts +459 -1
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -1
- package/dist-scalprum/internal.plugin-kuadrant.8bf02d5482a5a3ed6337.js +2 -0
- package/dist-scalprum/internal.plugin-kuadrant.8bf02d5482a5a3ed6337.js.map +1 -0
- package/dist-scalprum/plugin-manifest.json +3 -3
- package/dist-scalprum/static/2967.28e7c7f8.chunk.js +2 -0
- package/dist-scalprum/static/2967.28e7c7f8.chunk.js.map +1 -0
- package/dist-scalprum/static/3976.cf3ec7be.chunk.js +2 -0
- package/dist-scalprum/static/3976.cf3ec7be.chunk.js.map +1 -0
- package/dist-scalprum/static/4447.222bb58d.chunk.js +2 -0
- package/dist-scalprum/static/4447.222bb58d.chunk.js.map +1 -0
- package/dist-scalprum/static/5203.e92a3353.chunk.js +2 -0
- package/dist-scalprum/static/5203.e92a3353.chunk.js.map +1 -0
- package/dist-scalprum/static/6371.6ee1f11d.chunk.js +2 -0
- package/dist-scalprum/static/6371.6ee1f11d.chunk.js.map +1 -0
- package/dist-scalprum/static/6800.a7645f4c.chunk.js +2 -0
- package/dist-scalprum/static/6800.a7645f4c.chunk.js.map +1 -0
- package/dist-scalprum/static/69.1decc5e8.chunk.js +2 -0
- package/dist-scalprum/static/69.1decc5e8.chunk.js.map +1 -0
- package/dist-scalprum/static/7005.a9f73153.chunk.js +2 -0
- package/dist-scalprum/static/7005.a9f73153.chunk.js.map +1 -0
- package/dist-scalprum/static/7270.b0e185f1.chunk.js +2 -0
- package/dist-scalprum/static/7270.b0e185f1.chunk.js.map +1 -0
- package/dist-scalprum/static/7791.5c1eea8a.chunk.js +2 -0
- package/dist-scalprum/static/7791.5c1eea8a.chunk.js.map +1 -0
- package/dist-scalprum/static/8789.84963cbc.chunk.js +2 -0
- package/dist-scalprum/static/8789.84963cbc.chunk.js.map +1 -0
- package/dist-scalprum/static/9051.db875198.chunk.js +2 -0
- package/dist-scalprum/static/9051.db875198.chunk.js.map +1 -0
- package/dist-scalprum/static/{2946.a35243f1.chunk.js → 9370.2e9fe34b.chunk.js} +3 -3
- package/dist-scalprum/static/9370.2e9fe34b.chunk.js.map +1 -0
- package/dist-scalprum/static/9838.5df9b1de.chunk.js +2 -0
- package/dist-scalprum/static/9838.5df9b1de.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-PluginRoot.8a8dd91f.chunk.js +2 -0
- package/dist-scalprum/static/{exposed-PluginRoot.8d8f0b09.chunk.js.map → exposed-PluginRoot.8a8dd91f.chunk.js.map} +1 -1
- package/package.json +3 -1
- package/dist-scalprum/internal.plugin-kuadrant.eacc31ca4d6c1340f8a8.js +0 -2
- package/dist-scalprum/internal.plugin-kuadrant.eacc31ca4d6c1340f8a8.js.map +0 -1
- package/dist-scalprum/static/2946.a35243f1.chunk.js.map +0 -1
- package/dist-scalprum/static/2967.5bade048.chunk.js +0 -2
- package/dist-scalprum/static/2967.5bade048.chunk.js.map +0 -1
- package/dist-scalprum/static/3650.89dfc64c.chunk.js +0 -2
- package/dist-scalprum/static/3650.89dfc64c.chunk.js.map +0 -1
- package/dist-scalprum/static/3976.4cf18515.chunk.js +0 -2
- package/dist-scalprum/static/3976.4cf18515.chunk.js.map +0 -1
- package/dist-scalprum/static/4447.adbf663f.chunk.js +0 -2
- package/dist-scalprum/static/4447.adbf663f.chunk.js.map +0 -1
- package/dist-scalprum/static/5203.fce2a28f.chunk.js +0 -2
- package/dist-scalprum/static/5203.fce2a28f.chunk.js.map +0 -1
- package/dist-scalprum/static/6371.d45f37cc.chunk.js +0 -2
- package/dist-scalprum/static/6371.d45f37cc.chunk.js.map +0 -1
- package/dist-scalprum/static/6800.cd5c7bcb.chunk.js +0 -2
- package/dist-scalprum/static/6800.cd5c7bcb.chunk.js.map +0 -1
- package/dist-scalprum/static/7005.72759857.chunk.js +0 -2
- package/dist-scalprum/static/7005.72759857.chunk.js.map +0 -1
- package/dist-scalprum/static/7270.9473c969.chunk.js +0 -2
- package/dist-scalprum/static/7270.9473c969.chunk.js.map +0 -1
- package/dist-scalprum/static/7791.01371352.chunk.js +0 -2
- package/dist-scalprum/static/7791.01371352.chunk.js.map +0 -1
- package/dist-scalprum/static/8789.30227526.chunk.js +0 -2
- package/dist-scalprum/static/8789.30227526.chunk.js.map +0 -1
- package/dist-scalprum/static/exposed-PluginRoot.8d8f0b09.chunk.js +0 -2
- /package/dist-scalprum/static/{2946.a35243f1.chunk.js.LICENSE.txt → 9370.2e9fe34b.chunk.js.LICENSE.txt} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import react__default from 'react';
|
|
3
3
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
4
|
+
import { DiscoveryApi, FetchApi, IdentityApi } from '@backstage/core-plugin-api';
|
|
4
5
|
import * as _backstage_plugin_permission_common from '@backstage/plugin-permission-common';
|
|
6
|
+
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
5
7
|
|
|
6
8
|
interface ApiKeyManagementTabProps {
|
|
7
9
|
namespace?: string;
|
|
@@ -146,4 +148,460 @@ declare const kuadrantApiKeyDeleteAllPermission: _backstage_plugin_permission_co
|
|
|
146
148
|
declare const kuadrantApiKeyApprovePermission: _backstage_plugin_permission_common.BasicPermission;
|
|
147
149
|
declare const kuadrantPermissions: (_backstage_plugin_permission_common.BasicPermission | _backstage_plugin_permission_common.ResourcePermission<"apiproduct">)[];
|
|
148
150
|
|
|
149
|
-
|
|
151
|
+
type PlanTier = string;
|
|
152
|
+
type RequestPhase = 'Pending' | 'Approved' | 'Rejected';
|
|
153
|
+
interface PlanLimits {
|
|
154
|
+
daily?: number;
|
|
155
|
+
weekly?: number;
|
|
156
|
+
monthly?: number;
|
|
157
|
+
yearly?: number;
|
|
158
|
+
custom?: Array<{
|
|
159
|
+
limit: number;
|
|
160
|
+
window: string;
|
|
161
|
+
}>;
|
|
162
|
+
}
|
|
163
|
+
type OpenAPISpecConditionReason = 'SpecFetched' | 'SpecSizeTooLarge' | 'FetchFailed';
|
|
164
|
+
type StatusConditionType = 'OpenAPISpecReady' | string;
|
|
165
|
+
interface StatusCondition {
|
|
166
|
+
type: StatusConditionType;
|
|
167
|
+
status: 'True' | 'False' | 'Unknown';
|
|
168
|
+
reason?: OpenAPISpecConditionReason | string;
|
|
169
|
+
message?: string;
|
|
170
|
+
lastTransitionTime?: string;
|
|
171
|
+
}
|
|
172
|
+
interface APIKeySpec {
|
|
173
|
+
apiProductRef: {
|
|
174
|
+
name: string;
|
|
175
|
+
};
|
|
176
|
+
planTier: PlanTier;
|
|
177
|
+
useCase: string;
|
|
178
|
+
requestedBy: {
|
|
179
|
+
userId: string;
|
|
180
|
+
email: string;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
interface CredentialsAuthorizationHeader {
|
|
184
|
+
prefix?: string;
|
|
185
|
+
}
|
|
186
|
+
interface CredentialsCustomHeader {
|
|
187
|
+
name: string;
|
|
188
|
+
prefix?: string;
|
|
189
|
+
}
|
|
190
|
+
interface CredentialsNamed {
|
|
191
|
+
name: string;
|
|
192
|
+
}
|
|
193
|
+
interface Credentials {
|
|
194
|
+
authorizationHeader?: CredentialsAuthorizationHeader;
|
|
195
|
+
customHeader?: CredentialsCustomHeader;
|
|
196
|
+
queryString?: CredentialsNamed;
|
|
197
|
+
cookie?: CredentialsNamed;
|
|
198
|
+
}
|
|
199
|
+
interface LabelSelector {
|
|
200
|
+
matchLabels?: Record<string, string>;
|
|
201
|
+
matchExpressions?: Array<{
|
|
202
|
+
key: string;
|
|
203
|
+
operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
|
|
204
|
+
values?: string[];
|
|
205
|
+
}>;
|
|
206
|
+
}
|
|
207
|
+
interface AuthenticationSpec {
|
|
208
|
+
selector?: LabelSelector;
|
|
209
|
+
allNamespaces?: boolean;
|
|
210
|
+
}
|
|
211
|
+
interface APIKeyAuthScheme {
|
|
212
|
+
authenticationSpec?: AuthenticationSpec;
|
|
213
|
+
credentials?: Credentials;
|
|
214
|
+
}
|
|
215
|
+
interface APIKeyStatus {
|
|
216
|
+
phase?: RequestPhase;
|
|
217
|
+
reviewedBy?: string;
|
|
218
|
+
reviewedAt?: string;
|
|
219
|
+
apiHostname?: string;
|
|
220
|
+
limits?: PlanLimits;
|
|
221
|
+
secretRef?: {
|
|
222
|
+
name: string;
|
|
223
|
+
key: string;
|
|
224
|
+
};
|
|
225
|
+
canReadSecret?: boolean;
|
|
226
|
+
authScheme?: APIKeyAuthScheme;
|
|
227
|
+
conditions?: StatusCondition[];
|
|
228
|
+
}
|
|
229
|
+
interface APIKey {
|
|
230
|
+
apiVersion: 'devportal.kuadrant.io/v1alpha1';
|
|
231
|
+
kind: 'APIKey';
|
|
232
|
+
metadata: {
|
|
233
|
+
name: string;
|
|
234
|
+
namespace: string;
|
|
235
|
+
creationTimestamp?: string;
|
|
236
|
+
labels?: Record<string, string>;
|
|
237
|
+
annotations?: Record<string, string>;
|
|
238
|
+
};
|
|
239
|
+
spec: APIKeySpec;
|
|
240
|
+
status?: APIKeyStatus;
|
|
241
|
+
}
|
|
242
|
+
interface APIKeyRequest {
|
|
243
|
+
apiProductName: string;
|
|
244
|
+
namespace: string;
|
|
245
|
+
planTier: PlanTier;
|
|
246
|
+
useCase: string;
|
|
247
|
+
userEmail: string;
|
|
248
|
+
}
|
|
249
|
+
interface Plan {
|
|
250
|
+
tier: string;
|
|
251
|
+
description?: string;
|
|
252
|
+
limits?: PlanLimits;
|
|
253
|
+
}
|
|
254
|
+
interface APIProductSpec {
|
|
255
|
+
displayName: string;
|
|
256
|
+
description?: string;
|
|
257
|
+
version?: string;
|
|
258
|
+
tags?: string[];
|
|
259
|
+
targetRef: {
|
|
260
|
+
group: string;
|
|
261
|
+
kind: string;
|
|
262
|
+
name: string;
|
|
263
|
+
namespace: string;
|
|
264
|
+
};
|
|
265
|
+
approvalMode: 'automatic' | 'manual';
|
|
266
|
+
publishStatus: 'Draft' | 'Published';
|
|
267
|
+
documentation?: {
|
|
268
|
+
openAPISpecURL?: string;
|
|
269
|
+
swaggerUI?: string;
|
|
270
|
+
docsURL?: string;
|
|
271
|
+
gitRepository?: string;
|
|
272
|
+
techdocsRef?: string;
|
|
273
|
+
};
|
|
274
|
+
contact?: {
|
|
275
|
+
team?: string;
|
|
276
|
+
email?: string;
|
|
277
|
+
slack?: string;
|
|
278
|
+
url?: string;
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
interface DiscoveredAuthScheme {
|
|
282
|
+
authentication: Record<string, {
|
|
283
|
+
apiKey?: {
|
|
284
|
+
selector?: LabelSelector;
|
|
285
|
+
allNamespaces?: boolean;
|
|
286
|
+
};
|
|
287
|
+
jwt?: {
|
|
288
|
+
issuerUrl: string;
|
|
289
|
+
};
|
|
290
|
+
credentials?: Credentials;
|
|
291
|
+
metrics?: boolean;
|
|
292
|
+
priority?: number;
|
|
293
|
+
}>;
|
|
294
|
+
}
|
|
295
|
+
interface APIProductStatus {
|
|
296
|
+
observedGeneration?: number;
|
|
297
|
+
discoveredPlans?: Plan[];
|
|
298
|
+
discoveredAuthScheme?: DiscoveredAuthScheme;
|
|
299
|
+
openapi?: {
|
|
300
|
+
raw: string;
|
|
301
|
+
lastSyncTime: string;
|
|
302
|
+
};
|
|
303
|
+
oidcDiscovery?: {
|
|
304
|
+
tokenEndpoint: string;
|
|
305
|
+
};
|
|
306
|
+
conditions?: StatusCondition[];
|
|
307
|
+
}
|
|
308
|
+
interface APIProduct {
|
|
309
|
+
apiVersion: 'devportal.kuadrant.io/v1alpha1';
|
|
310
|
+
kind: 'APIProduct';
|
|
311
|
+
metadata: {
|
|
312
|
+
name: string;
|
|
313
|
+
namespace: string;
|
|
314
|
+
creationTimestamp?: string;
|
|
315
|
+
labels?: Record<string, string>;
|
|
316
|
+
annotations?: Record<string, string>;
|
|
317
|
+
};
|
|
318
|
+
spec: APIProductSpec;
|
|
319
|
+
status?: APIProductStatus;
|
|
320
|
+
}
|
|
321
|
+
interface PlanPolicyPlan {
|
|
322
|
+
tier: string;
|
|
323
|
+
predicate?: string;
|
|
324
|
+
description?: string;
|
|
325
|
+
limits?: PlanLimits;
|
|
326
|
+
}
|
|
327
|
+
interface PlanPolicy {
|
|
328
|
+
apiVersion: string;
|
|
329
|
+
kind: string;
|
|
330
|
+
metadata: {
|
|
331
|
+
name: string;
|
|
332
|
+
namespace: string;
|
|
333
|
+
creationTimestamp?: string;
|
|
334
|
+
labels?: Record<string, string>;
|
|
335
|
+
annotations?: Record<string, string>;
|
|
336
|
+
};
|
|
337
|
+
spec: {
|
|
338
|
+
targetRef: {
|
|
339
|
+
kind: 'HTTPRoute' | 'Gateway';
|
|
340
|
+
name: string;
|
|
341
|
+
namespace?: string;
|
|
342
|
+
};
|
|
343
|
+
plans: PlanPolicyPlan[];
|
|
344
|
+
};
|
|
345
|
+
status?: {
|
|
346
|
+
conditions?: StatusCondition[];
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
interface BulkOperationResult {
|
|
350
|
+
namespace: string;
|
|
351
|
+
name: string;
|
|
352
|
+
success: boolean;
|
|
353
|
+
error?: string;
|
|
354
|
+
}
|
|
355
|
+
interface ExtractedSecret {
|
|
356
|
+
apiKey: string;
|
|
357
|
+
}
|
|
358
|
+
interface K8sResource {
|
|
359
|
+
apiVersion: string;
|
|
360
|
+
kind: string;
|
|
361
|
+
metadata: {
|
|
362
|
+
name: string;
|
|
363
|
+
namespace?: string;
|
|
364
|
+
creationTimestamp?: string;
|
|
365
|
+
labels?: Record<string, string>;
|
|
366
|
+
annotations?: Record<string, string>;
|
|
367
|
+
[key: string]: any;
|
|
368
|
+
};
|
|
369
|
+
spec?: any;
|
|
370
|
+
status?: any;
|
|
371
|
+
data?: any;
|
|
372
|
+
stringData?: any;
|
|
373
|
+
[key: string]: any;
|
|
374
|
+
}
|
|
375
|
+
interface K8sList {
|
|
376
|
+
items: K8sResource[];
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Generic Kuadrant list type for API responses
|
|
381
|
+
*/
|
|
382
|
+
interface KuadrantList<T = any> {
|
|
383
|
+
items: T[];
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Options for constructing the KuadrantApiClient
|
|
387
|
+
*/
|
|
388
|
+
type Options = {
|
|
389
|
+
discoveryApi: DiscoveryApi;
|
|
390
|
+
fetchApi: FetchApi;
|
|
391
|
+
identityApi: IdentityApi;
|
|
392
|
+
};
|
|
393
|
+
/**
|
|
394
|
+
* Kuadrant API interface defining all operations for managing
|
|
395
|
+
* API products, API keys, and related resources
|
|
396
|
+
*/
|
|
397
|
+
interface KuadrantAPI {
|
|
398
|
+
/**
|
|
399
|
+
* Fetch all API key requests per user
|
|
400
|
+
* @returns Promise with list of all API key requests
|
|
401
|
+
*/
|
|
402
|
+
getRequests(): Promise<KuadrantList<APIKey>>;
|
|
403
|
+
/**
|
|
404
|
+
* Fetch all API key requests
|
|
405
|
+
* @returns Promise with list of all API key requests
|
|
406
|
+
*/
|
|
407
|
+
getAllRequests(): Promise<KuadrantList<APIKey>>;
|
|
408
|
+
/**
|
|
409
|
+
* Fetch API key requests for a specific namespace
|
|
410
|
+
* @param namespace - Kubernetes namespace
|
|
411
|
+
* @returns Promise with list of requests in the namespace
|
|
412
|
+
*/
|
|
413
|
+
getRequestsByNamespace(namespace: string): Promise<KuadrantList<APIKey>>;
|
|
414
|
+
/**
|
|
415
|
+
* Fetch a single API key request
|
|
416
|
+
* @param namespace - API key request name
|
|
417
|
+
* @param name - Kubernetes namespace
|
|
418
|
+
* @returns Promise with the API key request
|
|
419
|
+
*/
|
|
420
|
+
getRequest(namespace: string, name: string): Promise<APIKey>;
|
|
421
|
+
/**
|
|
422
|
+
* Create a new API key request
|
|
423
|
+
* @param request - APIKeyRequest specification
|
|
424
|
+
* @returns Promise with the created API key
|
|
425
|
+
*/
|
|
426
|
+
createRequest(request: APIKeyRequest): Promise<APIKey>;
|
|
427
|
+
/**
|
|
428
|
+
* Update an existing API key request
|
|
429
|
+
* @param namespace - Kubernetes namespace
|
|
430
|
+
* @param name - API key request name
|
|
431
|
+
* @param patch - Partial API key spec with fields to update
|
|
432
|
+
* @returns Promise with the updated API key
|
|
433
|
+
*/
|
|
434
|
+
updateRequest(namespace: string, name: string, patch: Partial<APIKeySpec>): Promise<APIKey>;
|
|
435
|
+
/**
|
|
436
|
+
* Delete an API key request
|
|
437
|
+
* @param namespace - Kubernetes namespace
|
|
438
|
+
* @param name - API key request name
|
|
439
|
+
* @returns Promise that resolves when deletion completes
|
|
440
|
+
*/
|
|
441
|
+
deleteRequest(namespace: string, name: string): Promise<void>;
|
|
442
|
+
/**
|
|
443
|
+
* Approve an API key request
|
|
444
|
+
* @param namespace - Kubernetes namespace
|
|
445
|
+
* @param name - API key request name
|
|
446
|
+
* @param reviewedBy - Reviewed By User / System
|
|
447
|
+
* @returns Promise with the approved API key
|
|
448
|
+
*/
|
|
449
|
+
approveRequest(namespace: string, name: string, reviewedBy: string): Promise<APIKey>;
|
|
450
|
+
/**
|
|
451
|
+
* Reject an API key request
|
|
452
|
+
* @param namespace - Kubernetes namespace
|
|
453
|
+
* @param name - API key request name
|
|
454
|
+
* @param reviewedBy - Reviewed By User / System
|
|
455
|
+
* @returns Promise with the rejected API key
|
|
456
|
+
*/
|
|
457
|
+
rejectRequest(namespace: string, name: string, reviewedBy: string): Promise<APIKey>;
|
|
458
|
+
/**
|
|
459
|
+
* Bulk approve multiple API key requests
|
|
460
|
+
* @param requests - Array of namespace/name pairs to approve
|
|
461
|
+
* @param reviewedBy - Reviewed By User / System
|
|
462
|
+
* @returns Promise that resolves when all approvals complete
|
|
463
|
+
*/
|
|
464
|
+
bulkApproveRequests(requests: Array<{
|
|
465
|
+
namespace: string;
|
|
466
|
+
name: string;
|
|
467
|
+
}>, reviewedBy: string): Promise<Array<BulkOperationResult>>;
|
|
468
|
+
/**
|
|
469
|
+
* Bulk reject multiple API key requests
|
|
470
|
+
* @param requests - Array of namespace/name pairs to reject
|
|
471
|
+
* @param reviewedBy - Reviewed By User / System
|
|
472
|
+
* @returns Promise that resolves when all rejections complete
|
|
473
|
+
*/
|
|
474
|
+
bulkRejectRequests(requests: Array<{
|
|
475
|
+
namespace: string;
|
|
476
|
+
name: string;
|
|
477
|
+
}>, reviewedBy: string): Promise<Array<BulkOperationResult>>;
|
|
478
|
+
/**
|
|
479
|
+
* Fetch an API key resource
|
|
480
|
+
* @param namespace - Kubernetes namespace
|
|
481
|
+
* @param name - API key name
|
|
482
|
+
* @returns Promise with the API key
|
|
483
|
+
*/
|
|
484
|
+
getApiKey(namespace: string, name: string): Promise<APIKey>;
|
|
485
|
+
/**
|
|
486
|
+
* Retrieve the secret value for an API key (one-time operation)
|
|
487
|
+
* @param namespace - Kubernetes namespace
|
|
488
|
+
* @param name - API key name
|
|
489
|
+
* @returns Promise with the secret value
|
|
490
|
+
*/
|
|
491
|
+
getApiKeySecret(namespace: string, name: string): Promise<ExtractedSecret>;
|
|
492
|
+
/**
|
|
493
|
+
* Fetch all API products
|
|
494
|
+
* @returns Promise with list of all API products
|
|
495
|
+
*/
|
|
496
|
+
getApiProducts(): Promise<KuadrantList<APIProduct>>;
|
|
497
|
+
/**
|
|
498
|
+
* Fetch a single API product
|
|
499
|
+
* @param namespace - Kubernetes namespace
|
|
500
|
+
* @param name - API product name
|
|
501
|
+
* @returns Promise with the API product
|
|
502
|
+
*/
|
|
503
|
+
getApiProduct(namespace: string, name: string): Promise<APIProduct>;
|
|
504
|
+
/**
|
|
505
|
+
* Create a new API product
|
|
506
|
+
* @param product - API product specification
|
|
507
|
+
* @returns Promise with the created API product
|
|
508
|
+
*/
|
|
509
|
+
createApiProduct(product: APIProduct): Promise<APIProduct>;
|
|
510
|
+
/**
|
|
511
|
+
* Update an existing API product
|
|
512
|
+
* @param namespace - Kubernetes namespace
|
|
513
|
+
* @param name - API product name
|
|
514
|
+
* @param patch - Partial API product spec with fields to update
|
|
515
|
+
* @returns Promise with the updated API product
|
|
516
|
+
*/
|
|
517
|
+
updateApiProduct(namespace: string, name: string, patch: Partial<APIProduct>): Promise<APIProduct>;
|
|
518
|
+
/**
|
|
519
|
+
* Delete an API product
|
|
520
|
+
* @param namespace - Kubernetes namespace
|
|
521
|
+
* @param name - API product name
|
|
522
|
+
* @returns Promise that resolves when deletion completes
|
|
523
|
+
*/
|
|
524
|
+
deleteApiProduct(namespace: string, name: string): Promise<void>;
|
|
525
|
+
/**
|
|
526
|
+
* Fetch all HTTPRoute(s)
|
|
527
|
+
* @returns Promise with list of all HTTP routes
|
|
528
|
+
*/
|
|
529
|
+
getHttpRoutes(): Promise<K8sList>;
|
|
530
|
+
/**
|
|
531
|
+
* Fetch a specific HTTPRoute
|
|
532
|
+
* @param namespace - Kubernetes namespace
|
|
533
|
+
* @param name - HTTPRoute name
|
|
534
|
+
* @returns Promise with an HTTPRoute
|
|
535
|
+
*/
|
|
536
|
+
getHttpRoute(namespace: string, name: string): Promise<K8sResource>;
|
|
537
|
+
/**
|
|
538
|
+
* Fetch all plan policies
|
|
539
|
+
* @returns Promise with list of all plan policies
|
|
540
|
+
*/
|
|
541
|
+
getPlanPolicies(): Promise<KuadrantList<PlanPolicy>>;
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* API reference for the Kuadrant API
|
|
545
|
+
*/
|
|
546
|
+
declare const kuadrantApiRef: _backstage_frontend_plugin_api.ApiRef<KuadrantAPI>;
|
|
547
|
+
/**
|
|
548
|
+
* Implementation of the Kuadrant API client
|
|
549
|
+
*/
|
|
550
|
+
declare class KuadrantApiClient implements KuadrantAPI {
|
|
551
|
+
private readonly discoveryApi;
|
|
552
|
+
private readonly fetchApi;
|
|
553
|
+
constructor(options: Options);
|
|
554
|
+
/**
|
|
555
|
+
* Get the base URL for the backend API
|
|
556
|
+
*/
|
|
557
|
+
private getBaseUrl;
|
|
558
|
+
/**
|
|
559
|
+
* Wrapper for GET requests with automatic retry logic
|
|
560
|
+
* Retries on network failures or 5xx errors with exponential backoff
|
|
561
|
+
*/
|
|
562
|
+
private fetchWithRetry;
|
|
563
|
+
/**
|
|
564
|
+
* Wrapper for mutations (POST, PATCH, DELETE) without retry
|
|
565
|
+
* These operations are not retried to avoid duplicate side effects
|
|
566
|
+
*/
|
|
567
|
+
private fetchWithoutRetry;
|
|
568
|
+
getRequests(): Promise<KuadrantList<APIKey>>;
|
|
569
|
+
getAllRequests(): Promise<KuadrantList<APIKey>>;
|
|
570
|
+
getRequestsByNamespace(namespace: string): Promise<KuadrantList<APIKey>>;
|
|
571
|
+
getRequest(namespace: string, name: string): Promise<APIKey>;
|
|
572
|
+
createRequest(request: APIKeyRequest): Promise<APIKey>;
|
|
573
|
+
updateRequest(namespace: string, name: string, patch: Partial<APIKeySpec>): Promise<APIKey>;
|
|
574
|
+
deleteRequest(namespace: string, name: string): Promise<void>;
|
|
575
|
+
approveRequest(namespace: string, name: string, reviewedBy?: string): Promise<APIKey>;
|
|
576
|
+
rejectRequest(namespace: string, name: string, reviewedBy?: string): Promise<APIKey>;
|
|
577
|
+
bulkApproveRequests(requests: Array<{
|
|
578
|
+
namespace: string;
|
|
579
|
+
name: string;
|
|
580
|
+
}>, reviewedBy: string): Promise<Array<BulkOperationResult>>;
|
|
581
|
+
bulkRejectRequests(requests: Array<{
|
|
582
|
+
namespace: string;
|
|
583
|
+
name: string;
|
|
584
|
+
}>, reviewedBy: string): Promise<Array<BulkOperationResult>>;
|
|
585
|
+
getApiKey(namespace: string, name: string): Promise<APIKey>;
|
|
586
|
+
getApiKeySecret(namespace: string, name: string): Promise<ExtractedSecret>;
|
|
587
|
+
getApiProducts(): Promise<KuadrantList<APIProduct>>;
|
|
588
|
+
getApiProduct(namespace: string, name: string): Promise<APIProduct>;
|
|
589
|
+
createApiProduct(product: APIProduct): Promise<APIProduct>;
|
|
590
|
+
updateApiProduct(namespace: string, name: string, patch: Partial<APIProduct>): Promise<APIProduct>;
|
|
591
|
+
deleteApiProduct(namespace: string, name: string): Promise<void>;
|
|
592
|
+
getHttpRoutes(): Promise<K8sList>;
|
|
593
|
+
getHttpRoute(namespace: string, name: string): Promise<K8sResource>;
|
|
594
|
+
getPlanPolicies(): Promise<KuadrantList<PlanPolicy>>;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* API factory for the Kuadrant plugin
|
|
599
|
+
* This factory creates and configures the KuadrantApiClient with required dependencies
|
|
600
|
+
*/
|
|
601
|
+
declare const kuadrantApiFactory: _backstage_frontend_plugin_api.ApiFactory<KuadrantAPI, KuadrantApiClient, {
|
|
602
|
+
discoveryApi: _backstage_frontend_plugin_api.DiscoveryApi;
|
|
603
|
+
fetchApi: _backstage_frontend_plugin_api.FetchApi;
|
|
604
|
+
identityApi: _backstage_frontend_plugin_api.IdentityApi;
|
|
605
|
+
}>;
|
|
606
|
+
|
|
607
|
+
export { ApiAccessCard, ApiKeyApprovalPage, ApiKeyDetailPage, ApiKeyManagementTab, ApiProductDetailPage, ApiProductInfoCard, ApiProductsPage, EntityKuadrantApiAccessCard, EntityKuadrantApiApprovalTab, EntityKuadrantApiKeyManagementTab, EntityKuadrantApiKeysContent, EntityKuadrantApiProductInfoContent, EntityKuadrantApiProductOpenApiAlert, type KuadrantAPI, KuadrantPage, MyApiKeysPage, kuadrantApiFactory, kuadrantApiKeyApprovePermission, kuadrantApiKeyCreatePermission, kuadrantApiKeyDeleteAllPermission, kuadrantApiKeyDeleteOwnPermission, kuadrantApiKeyReadAllPermission, kuadrantApiKeyReadOwnPermission, kuadrantApiKeyUpdateAllPermission, kuadrantApiKeyUpdateOwnPermission, kuadrantApiProductCreatePermission, kuadrantApiProductDeleteAllPermission, kuadrantApiProductDeleteOwnPermission, kuadrantApiProductListPermission, kuadrantApiProductReadAllPermission, kuadrantApiProductReadOwnPermission, kuadrantApiProductUpdateAllPermission, kuadrantApiProductUpdateOwnPermission, kuadrantApiRef, kuadrantPermissions, kuadrantPlanPolicyCreatePermission, kuadrantPlanPolicyDeletePermission, kuadrantPlanPolicyListPermission, kuadrantPlanPolicyReadPermission, kuadrantPlanPolicyUpdatePermission, kuadrantPlugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -3,4 +3,6 @@ export { ApiAccessCard } from './components/ApiAccessCard/ApiAccessCard.esm.js';
|
|
|
3
3
|
export { ApiKeyManagementTab } from './components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js';
|
|
4
4
|
export { ApiProductInfoCard } from './components/ApiProductInfoCard/ApiProductInfoCard.esm.js';
|
|
5
5
|
export { kuadrantApiKeyApprovePermission, kuadrantApiKeyCreatePermission, kuadrantApiKeyDeleteAllPermission, kuadrantApiKeyDeleteOwnPermission, kuadrantApiKeyReadAllPermission, kuadrantApiKeyReadOwnPermission, kuadrantApiKeyUpdateAllPermission, kuadrantApiKeyUpdateOwnPermission, kuadrantApiProductCreatePermission, kuadrantApiProductDeleteAllPermission, kuadrantApiProductDeleteOwnPermission, kuadrantApiProductListPermission, kuadrantApiProductReadAllPermission, kuadrantApiProductReadOwnPermission, kuadrantApiProductUpdateAllPermission, kuadrantApiProductUpdateOwnPermission, kuadrantPermissions, kuadrantPlanPolicyCreatePermission, kuadrantPlanPolicyDeletePermission, kuadrantPlanPolicyListPermission, kuadrantPlanPolicyReadPermission, kuadrantPlanPolicyUpdatePermission } from './permissions.esm.js';
|
|
6
|
+
export { kuadrantApiRef } from './api.esm.js';
|
|
7
|
+
export { kuadrantApiFactory } from './apis.esm.js';
|
|
6
8
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
__load_plugin_entry__("internal.plugin-kuadrant",(()=>{"use strict";var e,h,a,g,t,i,l,r,n,s,_,c,u,o,f,d,y,x,b,p,m,v={63198:(e,h,a)=>{var g={PluginRoot:()=>a.e(879).then(()=>()=>a(72627)),KuadrantPage:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiAccessCard:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiKeyManagementTab:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiKeysContent:()=>a.e(879).then(()=>()=>a(72627)),EntityKuadrantApiProductInfoContent:()=>a.e(879).then(()=>()=>a(72627))},t=(e,h)=>(a.R=h,h=a.o(g,e)?g[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),a.R=void 0,h),i=(e,h)=>{if(a.S){var g="default",t=a.S[g];if(t&&t!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return a.S[g]=e,a.I(g,h)}};a.d(h,{get:()=>t,init:()=>i})}},k={};function P(e){var h=k[e];if(void 0!==h)return h.exports;var a=k[e]={id:e,loaded:!1,exports:{}};return v[e].call(a.exports,a,a.exports,P),a.loaded=!0,a.exports}return P.m=v,P.c=k,P.n=e=>{var h=e&&e.__esModule?()=>e.default:()=>e;return P.d(h,{a:h}),h},h=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,P.t=function(a,g){if(1&g&&(a=this(a)),8&g)return a;if("object"==typeof a&&a){if(4&g&&a.__esModule)return a;if(16&g&&"function"==typeof a.then)return a}var t=Object.create(null);P.r(t);var i={};e=e||[null,h({}),h([]),h(h)];for(var l=2&g&&a;("object"==typeof l||"function"==typeof l)&&!~e.indexOf(l);l=h(l))Object.getOwnPropertyNames(l).forEach(e=>i[e]=()=>a[e]);return i.default=()=>a,P.d(t,i),t},P.d=(e,h)=>{for(var a in h)P.o(h,a)&&!P.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:h[a]})},P.f={},P.e=e=>Promise.all(Object.keys(P.f).reduce((h,a)=>(P.f[a](e,h),h),[])),P.u=e=>"static/"+({51:"react-syntax-highlighter_languages_highlight_prolog",200:"react-syntax-highlighter_languages_highlight_mel",206:"react-syntax-highlighter_languages_highlight_gml",371:"react-syntax-highlighter_languages_highlight_excel",456:"react-syntax-highlighter_languages_highlight_roboconf",460:"react-syntax-highlighter_languages_highlight_avrasm",464:"react-syntax-highlighter_languages_highlight_shell",557:"react-syntax-highlighter_languages_highlight_oneC",579:"react-syntax-highlighter_languages_highlight_vbnet",634:"react-syntax-highlighter_languages_highlight_scilab",879:"exposed-PluginRoot",927:"react-syntax-highlighter_languages_highlight_javascript",946:"react-syntax-highlighter_languages_highlight_clojure",985:"react-syntax-highlighter_languages_highlight_monkey",1062:"react-syntax-highlighter_languages_highlight_nim",1084:"react-syntax-highlighter_languages_highlight_aspectj",1099:"react-syntax-highlighter_languages_highlight_ebnf",1173:"react-syntax-highlighter_languages_highlight_autohotkey",1177:"react-syntax-highlighter_languages_highlight_profile",1214:"react-syntax-highlighter_languages_highlight_properties",1276:"react-syntax-highlighter_languages_highlight_phpTemplate",1325:"react-syntax-highlighter_languages_highlight_actionscript",1352:"react-syntax-highlighter_languages_highlight_fortran",1362:"react-syntax-highlighter_languages_highlight_mathematica",1418:"react-syntax-highlighter_languages_highlight_pony",1441:"react-syntax-highlighter_languages_highlight_coq",1461:"react-syntax-highlighter_languages_highlight_livescript",1489:"react-syntax-highlighter_languages_highlight_reasonml",1496:"react-syntax-highlighter_languages_highlight_lua",1522:"react-syntax-highlighter_languages_highlight_dust",1679:"react-syntax-highlighter_languages_highlight_scheme",1694:"react-syntax-highlighter_languages_highlight_accesslog",1727:"react-syntax-highlighter_languages_highlight_oxygene",1750:"react-syntax-highlighter_languages_highlight_makefile",1828:"react-syntax-highlighter_languages_highlight_dockerfile",1895:"react-syntax-highlighter_languages_highlight_pythonRepl",1956:"react-syntax-highlighter_languages_highlight_puppet",1961:"react-syntax-highlighter_languages_highlight_stan",1972:"react-syntax-highlighter_languages_highlight_fsharp",2007:"react-syntax-highlighter_languages_highlight_css",2064:"react-syntax-highlighter_languages_highlight_vhdl",2108:"react-syntax-highlighter_languages_highlight_cLike",2180:"react-syntax-highlighter_languages_highlight_sqf",2234:"react-syntax-highlighter_languages_highlight_lisp",2267:"react-syntax-highlighter_languages_highlight_maxima",2346:"react-syntax-highlighter_languages_highlight_d",2362:"react-syntax-highlighter_languages_highlight_xquery",2378:"react-syntax-highlighter_languages_highlight_parser3",2383:"react-syntax-highlighter_languages_highlight_crmsh",2438:"react-syntax-highlighter_languages_highlight_haxe",2488:"react-syntax-highlighter_languages_highlight_verilog",2496:"react-syntax-highlighter_languages_highlight_erlangRepl",2512:"react-syntax-highlighter_languages_highlight_stylus",2516:"react-syntax-highlighter_languages_highlight_apache",2665:"react-syntax-highlighter_languages_highlight_powershell",2693:"react-syntax-highlighter_languages_highlight_tap",2727:"react-syntax-highlighter_languages_highlight_q",2743:"react-syntax-highlighter_languages_highlight_asciidoc",2762:"react-syntax-highlighter_languages_highlight_haskell",2795:"react-syntax-highlighter_languages_highlight_dns",2871:"react-syntax-highlighter_languages_highlight_typescript",2882:"react-syntax-highlighter_languages_highlight_sml",2979:"react-syntax-highlighter_languages_highlight_plaintext",2981:"react-syntax-highlighter_languages_highlight_ruleslanguage",2983:"react-syntax-highlighter_languages_highlight_golo",3146:"react-syntax-highlighter_languages_highlight_purebasic",3193:"react-syntax-highlighter_languages_highlight_xml",3299:"react-syntax-highlighter_languages_highlight_fix",3357:"react-syntax-highlighter_languages_highlight_x86asm",3384:"react-syntax-highlighter_languages_highlight_ini",3418:"react-syntax-highlighter_languages_highlight_ruby",3419:"react-syntax-highlighter_languages_highlight_nix",3487:"react-syntax-highlighter_languages_highlight_mipsasm",3500:"react-syntax-highlighter_languages_highlight_autoit",3540:"react-syntax-highlighter_languages_highlight_moonscript",3562:"react-syntax-highlighter_languages_highlight_gams",3580:"react-syntax-highlighter_languages_highlight_csp",3607:"react-syntax-highlighter_languages_highlight_abnf",3623:"react-syntax-highlighter_languages_highlight_yaml",3722:"react-syntax-highlighter_languages_highlight_latex",3736:"react-syntax-highlighter_languages_highlight_json",3811:"react-syntax-highlighter_languages_highlight_erb",3885:"react-syntax-highlighter_languages_highlight_stata",3923:"react-syntax-highlighter_languages_highlight_applescript",3988:"react-syntax-highlighter_languages_highlight_vala",4014:"react-syntax-highlighter_languages_highlight_scss",4075:"react-syntax-highlighter_languages_highlight_hsp",4110:"react-syntax-highlighter_languages_highlight_tp",4135:"react-syntax-highlighter_languages_highlight_mizar",4282:"react-syntax-highlighter_languages_highlight_livecodeserver",4300:"react-syntax-highlighter_languages_highlight_r",4342:"react-syntax-highlighter_languages_highlight_php",4383:"react-syntax-highlighter_languages_highlight_dsconfig",4436:"react-syntax-highlighter_languages_highlight_zephir",4446:"react-syntax-highlighter_languages_highlight_leaf",4493:"react-syntax-highlighter_languages_highlight_gauss",4575:"react-syntax-highlighter_languages_highlight_processing",4635:"react-syntax-highlighter_languages_highlight_jbossCli",4733:"react-syntax-highlighter_languages_highlight_llvm",4835:"react-syntax-highlighter_languages_highlight_cos",4931:"react-syntax-highlighter_languages_highlight_step21",4956:"react-syntax-highlighter_languages_highlight_angelscript",4971:"react-syntax-highlighter_languages_highlight_lsl",5034:"react-syntax-highlighter_languages_highlight_ada",5051:"react-syntax-highlighter_languages_highlight_coffeescript",5099:"react-syntax-highlighter_languages_highlight_nsis",5123:"react-syntax-highlighter_languages_highlight_erlang",5189:"react-syntax-highlighter_languages_highlight_dts",5251:"react-syntax-highlighter_languages_highlight_pgsql",5253:"react-syntax-highlighter_languages_highlight_clojureRepl",5286:"react-syntax-highlighter_languages_highlight_nginx",5446:"react-syntax-highlighter_languages_highlight_ocaml",5565:"react-syntax-highlighter_languages_highlight_kotlin",5613:"react-syntax-highlighter_languages_highlight_rib",5664:"react-syntax-highlighter_languages_highlight_dos",5773:"react-syntax-highlighter_languages_highlight_mojolicious",5813:"react-syntax-highlighter_languages_highlight_less",5819:"react-syntax-highlighter_languages_highlight_gradle",5868:"react-syntax-highlighter_languages_highlight_inform7",5900:"react-syntax-highlighter_languages_highlight_lasso",6057:"react-syntax-highlighter_languages_highlight_sqlMore",6152:"react-syntax-highlighter_languages_highlight_vbscriptHtml",6161:"react-syntax-highlighter_languages_highlight_clean",6177:"react-syntax-highlighter_languages_highlight_taggerscript",6195:"react-syntax-highlighter_languages_highlight_ldif",6228:"react-syntax-highlighter_languages_highlight_rust",6267:"react-syntax-highlighter_languages_highlight_swift",6354:"react-syntax-highlighter_languages_highlight_java",6501:"react-syntax-highlighter_languages_highlight_armasm",6512:"react-syntax-highlighter_languages_highlight_scala",6542:"react-syntax-highlighter_languages_highlight_vim",6555:"react-syntax-highlighter_languages_highlight_openscad",6573:"react-syntax-highlighter_languages_highlight_cpp",6780:"react-syntax-highlighter_languages_highlight_qml",6835:"react-syntax-highlighter_languages_highlight_brainfuck",6848:"react-syntax-highlighter_languages_highlight_crystal",6924:"react-syntax-highlighter_languages_highlight_isbl",6977:"react-syntax-highlighter_languages_highlight_rsl",6986:"react-syntax-highlighter_languages_highlight_capnproto",7048:"react-syntax-highlighter_languages_highlight_gherkin",7079:"react-syntax-highlighter_languages_highlight_diff",7131:"react-syntax-highlighter_languages_highlight_protobuf",7209:"react-syntax-highlighter_languages_highlight_perl",7247:"react-syntax-highlighter_languages_highlight_cmake",7254:"react-syntax-highlighter_languages_highlight_subunit",7351:"react-syntax-highlighter_languages_highlight_elixir",7401:"react-syntax-highlighter_languages_highlight_sas",7406:"react-syntax-highlighter_languages_highlight_sql",7439:"react-syntax-highlighter_languages_highlight_flix",7533:"react-syntax-highlighter_languages_highlight_awk",7572:"react-syntax-highlighter_languages_highlight_basic",7764:"react-syntax-highlighter_languages_highlight_go",7776:"react-syntax-highlighter_languages_highlight_haml",7794:"react-syntax-highlighter_languages_highlight_http",7818:"react-syntax-highlighter_languages_highlight_arduino",7879:"react-syntax-highlighter_languages_highlight_csharp",7934:"react-syntax-highlighter_languages_highlight_glsl",7959:"react-syntax-highlighter_languages_highlight_htmlbars",8001:"react-syntax-highlighter_languages_highlight_matlab",8030:"react-syntax-highlighter_languages_highlight_handlebars",8058:"react-syntax-highlighter_languages_highlight_n1ql",8078:"react-syntax-highlighter_languages_highlight_delphi",8138:"react-syntax-highlighter_languages_highlight_elm",8140:"react-syntax-highlighter_languages_highlight_pf",8216:"react-syntax-highlighter_languages_highlight_bnf",8217:"react-syntax-highlighter_languages_highlight_twig",8331:"react-syntax-highlighter_languages_highlight_thrift",8338:"react-syntax-highlighter_languages_highlight_objectivec",8549:"react-syntax-highlighter_languages_highlight_c",8595:"react-syntax-highlighter_languages_highlight_hy",8705:"react-syntax-highlighter_languages_highlight_nodeRepl",8725:"react-syntax-highlighter_languages_highlight_smalltalk",8727:"react-syntax-highlighter/lowlight-import",8753:"react-syntax-highlighter_languages_highlight_mercury",8755:"react-syntax-highlighter_languages_highlight_tcl",8763:"react-syntax-highlighter_languages_highlight_routeros",8833:"react-syntax-highlighter_languages_highlight_markdown",8874:"react-syntax-highlighter_languages_highlight_smali",8903:"react-syntax-highlighter_languages_highlight_axapta",8904:"react-syntax-highlighter_languages_highlight_python",8948:"react-syntax-highlighter_languages_highlight_groovy",9078:"react-syntax-highlighter_languages_highlight_irpf90",9118:"react-syntax-highlighter_languages_highlight_juliaRepl",9139:"react-syntax-highlighter_languages_highlight_django",9162:"react-syntax-highlighter_languages_highlight_ceylon",9175:"react-syntax-highlighter_languages_highlight_vbscript",9229:"react-syntax-highlighter_languages_highlight_julia",9265:"react-syntax-highlighter_languages_highlight_dart",9406:"react-syntax-highlighter_languages_highlight_cal",9612:"react-syntax-highlighter_languages_highlight_bash",9702:"react-syntax-highlighter_languages_highlight_gcode",9726:"react-syntax-highlighter_languages_highlight_xl",9882:"react-syntax-highlighter_languages_highlight_arcade"}[e]||e)+"."+{51:"be0fdf0c",69:"1decc5e8",200:"5251fe1a",206:"2347c999",327:"a9a99299",369:"2374941c",371:"2f5c76b9",441:"f708f1e0",456:"47518214",460:"6381890e",464:"9bbc16eb",501:"87de76da",557:"362a3b0a",579:"21c190ed",634:"bb9cc730",635:"e030b18a",879:"8a8dd91f",927:"b0ad82d3",946:"e3fcc98c",985:"5f60f06d",1062:"17afaed1",1084:"35f221e8",1085:"d17e689a",1099:"a34b6944",1173:"614c5248",1177:"615fa721",1214:"60f97895",1276:"2bd36dc7",1325:"78db0238",1352:"38ec3d00",1362:"d8631b37",1418:"1961f69f",1441:"6b156852",1461:"3ece3068",1489:"a5a73a29",1496:"52f73c98",1522:"b30d0c38",1645:"db086648",1679:"508b5846",1694:"bd112f1a",1727:"ea742315",1750:"cad796c9",1828:"2c5fdf55",1895:"feb72aed",1956:"ee3f80da",1961:"17155e77",1972:"2ba37c00",2007:"2cc312ae",2064:"dea9db6c",2108:"f884fdc0",2118:"82433765",2180:"43421810",2233:"bf0c10d7",2234:"1cb2f675",2267:"f1f17544",2346:"bf4f2b44",2362:"353780d4",2378:"706a4bd6",2383:"58c4cb07",2438:"e2543cc2",2488:"e32adbeb",2496:"0d7f4890",2512:"cde06cf5",2516:"aa86d495",2628:"20156dc1",2665:"7bd31b3a",2693:"402e473f",2727:"989943de",2743:"4b40a3f9",2762:"bbd3c104",2795:"6d79126a",2822:"27a4ac5b",2871:"cf576f17",2882:"0e45c1cf",2952:"b3c7e41c",2967:"28e7c7f8",2979:"25f8d292",2981:"038504d0",2983:"eaa5e2bf",3007:"bffc9924",3144:"6f99ccee",3146:"08443005",3193:"ee14d6a4",3299:"5ee62733",3357:"217c56f0",3384:"d9d4ed7e",3418:"d84064e5",3419:"245f31b6",3487:"f5bc5b04",3500:"a06c1c62",3504:"1c2f2e54",3540:"443301b3",3562:"a45eb030",3580:"7fc6f9a3",3607:"bb6a8626",3623:"2aae489e",3657:"882640ca",3722:"b4bb9102",3736:"d934b52b",3811:"4ac917b8",3885:"fe81a7fc",3923:"ddf703d6",3947:"ff1c25cf",3954:"12dd8006",3976:"cf3ec7be",3988:"843d9bc4",4014:"bec19089",4026:"d652a7a1",4041:"29923ad9",4075:"5d714528",4093:"ee6f0452",4110:"0f4ff415",4135:"9b39cf3b",4282:"f624f22d",4300:"8540ccea",4342:"ade4c6c4",4382:"a7363415",4383:"c3457b50",4436:"fc94a148",4446:"92519810",4447:"222bb58d",4491:"83052809",4493:"cceeafb0",4570:"8b9f98d7",4575:"8d1f48c5",4611:"0d064cdf",4614:"23f2a85b",4635:"1ff533ef",4733:"f32d41e6",4835:"78d69dee",4931:"a431b2db",4935:"e14465ff",4956:"f9816c44",4971:"b6519e02",5010:"4ef96c87",5034:"b0d90871",5051:"3bc87b5b",5099:"4934a8e8",5123:"501777c7",5189:"8fd3703c",5203:"e92a3353",5235:"2a59dc45",5251:"5b0d21b9",5253:"e6dbc3b4",5286:"630147e0",5446:"0e42541e",5565:"c5eaa6f5",5613:"dc8afdf1",5664:"1ede6e37",5773:"0cf721ff",5813:"cc574d49",5819:"72fdf84d",5868:"78be038f",5900:"8d4054e7",6038:"63d1f832",6057:"d69b1825",6152:"42eb54af",6161:"97b48014",6177:"695a2547",6195:"74045e43",6228:"7e26e901",6267:"7d33a4a9",6354:"e04d1c07",6371:"6ee1f11d",6422:"969d9b8c",6501:"4bfb8996",6512:"a4629d0a",6542:"e82f126f",6555:"4a460eaf",6573:"ff6a8f78",6780:"8f3a0af6",6800:"a7645f4c",6835:"31bde7c5",6848:"3a36e63f",6872:"7ef4ed23",6924:"abe269c1",6977:"909f2a27",6986:"79dfc31f",7005:"a9f73153",7048:"e740620a",7076:"8745d395",7079:"a8373241",7131:"0cd375bc",7164:"5dc4bc72",7209:"ae8475a2",7247:"cb9028b5",7254:"c5ac3a0a",7270:"b0e185f1",7351:"1e79c9b9",7367:"62c9669e",7401:"94075d6a",7406:"651dcc8d",7439:"972cc801",7533:"dfc9b0b0",7572:"ec232b8a",7764:"abc0a144",7776:"d698757b",7791:"5c1eea8a",7794:"a55e168b",7818:"9b9ce313",7879:"ea98c6fb",7934:"bb5b0086",7959:"e57e3c89",8001:"114e44eb",8030:"75c0a89b",8058:"c54b2c4a",8078:"588e191d",8083:"4763f88b",8138:"8a488b19",8140:"5052a768",8216:"84e0a497",8217:"5cb0fdfc",8331:"ecb04f2a",8338:"2d204375",8549:"b43ce116",8563:"46f1a3e1",8595:"c60db034",8705:"5b05cdf2",8725:"53da57ca",8727:"2bd53873",8753:"fa8fdac0",8755:"79af288c",8763:"c0bcd6ce",8789:"84963cbc",8804:"63919453",8833:"1489792c",8874:"4fa5afdd",8903:"80d14346",8904:"9e4100ae",8948:"ecd68b19",9051:"db875198",9078:"25afcc29",9118:"e3bfcde8",9139:"8fb85401",9162:"ab3b1c28",9175:"4703f4c5",9229:"f43a39d0",9265:"0a0b12af",9316:"d9f2fe18",9370:"2e9fe34b",9400:"df4a7fb5",9406:"781cc6c6",9612:"53f7c730",9655:"db0c82b2",9702:"378d3296",9710:"7ec34777",9726:"7cff3cbb",9738:"b037daf3",9838:"5df9b1de",9882:"70910623"}[e]+".chunk.js",P.miniCssF=e=>"static/"+e+"."+e+".3597955d.css",P.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),P.o=(e,h)=>Object.prototype.hasOwnProperty.call(e,h),a={},g="internal.plugin-kuadrant:",P.l=(e,h,t,i)=>{if(a[e])a[e].push(h);else{var l,r;if(void 0!==t)for(var n=document.getElementsByTagName("script"),s=0;s<n.length;s++){var _=n[s];if(_.getAttribute("src")==e||_.getAttribute("data-webpack")==g+t){l=_;break}}l||(r=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,P.nc&&l.setAttribute("nonce",P.nc),l.setAttribute("data-webpack",g+t),l.src=e),a[e]=[h];var c=(h,g)=>{l.onerror=l.onload=null,clearTimeout(u);var t=a[e];if(delete a[e],l.parentNode&&l.parentNode.removeChild(l),t&&t.forEach(e=>e(g)),h)return h(g)},u=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),r&&document.head.appendChild(l)}},P.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},P.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{P.S={};var e={},h={};P.I=(a,g)=>{g||(g=[]);var t=h[a];if(t||(t=h[a]={}),!(g.indexOf(t)>=0)){if(g.push(t),e[a])return e[a];P.o(P.S,a)||(P.S[a]={});var i=P.S[a],l="internal.plugin-kuadrant",r=(e,h,a,g)=>{var t=i[e]=i[e]||{},r=t[h];(!r||!r.loaded&&(!g!=!r.eager?g:l>r.from))&&(t[h]={get:a,from:l,eager:!!g})},n=[];return"default"===a&&(r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([P.e(9655),P.e(5478),P.e(9634),P.e(5427),P.e(2233)]).then(()=>()=>P(4614))),r("@backstage/core-plugin-api","1.12.1",()=>Promise.all([P.e(9655),P.e(3504),P.e(5478),P.e(9634),P.e(5501),P.e(5427)]).then(()=>()=>P(23504))),r("@backstage/frontend-plugin-api","0.12.0",()=>Promise.all([P.e(9655),P.e(9316),P.e(4935),P.e(5478),P.e(9634),P.e(5427),P.e(1723)]).then(()=>()=>P(64935))),r("@backstage/frontend-plugin-api","0.13.3",()=>Promise.all([P.e(9655),P.e(9316),P.e(9738),P.e(5478),P.e(9634),P.e(5501),P.e(5427),P.e(1085)]).then(()=>()=>P(19738))),r("@backstage/version-bridge","1.0.11",()=>Promise.all([P.e(5478),P.e(2822)]).then(()=>()=>P(12822))),r("@emotion/cache","11.14.0",()=>P.e(7164).then(()=>()=>P(67164))),r("@emotion/react","11.14.0",()=>Promise.all([P.e(5478),P.e(6322),P.e(3657)]).then(()=>()=>P(53657))),r("@material-ui/core/styles","4.12.4",()=>Promise.all([P.e(9400),P.e(5478),P.e(1942),P.e(4491)]).then(()=>()=>P(64491))),r("@material-ui/styles","4.11.5",()=>Promise.all([P.e(4570),P.e(5478),P.e(3007)]).then(()=>()=>P(94570))),r("@mui/material","5.18.0",()=>Promise.all([P.e(3954),P.e(8083),P.e(5478),P.e(484),P.e(9096),P.e(4994)]).then(()=>()=>P(10464))),r("@mui/private-theming","5.17.1",()=>Promise.all([P.e(5478),P.e(1645)]).then(()=>()=>P(51645))),r("@mui/styled-engine","5.18.0",()=>Promise.all([P.e(2952),P.e(5478),P.e(6322),P.e(5277),P.e(635)]).then(()=>()=>P(92952))),r("@mui/system","5.18.0",()=>Promise.all([P.e(9710),P.e(3954),P.e(5478),P.e(9096),P.e(2464)]).then(()=>()=>P(29710))),r("react-dom","18.3.1",()=>Promise.all([P.e(3144),P.e(5478)]).then(()=>()=>P(43144))),r("react-router-dom","6.30.3",()=>Promise.all([P.e(501),P.e(5478),P.e(484),P.e(9829)]).then(()=>()=>P(62882))),r("react-router","6.30.3",()=>Promise.all([P.e(7367),P.e(5478)]).then(()=>()=>P(97367))),r("react","18.3.1",()=>P.e(4041).then(()=>()=>P(14041)))),e[a]=n.length?Promise.all(n).then(()=>e[a]=1):1}}})(),(()=>{var e;P.g.importScripts&&(e=P.g.location+"");var h=P.g.document;if(!e&&h&&(h.currentScript&&"SCRIPT"===h.currentScript.tagName.toUpperCase()&&(e=h.currentScript.src),!e)){var a=h.getElementsByTagName("script");if(a.length)for(var g=a.length-1;g>-1&&(!e||!/^http(s?):/.test(e));)e=a[g--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),P.p=e})(),t=e=>{var h=e=>e.split(".").map(e=>+e==e?+e:e),a=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),g=a[1]?h(a[1]):[];return a[2]&&(g.length++,g.push.apply(g,h(a[2]))),a[3]&&(g.push([]),g.push.apply(g,h(a[3]))),g},i=(e,h)=>{e=t(e),h=t(h);for(var a=0;;){if(a>=e.length)return a<h.length&&"u"!=(typeof h[a])[0];var g=e[a],i=(typeof g)[0];if(a>=h.length)return"u"==i;var l=h[a],r=(typeof l)[0];if(i!=r)return"o"==i&&"n"==r||"s"==r||"u"==i;if("o"!=i&&"u"!=i&&g!=l)return g<l;a++}},l=e=>{var h=e[0],a="";if(1===e.length)return"*";if(h+.5){a+=0==h?">=":-1==h?"<":1==h?"^":2==h?"~":h>0?"=":"!=";for(var g=1,t=1;t<e.length;t++)g--,a+="u"==(typeof(r=e[t]))[0]?"-":(g>0?".":"")+(g=2,r);return a}var i=[];for(t=1;t<e.length;t++){var r=e[t];i.push(0===r?"not("+n()+")":1===r?"("+n()+" || "+n()+")":2===r?i.pop()+" "+i.pop():l(r))}return n();function n(){return i.pop().replace(/^\((.+)\)$/,"$1")}},r=(e,h)=>{if(0 in e){h=t(h);var a=e[0],g=a<0;g&&(a=-a-1);for(var i=0,l=1,n=!0;;l++,i++){var s,_,c=l<e.length?(typeof e[l])[0]:"";if(i>=h.length||"o"==(_=(typeof(s=h[i]))[0]))return!n||("u"==c?l>a&&!g:""==c!=g);if("u"==_){if(!n||"u"!=c)return!1}else if(n)if(c==_)if(l<=a){if(s!=e[l])return!1}else{if(g?s>e[l]:s<e[l])return!1;s!=e[l]&&(n=!1)}else if("s"!=c&&"n"!=c){if(g||l<=a)return!1;n=!1,l--}else{if(l<=a||_<c!=g)return!1;n=!1}else"s"!=c&&"n"!=c&&(n=!1,l--)}}var u=[],o=u.pop.bind(u);for(i=1;i<e.length;i++){var f=e[i];u.push(1==f?o()|o():2==f?o()&o():f?r(f,h):!o())}return!!o()},n=(e,h)=>e&&P.o(e,h),s=e=>(e.loaded=1,e.get()),_=e=>Object.keys(e).reduce((h,a)=>(e[a].eager&&(h[a]=e[a]),h),{}),c=(e,h,a)=>{var g=a?_(e[h]):e[h];return Object.keys(g).reduce((e,h)=>!e||!g[e].loaded&&i(e,h)?h:e,0)},u=(e,h,a,g)=>"Unsatisfied version "+a+" from "+(a&&e[h][a].from)+" of shared singleton module "+h+" (required "+l(g)+")",o=e=>{throw new Error(e)},f=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},d=(e,h,a)=>a?a():((e,h)=>o("Shared module "+h+" doesn't exist in shared scope "+e))(e,h),y=(e=>function(h,a,g,t,i){var l=P.I(h);return l&&l.then&&!g?l.then(e.bind(e,h,P.S[h],a,!1,t,i)):e(h,P.S[h],a,g,t,i)})((e,h,a,g,t,i)=>{if(!n(h,a))return d(e,a,i);var l=c(h,a,g);return r(t,l)||f(u(h,a,l,t)),s(h[a][l])}),x={},b={22097:()=>y("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([P.e(9655),P.e(3504),P.e(5478),P.e(9634),P.e(5501),P.e(5427)]).then(()=>()=>P(23504))),95478:()=>y("default","react",!1,[0],()=>P.e(4041).then(()=>()=>P(14041))),49634:()=>y("default","react-router-dom",!1,[0],()=>Promise.all([P.e(501),P.e(484),P.e(9829)]).then(()=>()=>P(62882))),15427:()=>y("default","@backstage/version-bridge",!1,[0],()=>P.e(441).then(()=>()=>P(12822))),75501:()=>y("default","@backstage/frontend-plugin-api",!1,[0],()=>Promise.all([P.e(9655),P.e(9316),P.e(9738),P.e(9634),P.e(5427)]).then(()=>()=>P(19738))),51723:()=>y("default","@backstage/core-plugin-api",!1,[0],()=>P.e(4614).then(()=>()=>P(4614))),76322:()=>y("default","@emotion/cache",!1,[0],()=>P.e(7164).then(()=>()=>P(67164))),11942:()=>y("default","@material-ui/styles",!1,[0],()=>P.e(4570).then(()=>()=>P(94570))),40484:()=>y("default","react-dom",!1,[0],()=>P.e(3144).then(()=>()=>P(43144))),79096:()=>y("default","@mui/styled-engine",!1,[0],()=>Promise.all([P.e(2952),P.e(6322),P.e(5277)]).then(()=>()=>P(92952))),54994:()=>y("default","@mui/system",!1,[0],()=>Promise.all([P.e(9710),P.e(2464)]).then(()=>()=>P(29710))),5277:()=>y("default","@emotion/react",!1,[0],()=>P.e(6038).then(()=>()=>P(53657))),22464:()=>y("default","@mui/private-theming",!1,[0],()=>P.e(4026).then(()=>()=>P(51645))),9829:()=>y("default","react-router",!1,[0],()=>P.e(7367).then(()=>()=>P(97367))),37976:()=>y("default","@material-ui/core/styles",!1,[0],()=>P.e(6872).then(()=>()=>P(64491)))},p={484:[40484],879:[22097],1723:[51723],1942:[11942],2464:[22464],4994:[54994],5277:[5277],5427:[15427],5478:[95478],5501:[75501],6322:[76322],7976:[37976],9096:[79096],9634:[49634],9829:[9829]},m={},P.f.consumes=(e,h)=>{P.o(p,e)&&p[e].forEach(e=>{if(P.o(x,e))return h.push(x[e]);if(!m[e]){var a=h=>{x[e]=0,P.m[e]=a=>{delete P.c[e],a.exports=h()}};m[e]=!0;var g=h=>{delete x[e],P.m[e]=a=>{throw delete P.c[e],h}};try{var t=b[e]();t.then?h.push(x[e]=t.then(a).catch(g)):a(t)}catch(e){g(e)}}})},(()=>{if("undefined"!=typeof document){var e={2310:0};P.f.miniCss=(h,a)=>{e[h]?a.push(e[h]):0!==e[h]&&{4093:1}[h]&&a.push(e[h]=(e=>new Promise((h,a)=>{var g=P.miniCssF(e),t=P.p+g;if(((e,h)=>{for(var a=document.getElementsByTagName("link"),g=0;g<a.length;g++){var t=(l=a[g]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(t===e||t===h))return l}var i=document.getElementsByTagName("style");for(g=0;g<i.length;g++){var l;if((t=(l=i[g]).getAttribute("data-href"))===e||t===h)return l}})(g,t))return h();((e,h,a,g,t)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=a=>{if(i.onerror=i.onload=null,"load"===a.type)g();else{var l=a&&a.type,r=a&&a.target&&a.target.href||h,n=new Error("Loading CSS chunk "+e+" failed.\n("+l+": "+r+")");n.name="ChunkLoadError",n.code="CSS_CHUNK_LOAD_FAILED",n.type=l,n.request=r,i.parentNode&&i.parentNode.removeChild(i),t(n)}},i.href=h,function(e){const h=document.head,a=h.querySelector("style[data-jss]");a?h.insertBefore(e,a):h.appendChild(e)}(i)})(e,t,0,h,a)}))(h).then(()=>{e[h]=0},a=>{throw delete e[h],a}))}}})(),(()=>{var e={2310:0};P.f.j=(h,a)=>{var g=P.o(e,h)?e[h]:void 0;if(0!==g)if(g)a.push(g[2]);else if(/^(5(277|427|478|501)|9(096|634|829)|(246|48|499)4|1723|1942|6322|7976)$/.test(h))e[h]=0;else{var t=new Promise((a,t)=>g=e[h]=[a,t]);a.push(g[2]=t);var i=P.p+P.u(h),l=new Error;P.l(i,a=>{if(P.o(e,h)&&(0!==(g=e[h])&&(e[h]=void 0),g)){var t=a&&("load"===a.type?"missing":a.type),i=a&&a.target&&a.target.src;l.message="Loading chunk "+h+" failed.\n("+t+": "+i+")",l.name="ChunkLoadError",l.type=t,l.request=i,g[1](l)}},"chunk-"+h,h)}};var h=(h,a)=>{var g,t,[i,l,r]=a,n=0;if(i.some(h=>0!==e[h])){for(g in l)P.o(l,g)&&(P.m[g]=l[g]);r&&r(P)}for(h&&h(a);n<i.length;n++)t=i[n],P.o(e,t)&&e[t]&&e[t][0](),e[t]=0},a=self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[];a.forEach(h.bind(null,0)),a.push=h.bind(null,a.push.bind(a))})(),P(63198)})());
|
|
2
|
+
//# sourceMappingURL=internal.plugin-kuadrant.8bf02d5482a5a3ed6337.js.map
|