@peterhauge/apiops-cli 0.2.0-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.d.ts +0 -0
- package/dist/cli/index.d.ts.map +0 -0
- 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.d.ts.map +0 -0
- package/dist/cli/init-command.js +1 -1
- package/dist/cli/init-command.js.map +0 -0
- package/dist/cli/publish-command.d.ts +2 -2
- package/dist/cli/publish-command.d.ts.map +0 -0
- package/dist/cli/publish-command.js +3 -3
- package/dist/cli/publish-command.js.map +0 -0
- 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/iapim-client.js.map +0 -0
- 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/clients/iartifact-store.js.map +0 -0
- package/dist/lib/auto-generated.d.ts +0 -0
- package/dist/lib/auto-generated.d.ts.map +0 -0
- package/dist/lib/auto-generated.js +0 -0
- package/dist/lib/auto-generated.js.map +0 -0
- package/dist/lib/cloud-config.d.ts +1 -1
- package/dist/lib/cloud-config.d.ts.map +0 -0
- package/dist/lib/cloud-config.js +1 -1
- package/dist/lib/cloud-config.js.map +0 -0
- 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.d.ts.map +0 -0
- package/dist/lib/dependency-graph.js +1 -1
- package/dist/lib/dependency-graph.js.map +0 -0
- package/dist/lib/exit-codes.d.ts +1 -1
- package/dist/lib/exit-codes.d.ts.map +0 -0
- package/dist/lib/exit-codes.js +1 -1
- package/dist/lib/exit-codes.js.map +0 -0
- package/dist/lib/logger.d.ts +0 -0
- package/dist/lib/logger.d.ts.map +0 -0
- package/dist/lib/logger.js +1 -1
- package/dist/lib/logger.js.map +0 -0
- package/dist/lib/parallel-runner.d.ts +2 -2
- package/dist/lib/parallel-runner.d.ts.map +0 -0
- package/dist/lib/parallel-runner.js +2 -2
- package/dist/lib/parallel-runner.js.map +0 -0
- package/dist/lib/resource-path.d.ts +1 -1
- package/dist/lib/resource-path.d.ts.map +0 -0
- package/dist/lib/resource-path.js +1 -1
- package/dist/lib/resource-path.js.map +0 -0
- package/dist/lib/resource-uri.d.ts +1 -1
- package/dist/lib/resource-uri.d.ts.map +0 -0
- package/dist/lib/resource-uri.js +1 -1
- package/dist/lib/resource-uri.js.map +0 -0
- package/dist/lib/user-agent.d.ts +0 -0
- package/dist/lib/user-agent.d.ts.map +0 -0
- package/dist/lib/user-agent.js +0 -0
- package/dist/lib/user-agent.js.map +0 -0
- 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/config.js.map +0 -0
- 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/models/types.js.map +0 -0
- 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 +71 -28
- 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.d.ts.map +0 -0
- package/dist/services/delete-unmatched-service.js +1 -1
- package/dist/services/delete-unmatched-service.js.map +0 -0
- package/dist/services/dry-run-reporter.d.ts +1 -1
- package/dist/services/dry-run-reporter.d.ts.map +0 -0
- package/dist/services/dry-run-reporter.js +1 -1
- package/dist/services/dry-run-reporter.js.map +0 -0
- package/dist/services/extract-service.d.ts +1 -1
- package/dist/services/extract-service.d.ts.map +0 -0
- package/dist/services/extract-service.js +1 -1
- package/dist/services/extract-service.js.map +0 -0
- 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.d.ts.map +0 -0
- package/dist/services/git-diff-service.js +1 -1
- package/dist/services/git-diff-service.js.map +0 -0
- package/dist/services/identity-guide-service.d.ts +1 -1
- package/dist/services/identity-guide-service.d.ts.map +0 -0
- package/dist/services/identity-guide-service.js +12 -12
- package/dist/services/identity-guide-service.js.map +0 -0
- package/dist/services/init-service.d.ts +1 -1
- package/dist/services/init-service.d.ts.map +0 -0
- package/dist/services/init-service.js +1 -1
- package/dist/services/init-service.js.map +0 -0
- package/dist/services/keyvault-checker.d.ts +0 -0
- package/dist/services/keyvault-checker.d.ts.map +0 -0
- package/dist/services/keyvault-checker.js +0 -0
- package/dist/services/keyvault-checker.js.map +0 -0
- package/dist/services/override-merger.d.ts +1 -1
- package/dist/services/override-merger.d.ts.map +0 -0
- package/dist/services/override-merger.js +1 -1
- package/dist/services/override-merger.js.map +0 -0
- 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 +0 -0
- 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.d.ts.map +0 -0
- package/dist/services/prompt-service.js +1 -1
- package/dist/services/prompt-service.js.map +0 -0
- package/dist/services/publish-service.d.ts +1 -1
- package/dist/services/publish-service.d.ts.map +1 -1
- package/dist/services/publish-service.js +18 -6
- package/dist/services/publish-service.js.map +1 -1
- package/dist/services/resource-extractor.d.ts +1 -1
- package/dist/services/resource-extractor.d.ts.map +1 -1
- package/dist/services/resource-extractor.js +2 -53
- package/dist/services/resource-extractor.js.map +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 +145 -9
- package/dist/services/resource-publisher.js.map +1 -1
- package/dist/services/secret-redactor.d.ts +1 -1
- package/dist/services/secret-redactor.d.ts.map +0 -0
- package/dist/services/secret-redactor.js +1 -1
- package/dist/services/secret-redactor.js.map +0 -0
- package/dist/services/transitive-resolver.d.ts +1 -1
- package/dist/services/transitive-resolver.d.ts.map +0 -0
- package/dist/services/transitive-resolver.js +1 -1
- package/dist/services/transitive-resolver.js.map +0 -0
- 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.d.ts.map +0 -0
- package/dist/templates/azure-devops/extract-pipeline.js +142 -142
- package/dist/templates/azure-devops/extract-pipeline.js.map +0 -0
- package/dist/templates/azure-devops/publish-pipeline.d.ts +1 -1
- package/dist/templates/azure-devops/publish-pipeline.d.ts.map +0 -0
- package/dist/templates/azure-devops/publish-pipeline.js +114 -114
- package/dist/templates/azure-devops/publish-pipeline.js.map +0 -0
- 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 -89
- package/dist/templates/configs/override-config.js.map +1 -1
- package/dist/templates/configs/package-json.d.ts +0 -0
- package/dist/templates/configs/package-json.d.ts.map +0 -0
- package/dist/templates/configs/package-json.js +0 -0
- package/dist/templates/configs/package-json.js.map +0 -0
- package/dist/templates/copilot/identity-setup-prompt.d.ts +0 -0
- package/dist/templates/copilot/identity-setup-prompt.d.ts.map +0 -0
- package/dist/templates/copilot/identity-setup-prompt.js +0 -0
- package/dist/templates/copilot/identity-setup-prompt.js.map +0 -0
- package/dist/templates/generated/embedded-markdown.d.ts +0 -0
- package/dist/templates/generated/embedded-markdown.d.ts.map +0 -0
- package/dist/templates/generated/embedded-markdown.js +0 -0
- package/dist/templates/generated/embedded-markdown.js.map +0 -0
- package/dist/templates/github-actions/extract-workflow.d.ts +1 -1
- package/dist/templates/github-actions/extract-workflow.d.ts.map +0 -0
- package/dist/templates/github-actions/extract-workflow.js +119 -119
- package/dist/templates/github-actions/extract-workflow.js.map +0 -0
- 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,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Filter service
|
|
3
3
|
* Load FilterConfig, apply inclusive allowlist per resource type,
|
|
4
4
|
* case-insensitive matching, API root-name matching for revisions.
|
|
5
5
|
*/
|
|
@@ -23,6 +23,24 @@ export declare function shouldIncludeResource(descriptor: ResourceDescriptor, fi
|
|
|
23
23
|
* E.g., "my-api;rev=2" → "my-api"
|
|
24
24
|
*/
|
|
25
25
|
export declare function extractRootApiName(name: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Check if a pattern contains wildcard characters (* or ?).
|
|
28
|
+
*/
|
|
29
|
+
export declare function isWildcardPattern(pattern: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Convert a glob-style wildcard pattern to a RegExp.
|
|
32
|
+
* Supports:
|
|
33
|
+
* - `*` matches zero or more characters
|
|
34
|
+
* - `?` matches exactly one character
|
|
35
|
+
* All other characters are escaped for literal matching.
|
|
36
|
+
* Matching is case-insensitive.
|
|
37
|
+
*/
|
|
38
|
+
export declare function wildcardToRegex(pattern: string): RegExp;
|
|
39
|
+
/**
|
|
40
|
+
* Match a string against a glob-style wildcard pattern (case-insensitive).
|
|
41
|
+
* Logs a warning for patterns with many wildcards that may be slow.
|
|
42
|
+
*/
|
|
43
|
+
export declare function wildcardMatch(pattern: string, text: string): boolean;
|
|
26
44
|
/**
|
|
27
45
|
* Filter a list of resource descriptors based on filter config.
|
|
28
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-service.d.ts","sourceRoot":"","sources":["../../src/services/filter-service.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA8DxD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAoCT;AAqED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;
|
|
1
|
+
{"version":3,"file":"filter-service.d.ts","sourceRoot":"","sources":["../../src/services/filter-service.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAgB,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA8DxD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAoCT;AAqED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD;AAKD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CASpE;AAiCD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,kBAAkB,EAAE,EACjC,MAAM,CAAC,EAAE,YAAY,GACpB,kBAAkB,EAAE,CAatB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Filter service
|
|
5
5
|
* Load FilterConfig, apply inclusive allowlist per resource type,
|
|
6
6
|
* case-insensitive matching, API root-name matching for revisions.
|
|
7
7
|
*/
|
|
@@ -167,12 +167,47 @@ export function extractRootApiName(name) {
|
|
|
167
167
|
const semiIndex = name.indexOf(';');
|
|
168
168
|
return semiIndex >= 0 ? name.substring(0, semiIndex) : name;
|
|
169
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Check if a pattern contains wildcard characters (* or ?).
|
|
172
|
+
*/
|
|
173
|
+
export function isWildcardPattern(pattern) {
|
|
174
|
+
return pattern.includes('*') || pattern.includes('?');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Convert a glob-style wildcard pattern to a RegExp.
|
|
178
|
+
* Supports:
|
|
179
|
+
* - `*` matches zero or more characters
|
|
180
|
+
* - `?` matches exactly one character
|
|
181
|
+
* All other characters are escaped for literal matching.
|
|
182
|
+
* Matching is case-insensitive.
|
|
183
|
+
*/
|
|
184
|
+
export function wildcardToRegex(pattern) {
|
|
185
|
+
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
|
|
186
|
+
const regexStr = escaped.replace(/\*/g, '.*').replace(/\?/g, '.');
|
|
187
|
+
return new RegExp(`^${regexStr}$`, 'i');
|
|
188
|
+
}
|
|
189
|
+
/** Warn once per pattern that looks likely to cause slow matching. */
|
|
190
|
+
const warnedPatterns = new Set();
|
|
191
|
+
/**
|
|
192
|
+
* Match a string against a glob-style wildcard pattern (case-insensitive).
|
|
193
|
+
* Logs a warning for patterns with many wildcards that may be slow.
|
|
194
|
+
*/
|
|
195
|
+
export function wildcardMatch(pattern, text) {
|
|
196
|
+
const starCount = (pattern.match(/\*/g) ?? []).length;
|
|
197
|
+
if (starCount > 4 && !warnedPatterns.has(pattern)) {
|
|
198
|
+
warnedPatterns.add(pattern);
|
|
199
|
+
logger.warn(`Filter pattern "${pattern}" has ${starCount} wildcards and may be slow to evaluate`);
|
|
200
|
+
}
|
|
201
|
+
return wildcardToRegex(pattern).test(text);
|
|
202
|
+
}
|
|
170
203
|
/**
|
|
171
204
|
* Match a resource name against a filter allowlist.
|
|
172
205
|
*
|
|
173
206
|
* - undefined allowlist → include all (no filter for this type)
|
|
174
207
|
* - empty array → include none
|
|
175
|
-
* - non-empty array → case-insensitive match
|
|
208
|
+
* - non-empty array → case-insensitive exact match or wildcard pattern match
|
|
209
|
+
*
|
|
210
|
+
* Wildcard patterns use `*` (zero or more characters) and `?` (single character).
|
|
176
211
|
*/
|
|
177
212
|
function matchesFilter(name, allowlist) {
|
|
178
213
|
if (allowlist === undefined) {
|
|
@@ -185,6 +220,9 @@ function matchesFilter(name, allowlist) {
|
|
|
185
220
|
// For APIs, also match by root name (strip revision suffix)
|
|
186
221
|
const lowerRoot = extractRootApiName(lowerName);
|
|
187
222
|
return allowlist.some((allowed) => {
|
|
223
|
+
if (isWildcardPattern(allowed)) {
|
|
224
|
+
return wildcardMatch(allowed, lowerName) || wildcardMatch(allowed, lowerRoot);
|
|
225
|
+
}
|
|
188
226
|
const lowerAllowed = allowed.toLowerCase();
|
|
189
227
|
return lowerName === lowerAllowed || lowerRoot === lowerAllowed;
|
|
190
228
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-service.js","sourceRoot":"","sources":["../../src/services/filter-service.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,gBAAgB,GAAsD;IAC1E,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM;IAC1B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU;IAClC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU;IAClC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,aAAa;IACxC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS;IAChC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,aAAa;IACxC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM;IAC1B,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,iBAAiB;IAChD,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU;IAClC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,aAAa;IACxC,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ;IAC9B,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,eAAe;IAC5C,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,SAAS;IACtC,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,UAAU;IACxC,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;IACtD,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,gBAAgB;IAC9C,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAsD;IAC3E,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;IAChC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM;IAC7B,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM;IACpC,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM;IACnC,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,MAAM;IACzC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;IAChC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM;IACjC,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,MAAM;IACxC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM;IAC9B,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM;IACtC,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,MAAM;IAC5C,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,UAAU;IACxC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU;IACrC,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,UAAU;IACvC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU;IACrC,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,UAAU;IACtC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,sBAAsB,GAAsD;IAChF,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY;IACzC,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,YAAY;IAC/C,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,aAAa;IAC3C,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS;IACnC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU;CACtC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAA8B,EAC9B,MAAqB;IAErB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,8FAA8F;QAC9F,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAClD,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAyB,CAAC,CAAC;IAClF,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,UAAU,EAAE,CAAC;YACf,uCAAuC;YACvC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAyB,CAAC,EAAE,CAAC;gBAC5E,OAAO,KAAK,CAAC;YACf,CAAC;YAED,2DAA2D;YAC3D,IAAI,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACnD,OAAO,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3E,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,IAAkB;IAChD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,UAA8B,EAC9B,aAAqB,EACrB,aAA2C;IAE3C,2DAA2D;IAC3D,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CACvC,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,oDAAoD;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE7D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,yFAAyF;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,wEAAwE;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,oDAAoD;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sFAAsF;IACtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,UAA8B;IAC5D,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACxD,8EAA8E;IAC9E,OAAO,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,MAAM;QAClD,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"filter-service.js","sourceRoot":"","sources":["../../src/services/filter-service.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Git diff service
|
|
5
5
|
* Compute changed resource artifacts between commits using simple-git.
|
|
6
6
|
* Maps file paths to ResourceDescriptors for incremental publish.
|
|
7
7
|
*/
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Identity setup guide generator
|
|
5
5
|
* Step-by-step instructions for service principal, RBAC, federated credentials,
|
|
6
6
|
* pipeline secrets/service connections. Optional az CLI automation per FR-021.
|
|
7
7
|
*/
|
|
@@ -11,18 +11,18 @@ class IdentityGuideServiceImpl {
|
|
|
11
11
|
return Object.entries(tokens).reduce((rendered, [key, value]) => rendered.replaceAll(`{{${key}}}`, value), template);
|
|
12
12
|
}
|
|
13
13
|
generateGitHubActionsGuide(subscriptionId, resourceGroup, environments) {
|
|
14
|
-
const federatedCredentialsPerEnvironment = environments.map((env) => `az ad app federated-credential create \\
|
|
15
|
-
--id "$APP_ID" \\
|
|
16
|
-
--parameters '{
|
|
17
|
-
"name": "github-env-${env}",
|
|
18
|
-
"issuer": "https://token.actions.githubusercontent.com",
|
|
19
|
-
"subject": "repo:'"$GITHUB_ORG"'/'"$GITHUB_REPO"':environment:${env}",
|
|
20
|
-
"audiences": ["api://AzureADTokenExchange"]
|
|
14
|
+
const federatedCredentialsPerEnvironment = environments.map((env) => `az ad app federated-credential create \\
|
|
15
|
+
--id "$APP_ID" \\
|
|
16
|
+
--parameters '{
|
|
17
|
+
"name": "github-env-${env}",
|
|
18
|
+
"issuer": "https://token.actions.githubusercontent.com",
|
|
19
|
+
"subject": "repo:'"$GITHUB_ORG"'/'"$GITHUB_REPO"':environment:${env}",
|
|
20
|
+
"audiences": ["api://AzureADTokenExchange"]
|
|
21
21
|
}'`).join('\n\n');
|
|
22
|
-
const environmentSecrets = environments.map((env) => `
|
|
23
|
-
**For ${env} environment:**
|
|
24
|
-
- \`APIM_RESOURCE_GROUP_${env.toUpperCase()}\`: Resource group for ${env}
|
|
25
|
-
- \`APIM_SERVICE_NAME_${env.toUpperCase()}\`: APIM service name for ${env}
|
|
22
|
+
const environmentSecrets = environments.map((env) => `
|
|
23
|
+
**For ${env} environment:**
|
|
24
|
+
- \`APIM_RESOURCE_GROUP_${env.toUpperCase()}\`: Resource group for ${env}
|
|
25
|
+
- \`APIM_SERVICE_NAME_${env.toUpperCase()}\`: APIM service name for ${env}
|
|
26
26
|
`).join('\n');
|
|
27
27
|
return this.renderTemplate(githubActionsIdentityGuideTemplate, {
|
|
28
28
|
SUBSCRIPTION_ID: subscriptionId,
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Init orchestrator service
|
|
5
5
|
* Coordinates interactive prompts or flag-based config, generates scaffold files,
|
|
6
6
|
* and detects existing file conflicts
|
|
7
7
|
*/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Override merger service
|
|
3
3
|
* Apply environment-specific overrides from OverrideConfig to resource JSON payloads.
|
|
4
4
|
* Deep-merges with case-insensitive key matching; supports nested sub-resource overrides.
|
|
5
5
|
* Handles all Toolkit override sections with generic property passthrough.
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Override merger service
|
|
5
5
|
* Apply environment-specific overrides from OverrideConfig to resource JSON payloads.
|
|
6
6
|
* Deep-merges with case-insensitive key matching; supports nested sub-resource overrides.
|
|
7
7
|
* Handles all Toolkit override sections with generic property passthrough.
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-extractor.d.ts","sourceRoot":"","sources":["../../src/services/product-extractor.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"product-extractor.d.ts","sourceRoot":"","sources":["../../src/services/product-extractor.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,iBAAiB,EAAE,kBAAkB,EACrC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CA8ClC;AAwKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,iBAAiB,EAAE,KAAK,CAAC;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,CAAC,EAC5D,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAkDjB"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Product-specific extraction logic
|
|
5
5
|
* Product associations (apis.json, groups.json, tags.json), product policies, product wikis.
|
|
6
6
|
*/
|
|
7
7
|
import { ResourceType, RESOURCE_TYPE_METADATA } from '../models/resource-types.js';
|
|
8
8
|
import { extractResourceName } from './resource-extractor.js';
|
|
9
9
|
import { logger } from '../lib/logger.js';
|
|
10
10
|
import { getNamePart } from '../lib/resource-path.js';
|
|
11
|
-
import { isWorkspaceScope, extractNameFromLink } from '../lib/workspace-link.js';
|
|
11
|
+
import { isWorkspaceScope, extractNameFromLink, extractLinkTarget } from '../lib/workspace-link.js';
|
|
12
12
|
/**
|
|
13
13
|
* Extract all product-specific resources for a single product.
|
|
14
14
|
* This includes API associations, group associations, policies, and wikis.
|
|
@@ -48,7 +48,7 @@ export async function extractProductResources(client, store, context, productDes
|
|
|
48
48
|
* Extract product association (apis or groups) and write to artifact store.
|
|
49
49
|
*/
|
|
50
50
|
async function extractProductAssociations(client, store, context, productDescriptor, outputDir, associationType) {
|
|
51
|
-
const
|
|
51
|
+
const entries = [];
|
|
52
52
|
const resourceType = associationType === 'apis'
|
|
53
53
|
? ResourceType.ProductApi
|
|
54
54
|
: ResourceType.ProductGroup;
|
|
@@ -58,77 +58,76 @@ async function extractProductAssociations(client, store, context, productDescrip
|
|
|
58
58
|
const linkProperty = RESOURCE_TYPE_METADATA[resourceType].workspaceLinkIdProperty;
|
|
59
59
|
for await (const json of resources) {
|
|
60
60
|
try {
|
|
61
|
-
let name;
|
|
62
61
|
if (workspaceScoped && linkProperty) {
|
|
63
62
|
// Workspace link responses have an opaque link ID as `name` and
|
|
64
|
-
// the actual resource ARM ID in `properties.<linkProperty
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
// the actual resource ARM ID in `properties.<linkProperty>`.
|
|
64
|
+
// Capture the linked resource's scope (service vs workspace) so
|
|
65
|
+
// publish can rebuild the link target at the correct scope — e.g.
|
|
66
|
+
// a workspace product linking the service-level `administrators` group.
|
|
67
|
+
const target = extractLinkTarget(json, linkProperty);
|
|
68
|
+
if (!target) {
|
|
67
69
|
logger.warn(`Failed to extract ${associationType} link target from workspace link response`);
|
|
68
70
|
continue;
|
|
69
71
|
}
|
|
70
|
-
name
|
|
72
|
+
entries.push({ name: target.name, scope: target.scope });
|
|
71
73
|
}
|
|
72
74
|
else {
|
|
73
|
-
name
|
|
75
|
+
entries.push({ name: extractResourceName(json) });
|
|
74
76
|
}
|
|
75
|
-
names.push(name);
|
|
76
77
|
}
|
|
77
78
|
catch (error) {
|
|
78
79
|
logger.warn(`Failed to extract ${associationType} association name: ${error.message}`);
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
// Write association file
|
|
82
|
-
if (
|
|
83
|
-
await store.writeAssociation(outputDir, productDescriptor, associationType,
|
|
84
|
-
logger.info(`Extracted ${
|
|
83
|
+
if (entries.length > 0) {
|
|
84
|
+
await store.writeAssociation(outputDir, productDescriptor, associationType, entries);
|
|
85
|
+
logger.info(`Extracted ${entries.length} ${associationType} for product "${getNamePart(productDescriptor.nameParts, 0)}"`);
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
catch (error) {
|
|
88
89
|
logger.warn(`Failed to list ${associationType} for product "${getNamePart(productDescriptor.nameParts, 0)}": ${error.message}`);
|
|
89
90
|
}
|
|
90
|
-
return
|
|
91
|
+
return entries.map(entry => entry.name);
|
|
91
92
|
}
|
|
92
93
|
/**
|
|
93
94
|
* Extract product tags and write to artifact store as tags.json.
|
|
94
95
|
* Only used in service scope; workspace scope is handled by extractWorkspaceProductTags().
|
|
95
96
|
*/
|
|
96
97
|
async function extractProductTags(client, store, context, productDescriptor, outputDir) {
|
|
97
|
-
const
|
|
98
|
+
const entries = [];
|
|
98
99
|
const workspaceScoped = isWorkspaceScope(context);
|
|
99
100
|
const linkProperty = RESOURCE_TYPE_METADATA[ResourceType.ProductTag].workspaceLinkIdProperty;
|
|
100
101
|
try {
|
|
101
102
|
const resources = client.listResources(context, ResourceType.ProductTag, productDescriptor);
|
|
102
103
|
for await (const json of resources) {
|
|
103
104
|
try {
|
|
104
|
-
let name;
|
|
105
105
|
if (workspaceScoped && linkProperty) {
|
|
106
|
-
const
|
|
107
|
-
if (!
|
|
106
|
+
const target = extractLinkTarget(json, linkProperty);
|
|
107
|
+
if (!target) {
|
|
108
108
|
logger.warn('Failed to extract tag name from workspace link response');
|
|
109
109
|
continue;
|
|
110
110
|
}
|
|
111
|
-
name
|
|
111
|
+
entries.push({ name: target.name, scope: target.scope });
|
|
112
112
|
}
|
|
113
113
|
else {
|
|
114
|
-
name
|
|
114
|
+
entries.push({ name: extractResourceName(json) });
|
|
115
115
|
}
|
|
116
|
-
names.push(name);
|
|
117
116
|
}
|
|
118
117
|
catch (error) {
|
|
119
118
|
logger.warn(`Failed to extract tag name: ${error.message}`);
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
// Write tags association file
|
|
123
|
-
if (
|
|
124
|
-
await store.writeAssociation(outputDir, productDescriptor, 'tags',
|
|
125
|
-
logger.info(`Extracted ${
|
|
122
|
+
if (entries.length > 0) {
|
|
123
|
+
await store.writeAssociation(outputDir, productDescriptor, 'tags', entries);
|
|
124
|
+
logger.info(`Extracted ${entries.length} tags for product "${getNamePart(productDescriptor.nameParts, 0)}"`);
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
127
|
catch (error) {
|
|
129
128
|
logger.warn(`Failed to list tags for product "${getNamePart(productDescriptor.nameParts, 0)}": ${error.message}`);
|
|
130
129
|
}
|
|
131
|
-
return
|
|
130
|
+
return entries.map(entry => entry.name);
|
|
132
131
|
}
|
|
133
132
|
/**
|
|
134
133
|
* Extract product-level policy.
|
|
@@ -229,7 +228,9 @@ export async function extractWorkspaceProductTags(client, store, context, extrac
|
|
|
229
228
|
const productName = getNamePart(product.descriptor.nameParts, 0);
|
|
230
229
|
const tags = productTagsMap.get(productName);
|
|
231
230
|
if (tags && tags.length > 0) {
|
|
232
|
-
|
|
231
|
+
// Tags discovered here are workspace tags (listed within workspace scope).
|
|
232
|
+
const entries = tags.map(name => ({ name, scope: 'workspace' }));
|
|
233
|
+
await store.writeAssociation(outputDir, product.descriptor, 'tags', entries);
|
|
233
234
|
logger.info(`Extracted ${tags.length} tags for workspace product "${productName}"`);
|
|
234
235
|
count += tags.length;
|
|
235
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-extractor.js","sourceRoot":"","sources":["../../src/services/product-extractor.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC;;;GAGG;AAKH,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"product-extractor.js","sourceRoot":"","sources":["../../src/services/product-extractor.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-publisher.d.ts","sourceRoot":"","sources":["../../src/services/product-publisher.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"product-publisher.d.ts","sourceRoot":"","sources":["../../src/services/product-publisher.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOtF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAmEhC"}
|
|
@@ -10,6 +10,7 @@ import { logger } from '../lib/logger.js';
|
|
|
10
10
|
import { getNamePart } from '../lib/resource-path.js';
|
|
11
11
|
import { parseArmUri } from '../lib/resource-uri.js';
|
|
12
12
|
import { isWorkspaceScope, buildLinkPayload } from '../lib/workspace-link.js';
|
|
13
|
+
import { isLinkAlreadyExistsError } from '../clients/apim-client.js';
|
|
13
14
|
/**
|
|
14
15
|
* Publish a Product with all its associations (APIs, Groups, Tags).
|
|
15
16
|
* Creates product first, then publishes associations.
|
|
@@ -101,8 +102,8 @@ function parseProductGroupDescriptor(productGroup, context) {
|
|
|
101
102
|
async function publishProductAssociations(client, store, context, productDescriptor, config, associationType, resourceType) {
|
|
102
103
|
const productName = getNamePart(productDescriptor.nameParts, 0);
|
|
103
104
|
// Read association file
|
|
104
|
-
const
|
|
105
|
-
if (
|
|
105
|
+
const entries = await store.readAssociation(config.sourceDir, productDescriptor, associationType);
|
|
106
|
+
if (entries.length === 0) {
|
|
106
107
|
logger.debug(`No ${associationType} associations for product: ${productName}`);
|
|
107
108
|
return;
|
|
108
109
|
}
|
|
@@ -112,22 +113,30 @@ async function publishProductAssociations(client, store, context, productDescrip
|
|
|
112
113
|
// Map association type to the ARM resource type segment for building ARM IDs
|
|
113
114
|
const resourceTypeSegment = associationType === 'apis' ? 'apis' : 'groups';
|
|
114
115
|
// Create association for each name
|
|
115
|
-
for (const
|
|
116
|
+
for (const entry of entries) {
|
|
117
|
+
const name = entry.name;
|
|
116
118
|
const assocDescriptor = {
|
|
117
119
|
type: resourceType,
|
|
118
120
|
nameParts: [productName, name],
|
|
119
121
|
workspace: productDescriptor.workspace,
|
|
120
122
|
};
|
|
121
123
|
try {
|
|
122
|
-
// In workspace scope, PUT with link payload; otherwise empty body
|
|
124
|
+
// In workspace scope, PUT with link payload; otherwise empty body.
|
|
125
|
+
// Honor the stored scope so service-level link targets (e.g. the built-in
|
|
126
|
+
// `administrators` group) are referenced at service scope rather than
|
|
127
|
+
// being rebuilt as a non-existent workspace resource.
|
|
123
128
|
let payload = {};
|
|
124
129
|
if (workspaceScoped && linkProperty) {
|
|
125
|
-
payload = buildLinkPayload(context, linkProperty, resourceTypeSegment, name, productDescriptor.workspace);
|
|
130
|
+
payload = buildLinkPayload(context, linkProperty, resourceTypeSegment, name, productDescriptor.workspace, entry.scope);
|
|
126
131
|
}
|
|
127
132
|
await client.putResource(context, assocDescriptor, payload);
|
|
128
133
|
logger.debug(`Created ${resourceType} association: ${productName}/${name}`);
|
|
129
134
|
}
|
|
130
135
|
catch (error) {
|
|
136
|
+
if (isLinkAlreadyExistsError(error)) {
|
|
137
|
+
logger.debug(`${resourceType} association already exists: ${productName}/${name}`);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
131
140
|
logger.warn(`Failed to create ${resourceType} association ${productName}/${name}: ${String(error)}`);
|
|
132
141
|
}
|
|
133
142
|
}
|
|
@@ -140,21 +149,24 @@ async function publishProductAssociations(client, store, context, productDescrip
|
|
|
140
149
|
async function publishProductTags(client, store, context, productDescriptor, config) {
|
|
141
150
|
const productName = getNamePart(productDescriptor.nameParts, 0);
|
|
142
151
|
// Read tags from tags.json association file
|
|
143
|
-
const
|
|
144
|
-
if (
|
|
152
|
+
const tagEntries = await store.readAssociation(config.sourceDir, productDescriptor, 'tags');
|
|
153
|
+
if (tagEntries.length === 0) {
|
|
145
154
|
logger.debug(`No tag associations for product: ${productName}`);
|
|
146
155
|
return;
|
|
147
156
|
}
|
|
148
157
|
const workspaceScoped = !!productDescriptor.workspace || isWorkspaceScope(context);
|
|
149
158
|
const linkProperty = RESOURCE_TYPE_METADATA[ResourceType.ProductTag].workspaceLinkIdProperty;
|
|
150
159
|
// Create association for each tag
|
|
151
|
-
for (const
|
|
160
|
+
for (const tagEntry of tagEntries) {
|
|
161
|
+
const tagName = tagEntry.name;
|
|
152
162
|
const tagDescriptor = {
|
|
153
163
|
type: ResourceType.ProductTag,
|
|
154
164
|
nameParts: [productName, tagName],
|
|
155
165
|
workspace: productDescriptor.workspace,
|
|
156
166
|
};
|
|
157
167
|
try {
|
|
168
|
+
// The workspace ProductTag link references the product (productId), which
|
|
169
|
+
// always lives in the workspace, so the link payload is workspace-scoped.
|
|
158
170
|
let payload = {};
|
|
159
171
|
if (workspaceScoped && linkProperty) {
|
|
160
172
|
payload = buildLinkPayload(context, linkProperty, 'products', productName, productDescriptor.workspace);
|
|
@@ -163,9 +175,13 @@ async function publishProductTags(client, store, context, productDescriptor, con
|
|
|
163
175
|
logger.debug(`Created ProductTag association: ${productName}/${tagName}`);
|
|
164
176
|
}
|
|
165
177
|
catch (error) {
|
|
178
|
+
if (isLinkAlreadyExistsError(error)) {
|
|
179
|
+
logger.debug(`ProductTag association already exists: ${productName}/${tagName}`);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
166
182
|
logger.warn(`Failed to create ProductTag association ${productName}/${tagName}: ${String(error)}`);
|
|
167
183
|
}
|
|
168
184
|
}
|
|
169
|
-
logger.info(`Published ${
|
|
185
|
+
logger.info(`Published ${tagEntries.length} tags for product: ${productName}`);
|
|
170
186
|
}
|
|
171
187
|
//# sourceMappingURL=product-publisher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-publisher.js","sourceRoot":"","sources":["../../src/services/product-publisher.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC;;;GAGG;AAMH,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,eAAe,EAA8B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"product-publisher.js","sourceRoot":"","sources":["../../src/services/product-publisher.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Interactive prompt handler
|
|
5
5
|
* TTY detection, question prompts for CI provider/artifact dir/environments
|
|
6
6
|
* --non-interactive bypass per FR-022
|
|
7
7
|
*/
|