@peterhauge/apiops-cli 0.2.1-alpha.0 → 0.3.0-alpha.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 +167 -169
- package/dist/cli/extract-command.d.ts +2 -2
- package/dist/cli/extract-command.d.ts.map +1 -1
- package/dist/cli/extract-command.js +3 -5
- package/dist/cli/extract-command.js.map +1 -1
- package/dist/cli/index.js +2 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-command.d.ts +1 -1
- package/dist/cli/init-command.js +1 -1
- package/dist/cli/publish-command.d.ts +2 -2
- package/dist/cli/publish-command.js +3 -3
- package/dist/clients/apim-client.d.ts +16 -5
- package/dist/clients/apim-client.d.ts.map +1 -1
- package/dist/clients/apim-client.js +22 -7
- package/dist/clients/apim-client.js.map +1 -1
- package/dist/clients/artifact-store.d.ts +4 -4
- package/dist/clients/artifact-store.d.ts.map +1 -1
- package/dist/clients/artifact-store.js +10 -4
- package/dist/clients/artifact-store.js.map +1 -1
- package/dist/clients/iapim-client.d.ts +14 -2
- package/dist/clients/iapim-client.d.ts.map +1 -1
- package/dist/clients/iapim-client.js +1 -1
- package/dist/clients/iartifact-store.d.ts +10 -5
- package/dist/clients/iartifact-store.d.ts.map +1 -1
- package/dist/clients/iartifact-store.js +1 -1
- package/dist/lib/cloud-config.d.ts +1 -1
- package/dist/lib/cloud-config.js +1 -1
- package/dist/lib/config-loader.d.ts +2 -7
- package/dist/lib/config-loader.d.ts.map +1 -1
- package/dist/lib/config-loader.js +3 -22
- package/dist/lib/config-loader.js.map +1 -1
- package/dist/lib/dependency-graph.d.ts +1 -1
- package/dist/lib/dependency-graph.js +1 -1
- package/dist/lib/exit-codes.d.ts +1 -1
- package/dist/lib/exit-codes.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/parallel-runner.d.ts +2 -2
- package/dist/lib/parallel-runner.js +2 -2
- package/dist/lib/resource-path.d.ts +1 -1
- package/dist/lib/resource-path.js +1 -1
- package/dist/lib/resource-uri.d.ts +1 -1
- package/dist/lib/resource-uri.js +1 -1
- package/dist/lib/workspace-link.d.ts +31 -3
- package/dist/lib/workspace-link.d.ts.map +1 -1
- package/dist/lib/workspace-link.js +49 -3
- package/dist/lib/workspace-link.js.map +1 -1
- package/dist/models/config.d.ts +2 -4
- package/dist/models/config.d.ts.map +1 -1
- package/dist/models/config.js +1 -1
- package/dist/models/resource-types.d.ts +1 -1
- package/dist/models/resource-types.d.ts.map +1 -1
- package/dist/models/resource-types.js +5 -3
- package/dist/models/resource-types.js.map +1 -1
- package/dist/models/types.d.ts +22 -1
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js +1 -1
- package/dist/services/api-extractor.d.ts +1 -1
- package/dist/services/api-extractor.d.ts.map +1 -1
- package/dist/services/api-extractor.js +29 -127
- package/dist/services/api-extractor.js.map +1 -1
- package/dist/services/api-publisher.d.ts +1 -1
- package/dist/services/api-publisher.d.ts.map +1 -1
- package/dist/services/api-publisher.js +50 -18
- package/dist/services/api-publisher.js.map +1 -1
- package/dist/services/delete-unmatched-service.d.ts +1 -1
- package/dist/services/delete-unmatched-service.js +1 -1
- package/dist/services/dry-run-reporter.d.ts +1 -1
- package/dist/services/dry-run-reporter.js +1 -1
- package/dist/services/extract-service.d.ts +1 -1
- package/dist/services/extract-service.js +1 -1
- package/dist/services/filter-service.d.ts +19 -1
- package/dist/services/filter-service.d.ts.map +1 -1
- package/dist/services/filter-service.js +40 -2
- package/dist/services/filter-service.js.map +1 -1
- package/dist/services/git-diff-service.d.ts +1 -1
- package/dist/services/git-diff-service.js +1 -1
- package/dist/services/identity-guide-service.d.ts +1 -1
- package/dist/services/identity-guide-service.js +12 -12
- package/dist/services/init-service.d.ts +1 -1
- package/dist/services/init-service.js +1 -1
- package/dist/services/override-merger.d.ts +1 -1
- package/dist/services/override-merger.js +1 -1
- package/dist/services/product-extractor.d.ts +1 -1
- package/dist/services/product-extractor.d.ts.map +1 -1
- package/dist/services/product-extractor.js +27 -26
- package/dist/services/product-extractor.js.map +1 -1
- package/dist/services/product-publisher.d.ts.map +1 -1
- package/dist/services/product-publisher.js +25 -9
- package/dist/services/product-publisher.js.map +1 -1
- package/dist/services/prompt-service.d.ts +1 -1
- package/dist/services/prompt-service.js +1 -1
- package/dist/services/publish-service.d.ts +1 -1
- package/dist/services/publish-service.js +1 -1
- package/dist/services/resource-extractor.d.ts +1 -1
- package/dist/services/resource-extractor.js +1 -1
- package/dist/services/resource-publisher.d.ts +9 -1
- package/dist/services/resource-publisher.d.ts.map +1 -1
- package/dist/services/resource-publisher.js +30 -9
- package/dist/services/resource-publisher.js.map +1 -1
- package/dist/services/secret-redactor.d.ts +1 -1
- package/dist/services/secret-redactor.js +1 -1
- package/dist/services/transitive-resolver.d.ts +1 -1
- package/dist/services/transitive-resolver.js +1 -1
- package/dist/services/workspace-extractor.d.ts +7 -1
- package/dist/services/workspace-extractor.d.ts.map +1 -1
- package/dist/services/workspace-extractor.js +75 -10
- package/dist/services/workspace-extractor.js.map +1 -1
- package/dist/templates/azure-devops/extract-pipeline.d.ts +1 -1
- package/dist/templates/azure-devops/extract-pipeline.js +142 -142
- package/dist/templates/azure-devops/publish-pipeline.d.ts +1 -1
- package/dist/templates/azure-devops/publish-pipeline.js +114 -114
- package/dist/templates/configs/filter-config.d.ts +1 -1
- package/dist/templates/configs/filter-config.d.ts.map +1 -1
- package/dist/templates/configs/filter-config.js +118 -109
- package/dist/templates/configs/filter-config.js.map +1 -1
- package/dist/templates/configs/override-config.d.ts +1 -1
- package/dist/templates/configs/override-config.d.ts.map +1 -1
- package/dist/templates/configs/override-config.js +92 -91
- package/dist/templates/configs/override-config.js.map +1 -1
- package/dist/templates/github-actions/extract-workflow.d.ts +1 -1
- package/dist/templates/github-actions/extract-workflow.js +119 -119
- package/dist/templates/github-actions/publish-workflow.d.ts +1 -1
- package/dist/templates/github-actions/publish-workflow.d.ts.map +1 -1
- package/dist/templates/github-actions/publish-workflow.js +147 -104
- package/dist/templates/github-actions/publish-workflow.js.map +1 -1
- package/package.json +69 -69
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Parallel execution runner with concurrency control.
|
|
3
3
|
*
|
|
4
4
|
* Custom implementation (no external dependencies such as p-limit) to limit
|
|
5
5
|
* concurrent APIM REST API calls and avoid 429 rate limiting. Azure APIM has
|
|
6
6
|
* strict per-second request limits, so unbounded Promise.all() would fire all
|
|
7
7
|
* requests simultaneously, triggering throttling. Bounded concurrency is a
|
|
8
|
-
* requirement from research.md
|
|
8
|
+
* requirement from research.md.
|
|
9
9
|
*
|
|
10
10
|
* Built-in implementation without external dependencies (no p-limit).
|
|
11
11
|
*/
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Parallel execution runner with concurrency control.
|
|
5
5
|
*
|
|
6
6
|
* Custom implementation (no external dependencies such as p-limit) to limit
|
|
7
7
|
* concurrent APIM REST API calls and avoid 429 rate limiting. Azure APIM has
|
|
8
8
|
* strict per-second request limits, so unbounded Promise.all() would fire all
|
|
9
9
|
* requests simultaneously, triggering throttling. Bounded concurrency is a
|
|
10
|
-
* requirement from research.md
|
|
10
|
+
* requirement from research.md.
|
|
11
11
|
*
|
|
12
12
|
* Built-in implementation without external dependencies (no p-limit).
|
|
13
13
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Resource descriptor ↔ artifact file path mapping
|
|
5
5
|
* Map descriptor to directory/file paths per data-model.md artifact conventions
|
|
6
6
|
*/
|
|
7
7
|
import * as path from 'node:path';
|
package/dist/lib/resource-uri.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Resource descriptor ↔ ARM URI mapping
|
|
5
5
|
* Build full ARM URL from ApimServiceContext + ResourceDescriptor
|
|
6
6
|
*/
|
|
7
7
|
import { RESOURCE_TYPE_METADATA } from '../models/resource-types.js';
|
|
@@ -8,7 +8,31 @@
|
|
|
8
8
|
* This module provides helpers to extract the actual resource name from
|
|
9
9
|
* these link responses and to build link payloads for publishing.
|
|
10
10
|
*/
|
|
11
|
-
import { ApimServiceContext } from '../models/types.js';
|
|
11
|
+
import { ApimServiceContext, AssociationScope } from '../models/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Determines whether an ARM resource ID refers to a workspace-scoped or a
|
|
14
|
+
* service-scoped resource.
|
|
15
|
+
*
|
|
16
|
+
* Workspace-scoped IDs contain a `/workspaces/{name}/` segment after the APIM
|
|
17
|
+
* service segment (e.g. `.../service/apim/workspaces/ws/groups/g`). Service-scoped
|
|
18
|
+
* IDs do not (e.g. `.../service/apim/groups/administrators`).
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractScopeFromLinkId(armId: string): AssociationScope;
|
|
21
|
+
/**
|
|
22
|
+
* Extracts both the resource name and its scope from a workspace link response.
|
|
23
|
+
*
|
|
24
|
+
* Like {@link extractNameFromLink}, but also reports whether the linked
|
|
25
|
+
* resource lives at service or workspace scope (derived from its ARM ID), so
|
|
26
|
+
* publish can rebuild the link target at the correct scope.
|
|
27
|
+
*
|
|
28
|
+
* @param json - Raw link response item from LIST
|
|
29
|
+
* @param linkIdProperty - Property name containing the ARM ID (e.g. 'apiId', 'groupId')
|
|
30
|
+
* @returns The name and scope, or undefined if no ARM ID is present
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractLinkTarget(json: Record<string, unknown>, linkIdProperty: string): {
|
|
33
|
+
name: string;
|
|
34
|
+
scope: AssociationScope;
|
|
35
|
+
} | undefined;
|
|
12
36
|
/**
|
|
13
37
|
* Extracts the resource name from a workspace link response item.
|
|
14
38
|
*
|
|
@@ -28,9 +52,12 @@ export declare function extractNameFromLink(json: Record<string, unknown>, linkI
|
|
|
28
52
|
* @param context - APIM service context (may be service-scoped or workspace-scoped)
|
|
29
53
|
* @param resourcePath - The ARM path segment (e.g. 'apis/myApi' or 'groups/myGroup')
|
|
30
54
|
* @param workspace - Optional workspace name; required when context is service-scoped
|
|
55
|
+
* @param scope - Scope of the linked resource. When 'service', the workspace
|
|
56
|
+
* segment is omitted so the ID points at a service-level resource (e.g. the
|
|
57
|
+
* built-in `administrators` group) even within a workspace link.
|
|
31
58
|
* @returns Full ARM resource ID
|
|
32
59
|
*/
|
|
33
|
-
export declare function buildWorkspaceResourceId(context: ApimServiceContext, resourcePath: string, workspace?: string): string;
|
|
60
|
+
export declare function buildWorkspaceResourceId(context: ApimServiceContext, resourcePath: string, workspace?: string, scope?: AssociationScope): string;
|
|
34
61
|
export declare function isWorkspaceScope(context: ApimServiceContext): boolean;
|
|
35
62
|
/**
|
|
36
63
|
* Builds the PUT payload for creating a workspace link resource.
|
|
@@ -40,7 +67,8 @@ export declare function isWorkspaceScope(context: ApimServiceContext): boolean;
|
|
|
40
67
|
* @param resourceType - The ARM resource type segment (e.g. 'apis', 'groups', 'products')
|
|
41
68
|
* @param resourceName - The resource name to link to
|
|
42
69
|
* @param workspace - Optional workspace name; required when context is service-scoped
|
|
70
|
+
* @param scope - Scope of the linked resource (defaults to 'workspace')
|
|
43
71
|
* @returns PUT payload for the link resource
|
|
44
72
|
*/
|
|
45
|
-
export declare function buildLinkPayload(context: ApimServiceContext, linkIdProperty: string, resourceType: string, resourceName: string, workspace?: string): Record<string, unknown>;
|
|
73
|
+
export declare function buildLinkPayload(context: ApimServiceContext, linkIdProperty: string, resourceType: string, resourceName: string, workspace?: string, scope?: AssociationScope): Record<string, unknown>;
|
|
46
74
|
//# sourceMappingURL=workspace-link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-link.d.ts","sourceRoot":"","sources":["../../src/lib/workspace-link.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-link.d.ts","sourceRoot":"","sources":["../../src/lib/workspace-link.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAItE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAc,EAAE,MAAM,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAAG,SAAS,CAavD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,SAAS,CAkBpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,GAAE,gBAA8B,GACpC,MAAM,CAuBR;AAWD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAErE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,GAAE,gBAA8B,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB"}
|
|
@@ -10,6 +10,42 @@
|
|
|
10
10
|
* This module provides helpers to extract the actual resource name from
|
|
11
11
|
* these link responses and to build link payloads for publishing.
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* Determines whether an ARM resource ID refers to a workspace-scoped or a
|
|
15
|
+
* service-scoped resource.
|
|
16
|
+
*
|
|
17
|
+
* Workspace-scoped IDs contain a `/workspaces/{name}/` segment after the APIM
|
|
18
|
+
* service segment (e.g. `.../service/apim/workspaces/ws/groups/g`). Service-scoped
|
|
19
|
+
* IDs do not (e.g. `.../service/apim/groups/administrators`).
|
|
20
|
+
*/
|
|
21
|
+
export function extractScopeFromLinkId(armId) {
|
|
22
|
+
return /\/Microsoft\.ApiManagement\/service\/[^/]+\/workspaces\/[^/]+/i.test(armId)
|
|
23
|
+
? 'workspace'
|
|
24
|
+
: 'service';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extracts both the resource name and its scope from a workspace link response.
|
|
28
|
+
*
|
|
29
|
+
* Like {@link extractNameFromLink}, but also reports whether the linked
|
|
30
|
+
* resource lives at service or workspace scope (derived from its ARM ID), so
|
|
31
|
+
* publish can rebuild the link target at the correct scope.
|
|
32
|
+
*
|
|
33
|
+
* @param json - Raw link response item from LIST
|
|
34
|
+
* @param linkIdProperty - Property name containing the ARM ID (e.g. 'apiId', 'groupId')
|
|
35
|
+
* @returns The name and scope, or undefined if no ARM ID is present
|
|
36
|
+
*/
|
|
37
|
+
export function extractLinkTarget(json, linkIdProperty) {
|
|
38
|
+
const properties = json.properties;
|
|
39
|
+
const armId = properties?.[linkIdProperty];
|
|
40
|
+
if (typeof armId !== 'string' || armId.length === 0) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const name = extractNameFromLink(json, linkIdProperty);
|
|
44
|
+
if (!name) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return { name, scope: extractScopeFromLinkId(armId) };
|
|
48
|
+
}
|
|
13
49
|
/**
|
|
14
50
|
* Extracts the resource name from a workspace link response item.
|
|
15
51
|
*
|
|
@@ -45,11 +81,20 @@ export function extractNameFromLink(json, linkIdProperty) {
|
|
|
45
81
|
* @param context - APIM service context (may be service-scoped or workspace-scoped)
|
|
46
82
|
* @param resourcePath - The ARM path segment (e.g. 'apis/myApi' or 'groups/myGroup')
|
|
47
83
|
* @param workspace - Optional workspace name; required when context is service-scoped
|
|
84
|
+
* @param scope - Scope of the linked resource. When 'service', the workspace
|
|
85
|
+
* segment is omitted so the ID points at a service-level resource (e.g. the
|
|
86
|
+
* built-in `administrators` group) even within a workspace link.
|
|
48
87
|
* @returns Full ARM resource ID
|
|
49
88
|
*/
|
|
50
|
-
export function buildWorkspaceResourceId(context, resourcePath, workspace) {
|
|
89
|
+
export function buildWorkspaceResourceId(context, resourcePath, workspace, scope = 'workspace') {
|
|
51
90
|
const url = new URL(context.baseUrl);
|
|
52
91
|
const basePath = url.pathname;
|
|
92
|
+
// Service-scoped target: strip any workspace segment so the ID resolves at
|
|
93
|
+
// the service level regardless of the current context scope.
|
|
94
|
+
if (scope === 'service') {
|
|
95
|
+
const servicePath = basePath.replace(/\/workspaces\/[^/]+/i, '');
|
|
96
|
+
return `${servicePath}/${resourcePath}`;
|
|
97
|
+
}
|
|
53
98
|
// If context already includes the workspace segment, use it directly
|
|
54
99
|
if (isWorkspaceScope(context)) {
|
|
55
100
|
return `${basePath}/${resourcePath}`;
|
|
@@ -80,10 +125,11 @@ export function isWorkspaceScope(context) {
|
|
|
80
125
|
* @param resourceType - The ARM resource type segment (e.g. 'apis', 'groups', 'products')
|
|
81
126
|
* @param resourceName - The resource name to link to
|
|
82
127
|
* @param workspace - Optional workspace name; required when context is service-scoped
|
|
128
|
+
* @param scope - Scope of the linked resource (defaults to 'workspace')
|
|
83
129
|
* @returns PUT payload for the link resource
|
|
84
130
|
*/
|
|
85
|
-
export function buildLinkPayload(context, linkIdProperty, resourceType, resourceName, workspace) {
|
|
86
|
-
const resourceId = buildWorkspaceResourceId(context, `${resourceType}/${encodeURIComponent(resourceName)}`, workspace);
|
|
131
|
+
export function buildLinkPayload(context, linkIdProperty, resourceType, resourceName, workspace, scope = 'workspace') {
|
|
132
|
+
const resourceId = buildWorkspaceResourceId(context, `${resourceType}/${encodeURIComponent(resourceName)}`, workspace, scope);
|
|
87
133
|
return {
|
|
88
134
|
properties: {
|
|
89
135
|
[linkIdProperty]: resourceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-link.js","sourceRoot":"","sources":["../../src/lib/workspace-link.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC;;;;;;;;;GASG;AAIH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAA6B,EAC7B,cAAsB;IAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAiD,CAAC;IAC1E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,gEAAgE;IAChE,gDAAgD;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1C,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC;QACjC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"workspace-link.js","sourceRoot":"","sources":["../../src/lib/workspace-link.ts"],"names":[],"mappings":"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"}
|
package/dist/models/config.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Config interfaces
|
|
3
3
|
* ExtractConfig, FilterConfig, PublishConfig, OverrideConfig, InitConfig
|
|
4
4
|
*/
|
|
5
5
|
import { ApimServiceContext } from './types.js';
|
|
@@ -9,9 +9,7 @@ export interface ExtractConfig {
|
|
|
9
9
|
outputDir: string;
|
|
10
10
|
filter?: FilterConfig;
|
|
11
11
|
includeTransitive: boolean;
|
|
12
|
-
specFormat?: string;
|
|
13
12
|
logLevel: LogLevel;
|
|
14
|
-
otelConfigPath?: string;
|
|
15
13
|
}
|
|
16
14
|
/**
|
|
17
15
|
* Sub-resource filter for an individual API.
|
|
@@ -38,6 +36,7 @@ export interface WorkspaceSubFilter {
|
|
|
38
36
|
namedValues?: string[];
|
|
39
37
|
policyFragments?: string[];
|
|
40
38
|
products?: string[];
|
|
39
|
+
schemas?: string[];
|
|
41
40
|
subscriptions?: string[];
|
|
42
41
|
tags?: string[];
|
|
43
42
|
versionSets?: string[];
|
|
@@ -73,7 +72,6 @@ export interface PublishConfig {
|
|
|
73
72
|
deleteUnmatched: boolean;
|
|
74
73
|
commitId?: string;
|
|
75
74
|
logLevel: LogLevel;
|
|
76
|
-
otelConfigPath?: string;
|
|
77
75
|
}
|
|
78
76
|
/**
|
|
79
77
|
* A single override entry: properties to deep-merge + optional nested child overrides.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"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"}
|
package/dist/models/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-types.d.ts","sourceRoot":"","sources":["../../src/models/resource-types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IACvC,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,oFAAoF;IACpF,SAAS,cAAc;IACvB,0DAA0D;IAC1D,SAAS,cAAc;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"resource-types.d.ts","sourceRoot":"","sources":["../../src/models/resource-types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IACvC,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,oFAAoF;IACpF,SAAS,cAAc;IACvB,0DAA0D;IAC1D,SAAS,cAAc;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,oBAAoB,CA6O7E,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* ResourceType enum and metadata
|
|
5
5
|
* All 34 APIM resource types with ARM path suffixes, artifact directories, and info file names
|
|
6
6
|
*/
|
|
7
7
|
export var ResourceType;
|
|
@@ -267,10 +267,12 @@ export const RESOURCE_TYPE_METADATA = {
|
|
|
267
267
|
},
|
|
268
268
|
[ResourceType.McpServer]: {
|
|
269
269
|
// Singleton MCP (Model Context Protocol) server configuration per API.
|
|
270
|
-
//
|
|
270
|
+
// Artifact data is embedded in apiInformation.json; retain the descriptor
|
|
271
|
+
// only for ARM URI/dependency modeling. With infoFile unset, extract/publish
|
|
272
|
+
// no longer read or write the legacy mcpServerInformation.json sidecar.
|
|
271
273
|
armPathSuffix: 'apis/{0}/mcpServers/default',
|
|
272
274
|
artifactDirectory: 'apis/{0}',
|
|
273
|
-
infoFile:
|
|
275
|
+
infoFile: null, // Embedded in apiInformation.json
|
|
274
276
|
supportsGet: true,
|
|
275
277
|
},
|
|
276
278
|
[ResourceType.Workspace]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-types.js","sourceRoot":"","sources":["../../src/models/resource-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resource-types.js","sourceRoot":"","sources":["../../src/models/resource-types.ts"],"names":[],"mappings":"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"}
|
package/dist/models/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Core TypeScript interfaces
|
|
3
3
|
* ResourceDescriptor, ResourcePayload, ApimServiceContext, DependencyEdge
|
|
4
4
|
*/
|
|
5
5
|
import { ResourceType } from './resource-types.js';
|
|
@@ -24,6 +24,27 @@ export interface ResourcePayload {
|
|
|
24
24
|
/** Raw JSON from APIM GET response (properties envelope). Never parsed into typed fields. */
|
|
25
25
|
json: Record<string, unknown>;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Scope of a resource referenced by a workspace association link.
|
|
29
|
+
*
|
|
30
|
+
* Workspace products (and other workspace association parents) can link to
|
|
31
|
+
* resources that live either inside the workspace (`workspace`) or at the
|
|
32
|
+
* service level (`service`, e.g. the built-in `administrators`/`developers`/
|
|
33
|
+
* `guests` groups). The scope must be preserved so publish can rebuild the
|
|
34
|
+
* link target's ARM path at the correct scope.
|
|
35
|
+
*/
|
|
36
|
+
export type AssociationScope = 'service' | 'workspace';
|
|
37
|
+
/**
|
|
38
|
+
* An entry in an association file (apis.json, groups.json, tags.json).
|
|
39
|
+
*
|
|
40
|
+
* `scope` is optional for backward compatibility: legacy artifacts and
|
|
41
|
+
* service-scoped associations store only `{ name }`. When present, it records
|
|
42
|
+
* whether the linked resource lives at service or workspace scope.
|
|
43
|
+
*/
|
|
44
|
+
export interface AssociationEntry {
|
|
45
|
+
name: string;
|
|
46
|
+
scope?: AssociationScope;
|
|
47
|
+
}
|
|
27
48
|
export interface ApimServiceContext {
|
|
28
49
|
subscriptionId: string;
|
|
29
50
|
resourceGroup: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
package/dist/models/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-extractor.d.ts","sourceRoot":"","sources":["../../src/services/api-extractor.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"api-extractor.d.ts","sourceRoot":"","sources":["../../src/services/api-extractor.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAuB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,aAAa,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CA4G9B;AAgYD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAuDjB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* API-specific extraction logic
|
|
5
5
|
* API revisions, API specifications, operations & operation policies,
|
|
6
6
|
* GraphQL resolvers & resolver policies, API tags, diagnostics, schemas,
|
|
7
7
|
* releases, tag descriptions, wikis.
|
|
@@ -13,92 +13,6 @@ import { logger } from '../lib/logger.js';
|
|
|
13
13
|
import { buildResourceLabel } from '../lib/resource-uri.js';
|
|
14
14
|
import { getNamePart } from '../lib/resource-path.js';
|
|
15
15
|
import { isWorkspaceScope, extractNameFromLink } from '../lib/workspace-link.js';
|
|
16
|
-
function getApiProperties(apiJson) {
|
|
17
|
-
return apiJson.properties;
|
|
18
|
-
}
|
|
19
|
-
function hasEmbeddedMcpConfiguration(apiJson) {
|
|
20
|
-
const properties = getApiProperties(apiJson);
|
|
21
|
-
if (!properties) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
// Check if mcpTools has actual content (non-empty array), excluding null
|
|
25
|
-
const mcpTools = properties.mcpTools;
|
|
26
|
-
if (Array.isArray(mcpTools) && mcpTools.length > 0) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
// Check if mcpProperties exists and is not null or undefined
|
|
30
|
-
if (properties.mcpProperties != null) {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
// MCP APIs created from an existing MCP server are wired purely via
|
|
34
|
-
// backendId + (optionally absent) mcpProperties. A non-null backendId on a
|
|
35
|
-
// type='mcp' API is itself an MCP server configuration we must capture.
|
|
36
|
-
if (typeof properties.backendId === 'string' && properties.backendId.length > 0) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
function buildEmbeddedMcpServerResource(apiJson, backendUrl) {
|
|
42
|
-
const properties = getApiProperties(apiJson) ?? {};
|
|
43
|
-
const resourceProperties = {};
|
|
44
|
-
// Clone mcpProperties so we can augment it with serverUrl without mutating
|
|
45
|
-
// the caller's apiJson.
|
|
46
|
-
let mcpProperties;
|
|
47
|
-
if (properties.mcpProperties && typeof properties.mcpProperties === 'object') {
|
|
48
|
-
mcpProperties = { ...properties.mcpProperties };
|
|
49
|
-
}
|
|
50
|
-
else if (backendUrl) {
|
|
51
|
-
mcpProperties = {};
|
|
52
|
-
}
|
|
53
|
-
if (mcpProperties && backendUrl && mcpProperties.serverUrl === undefined) {
|
|
54
|
-
mcpProperties.serverUrl = backendUrl;
|
|
55
|
-
}
|
|
56
|
-
if (mcpProperties !== undefined) {
|
|
57
|
-
resourceProperties.mcpProperties = mcpProperties;
|
|
58
|
-
}
|
|
59
|
-
if (properties.mcpTools !== undefined) {
|
|
60
|
-
resourceProperties.mcpTools = properties.mcpTools;
|
|
61
|
-
}
|
|
62
|
-
// Preserve the link to the upstream backend so the MCP server sidecar is
|
|
63
|
-
// self-describing for MCP-from-existing-MCP-server APIs.
|
|
64
|
-
if (typeof properties.backendId === 'string' && properties.backendId.length > 0) {
|
|
65
|
-
resourceProperties.backendId = properties.backendId;
|
|
66
|
-
}
|
|
67
|
-
return {
|
|
68
|
-
name: 'default',
|
|
69
|
-
properties: resourceProperties,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* For an MCP API wired to a backend via `backendId`, fetch that backend and
|
|
74
|
-
* return its `properties.url` so the MCP sidecar can carry the actual upstream
|
|
75
|
-
* server URL. Returns undefined when the API has no backendId, the backend
|
|
76
|
-
* cannot be fetched, or the backend has no url.
|
|
77
|
-
*/
|
|
78
|
-
async function resolveLinkedBackendUrl(client, context, apiJson, workspace) {
|
|
79
|
-
const properties = getApiProperties(apiJson);
|
|
80
|
-
const backendId = properties?.backendId;
|
|
81
|
-
if (typeof backendId !== 'string' || backendId.length === 0) {
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
// backendId may be either a bare resource name or a full ARM resource id.
|
|
85
|
-
// We only consume the trailing name segment for descriptor lookup.
|
|
86
|
-
const backendName = backendId.includes('/') ? backendId.split('/').pop() : backendId;
|
|
87
|
-
try {
|
|
88
|
-
const backendJson = await client.getResource(context, {
|
|
89
|
-
type: ResourceType.Backend,
|
|
90
|
-
nameParts: [backendName],
|
|
91
|
-
workspace,
|
|
92
|
-
});
|
|
93
|
-
const url = backendJson?.properties?.url;
|
|
94
|
-
return typeof url === 'string' && url.length > 0 ? url : undefined;
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
98
|
-
logger.debug(`Could not resolve backend "${backendName}" for MCP server URL: ${errorMessage}`);
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
16
|
/**
|
|
103
17
|
* Extract all API-specific resources for a single API.
|
|
104
18
|
* This includes revisions, specifications, operations, policies, etc.
|
|
@@ -166,8 +80,6 @@ export async function extractApiResources(client, store, context, apiDescriptor,
|
|
|
166
80
|
}
|
|
167
81
|
// Extract API wiki
|
|
168
82
|
result.wiki = await extractApiWiki(client, store, context, apiDescriptor, outputDir);
|
|
169
|
-
// Extract MCP server configuration (singleton per API; silently skipped when not present)
|
|
170
|
-
result.mcpServer = await extractApiMcpServer(client, store, context, apiDescriptor, apiJson, outputDir);
|
|
171
83
|
// Extract GraphQL resolvers and their policies
|
|
172
84
|
const resolverResult = await extractGraphQLResolvers(client, store, context, apiDescriptor, apiJson, outputDir, filter, workspace);
|
|
173
85
|
result.resolvers = resolverResult.resolvers;
|
|
@@ -253,8 +165,16 @@ async function extractApiSpecification(client, store, context, apiDescriptor, ap
|
|
|
253
165
|
logger.debug(`Skipping spec export for synthetic GraphQL API "${getNamePart(apiDescriptor.nameParts, 0)}" — schema is captured via ApiSchema`);
|
|
254
166
|
return false;
|
|
255
167
|
}
|
|
168
|
+
// REST APIs natively imported as Swagger 2.0 expose auto-generated schemas
|
|
169
|
+
// with the Swagger-definitions content type. Export them in their native
|
|
170
|
+
// dialect so the exported spec matches the API's source format (OpenAPI 3.0
|
|
171
|
+
// export would convert schema content types and drop parameter-level metadata
|
|
172
|
+
// like `format`).
|
|
173
|
+
const specDialect = hasSwaggerDefinitionSchema(extractedSchemas)
|
|
174
|
+
? 'swagger2'
|
|
175
|
+
: 'openapi3';
|
|
256
176
|
try {
|
|
257
|
-
const spec = await client.getApiSpecification(context, getNamePart(apiDescriptor.nameParts, 0), apiType);
|
|
177
|
+
const spec = await client.getApiSpecification(context, getNamePart(apiDescriptor.nameParts, 0), apiType, specDialect);
|
|
258
178
|
if (!spec) {
|
|
259
179
|
logger.debug(`No specification found for API "${getNamePart(apiDescriptor.nameParts, 0)}"`);
|
|
260
180
|
return false;
|
|
@@ -286,6 +206,24 @@ function hasGraphQLSchema(schemas) {
|
|
|
286
206
|
}
|
|
287
207
|
return false;
|
|
288
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Returns true if any already-extracted ApiSchema resource has the Swagger 2.0
|
|
211
|
+
* definitions content type (`application/vnd.ms-azure-apim.swagger.definitions+json`).
|
|
212
|
+
* APIM stamps this content type on the auto-generated schema of APIs that were
|
|
213
|
+
* natively imported as Swagger 2.0, whereas OpenAPI 3.0 APIs use
|
|
214
|
+
* `application/vnd.oai.openapi.components+json`. Used to select Swagger 2.0
|
|
215
|
+
* export so the original spec format round-trips faithfully.
|
|
216
|
+
*/
|
|
217
|
+
function hasSwaggerDefinitionSchema(schemas) {
|
|
218
|
+
for (const schema of schemas) {
|
|
219
|
+
const props = schema.json.properties;
|
|
220
|
+
const contentType = props?.contentType?.toLowerCase() ?? '';
|
|
221
|
+
if (contentType.includes('swagger.definitions')) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
289
227
|
/**
|
|
290
228
|
* Extract API-level policy.
|
|
291
229
|
*/
|
|
@@ -390,7 +328,7 @@ async function extractGraphQLResolvers(client, store, context, apiDescriptor, ap
|
|
|
390
328
|
const resolverPolicies = [];
|
|
391
329
|
const policies = [];
|
|
392
330
|
// Only extract resolvers for GraphQL APIs — use the already-fetched apiJson
|
|
393
|
-
const properties =
|
|
331
|
+
const properties = apiJson.properties;
|
|
394
332
|
const apiType = properties?.type;
|
|
395
333
|
if (apiType?.toLowerCase() !== 'graphql') {
|
|
396
334
|
return { resolvers, resolverPolicies, policies };
|
|
@@ -425,42 +363,6 @@ async function extractGraphQLResolvers(client, store, context, apiDescriptor, ap
|
|
|
425
363
|
}
|
|
426
364
|
return { resolvers, resolverPolicies, policies };
|
|
427
365
|
}
|
|
428
|
-
/**
|
|
429
|
-
* Extract MCP (Model Context Protocol) server configuration for an API.
|
|
430
|
-
*
|
|
431
|
-
* MCP configuration is embedded directly on the API resource
|
|
432
|
-
* (`properties.mcpTools`, `properties.mcpProperties`, `properties.backendId`).
|
|
433
|
-
* There is no separate child resource served by ARM — the
|
|
434
|
-
* `apis/{id}/mcpServers/default` endpoint returns 404 even on working MCP APIs,
|
|
435
|
-
* and `apis/{id}/mcpServers` returns 500 (no such collection). All MCP data
|
|
436
|
-
* therefore comes from the API JSON itself.
|
|
437
|
-
*
|
|
438
|
-
* For MCP APIs created from an existing MCP server (the `backendId` pattern),
|
|
439
|
-
* the upstream URL lives on the linked backend, not on the API. To make the
|
|
440
|
-
* extracted `mcpServerInformation.json` self-describing, the extractor
|
|
441
|
-
* resolves that backend and surfaces its URL as `mcpProperties.serverUrl`.
|
|
442
|
-
*/
|
|
443
|
-
async function extractApiMcpServer(client, store, context, apiDescriptor, apiJson, outputDir) {
|
|
444
|
-
const apiType = getApiProperties(apiJson)?.type?.toLowerCase();
|
|
445
|
-
// Avoid creating MCP artifacts for non-MCP APIs unless they carry meaningful MCP metadata.
|
|
446
|
-
if (apiType !== 'mcp' && !hasEmbeddedMcpConfiguration(apiJson)) {
|
|
447
|
-
return false;
|
|
448
|
-
}
|
|
449
|
-
if (!hasEmbeddedMcpConfiguration(apiJson)) {
|
|
450
|
-
return false;
|
|
451
|
-
}
|
|
452
|
-
const mcpDescriptor = {
|
|
453
|
-
type: ResourceType.McpServer,
|
|
454
|
-
nameParts: [...apiDescriptor.nameParts],
|
|
455
|
-
workspace: apiDescriptor.workspace,
|
|
456
|
-
};
|
|
457
|
-
// Resolve the upstream backend URL so the MCP sidecar carries the actual
|
|
458
|
-
// server URL (not just a backendId reference + uri template).
|
|
459
|
-
const backendUrl = await resolveLinkedBackendUrl(client, context, apiJson, apiDescriptor.workspace);
|
|
460
|
-
await store.writeResource(outputDir, mcpDescriptor, buildEmbeddedMcpServerResource(apiJson, backendUrl));
|
|
461
|
-
logger.info(`Extracted ${buildResourceLabel(mcpDescriptor)} from API metadata`);
|
|
462
|
-
return true;
|
|
463
|
-
}
|
|
464
366
|
/**
|
|
465
367
|
* Extract API tag associations in workspace scope using the tag-centric
|
|
466
368
|
* `tags/{tag}/apiLinks` endpoint.
|