@peterhauge/apiops-cli 0.1.4-alpha.0 → 0.1.5-alpha.1
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 +14 -5
- package/dist/cli/init-command.js +1 -1
- package/dist/cli/init-command.js.map +1 -1
- package/dist/lib/config-loader.d.ts.map +1 -1
- package/dist/lib/config-loader.js +4 -6
- package/dist/lib/config-loader.js.map +1 -1
- package/dist/lib/dependency-graph.d.ts.map +1 -1
- package/dist/lib/dependency-graph.js +2 -0
- package/dist/lib/dependency-graph.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +10 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/resource-path.d.ts +7 -0
- package/dist/lib/resource-path.d.ts.map +1 -1
- package/dist/lib/resource-path.js +9 -0
- package/dist/lib/resource-path.js.map +1 -1
- package/dist/models/config.d.ts +1 -1
- package/dist/models/config.d.ts.map +1 -1
- package/dist/models/resource-types.d.ts +4 -2
- package/dist/models/resource-types.d.ts.map +1 -1
- package/dist/models/resource-types.js +11 -1
- package/dist/models/resource-types.js.map +1 -1
- package/dist/services/api-extractor.d.ts +1 -0
- package/dist/services/api-extractor.d.ts.map +1 -1
- package/dist/services/api-extractor.js +93 -1
- package/dist/services/api-extractor.js.map +1 -1
- package/dist/services/api-publisher.d.ts.map +1 -1
- package/dist/services/api-publisher.js +1 -0
- package/dist/services/api-publisher.js.map +1 -1
- package/dist/services/extract-service.js +1 -0
- package/dist/services/extract-service.js.map +1 -1
- package/dist/services/identity-guide-service.d.ts.map +1 -1
- package/dist/services/identity-guide-service.js +367 -64
- package/dist/services/identity-guide-service.js.map +1 -1
- package/dist/services/init-service.d.ts.map +1 -1
- package/dist/services/init-service.js +21 -12
- package/dist/services/init-service.js.map +1 -1
- package/dist/services/publish-service.js +6 -1
- package/dist/services/publish-service.js.map +1 -1
- package/dist/templates/configs/package-json.d.ts +6 -4
- package/dist/templates/configs/package-json.d.ts.map +1 -1
- package/dist/templates/configs/package-json.js +11 -6
- package/dist/templates/configs/package-json.js.map +1 -1
- package/package.json +2 -1
|
@@ -109,110 +109,413 @@ Test the authentication by running a workflow manually or pushing to main branch
|
|
|
109
109
|
|
|
110
110
|
## Security Notes
|
|
111
111
|
- Use GitHub Environments for production deployments with required reviewers
|
|
112
|
-
-
|
|
113
|
-
- Review
|
|
112
|
+
- Review federated credential subjects periodically (no secrets to rotate — OIDC authentication has no stored credentials)
|
|
113
|
+
- Review RBAC role assignments regularly and remove any no longer needed
|
|
114
114
|
- Use least-privilege RBAC assignments
|
|
115
115
|
`;
|
|
116
116
|
}
|
|
117
117
|
generateAzureDevOpsGuide(subscriptionId, resourceGroup, environments) {
|
|
118
|
+
const environmentsArrayPowerShell = environments.map((e) => `"${e}"`).join(', ');
|
|
119
|
+
const environmentsArrayBash = environments.map((e) => `"${e}"`).join(' ');
|
|
118
120
|
return `# Azure DevOps Identity Setup Guide
|
|
119
121
|
|
|
120
122
|
## Prerequisites
|
|
121
123
|
- Azure subscription: ${subscriptionId}
|
|
122
124
|
- Resource group: ${resourceGroup}
|
|
123
125
|
- Azure DevOps organization and project
|
|
126
|
+
- Azure CLI installed and authenticated (\`az login\`)
|
|
124
127
|
|
|
125
|
-
|
|
128
|
+
> **Note:** All commands use only built-in tools—no additional installations required. Commands are shown for both **PowerShell** and **Git Bash** where syntax differs.
|
|
129
|
+
|
|
130
|
+
---
|
|
126
131
|
|
|
127
|
-
|
|
132
|
+
## Step 1: Set Variables
|
|
128
133
|
|
|
134
|
+
**PowerShell:**
|
|
135
|
+
\`\`\`powershell
|
|
136
|
+
$SUBSCRIPTION_ID = "${subscriptionId}"
|
|
137
|
+
$RESOURCE_GROUP = "${resourceGroup}"
|
|
138
|
+
$APP_NAME = "apiops-azdo-sp"
|
|
139
|
+
$ENVIRONMENTS = @(${environmentsArrayPowerShell})
|
|
140
|
+
\`\`\`
|
|
141
|
+
|
|
142
|
+
**Git Bash:**
|
|
129
143
|
\`\`\`bash
|
|
130
|
-
# Set variables
|
|
131
144
|
SUBSCRIPTION_ID="${subscriptionId}"
|
|
132
145
|
RESOURCE_GROUP="${resourceGroup}"
|
|
133
146
|
APP_NAME="apiops-azdo-sp"
|
|
147
|
+
ENVIRONMENTS=(${environmentsArrayBash})
|
|
148
|
+
\`\`\`
|
|
134
149
|
|
|
135
|
-
|
|
136
|
-
SP_OUTPUT=$(az ad sp create-for-rbac \\
|
|
137
|
-
--name "$APP_NAME" \\
|
|
138
|
-
--role "API Management Service Contributor" \\
|
|
139
|
-
--scopes "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP" \\
|
|
140
|
-
--sdk-auth)
|
|
150
|
+
---
|
|
141
151
|
|
|
142
|
-
|
|
152
|
+
## Step 2: Create Service Principal
|
|
143
153
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
154
|
+
**PowerShell:**
|
|
155
|
+
\`\`\`powershell
|
|
156
|
+
$SP_OUTPUT = az ad sp create-for-rbac --name $APP_NAME --role "API Management Service Contributor" --scopes "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP"
|
|
157
|
+
$spObj = $SP_OUTPUT | ConvertFrom-Json
|
|
158
|
+
$APP_ID = $spObj.appId
|
|
159
|
+
$PASSWORD = $spObj.password
|
|
160
|
+
$TENANT_ID = $spObj.tenant
|
|
148
161
|
\`\`\`
|
|
149
162
|
|
|
150
|
-
|
|
163
|
+
**Git Bash:** (use \`MSYS_NO_PATHCONV=1\` to prevent path conversion on Windows)
|
|
164
|
+
\`\`\`bash
|
|
165
|
+
SP_OUTPUT=$(MSYS_NO_PATHCONV=1 az ad sp create-for-rbac --name "$APP_NAME" --role "API Management Service Contributor" --scopes "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP")
|
|
166
|
+
APP_ID=$(echo "$SP_OUTPUT" | grep -o '"appId": *"[^"]*"' | cut -d'"' -f4)
|
|
167
|
+
PASSWORD=$(echo "$SP_OUTPUT" | grep -o '"password": *"[^"]*"' | cut -d'"' -f4)
|
|
168
|
+
TENANT_ID=$(echo "$SP_OUTPUT" | grep -o '"tenant": *"[^"]*"' | cut -d'"' -f4)
|
|
169
|
+
\`\`\`
|
|
151
170
|
|
|
152
|
-
|
|
171
|
+
**Important:** The password is only shown once during creation. Save it securely now!
|
|
153
172
|
|
|
154
|
-
|
|
155
|
-
2. Click "New service connection" → "Azure Resource Manager" → "Service principal (manual)"
|
|
156
|
-
3. Fill in the details from Step 1:
|
|
157
|
-
- **Subscription ID**: ${subscriptionId}
|
|
158
|
-
- **Subscription Name**: (your subscription name)
|
|
159
|
-
- **Service Principal ID**: appId from Step 1
|
|
160
|
-
- **Service Principal Key**: password from Step 1
|
|
161
|
-
- **Tenant ID**: tenant from Step 1
|
|
173
|
+
---
|
|
162
174
|
|
|
163
|
-
|
|
164
|
-
**For ${env} environment:**
|
|
165
|
-
- Connection name: \`AZURE_SERVICE_CONNECTION_${env.toUpperCase()}\`
|
|
166
|
-
- Verify: Test the connection
|
|
167
|
-
`).join('\n')}
|
|
175
|
+
## Step 3: Configure Azure DevOps CLI
|
|
168
176
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
177
|
+
Install the extension (works in both shells):
|
|
178
|
+
\`\`\`bash
|
|
179
|
+
az extension add --name azure-devops
|
|
180
|
+
\`\`\`
|
|
172
181
|
|
|
173
|
-
|
|
182
|
+
Set organization defaults:
|
|
174
183
|
|
|
175
|
-
|
|
184
|
+
**PowerShell:**
|
|
185
|
+
\`\`\`powershell
|
|
186
|
+
# For self-hosted Azure DevOps Server, use: https://<server>/<collection>
|
|
187
|
+
$AZDO_ORG = "https://dev.azure.com/<your-org>"
|
|
188
|
+
$ORG_NAME = "<your-org>" # Used for Build Service identity
|
|
189
|
+
$AZDO_PROJECT = "<your-project>"
|
|
190
|
+
az devops configure --defaults organization=$AZDO_ORG project=$AZDO_PROJECT
|
|
191
|
+
$SUBSCRIPTION_NAME = az account show --subscription $SUBSCRIPTION_ID --query name -o tsv
|
|
192
|
+
\`\`\`
|
|
176
193
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
-
|
|
180
|
-
|
|
181
|
-
-
|
|
194
|
+
**Git Bash:**
|
|
195
|
+
\`\`\`bash
|
|
196
|
+
# For self-hosted Azure DevOps Server, use: https://<server>/<collection>
|
|
197
|
+
AZDO_ORG="https://dev.azure.com/<your-org>"
|
|
198
|
+
ORG_NAME="<your-org>" # Used for Build Service identity
|
|
199
|
+
AZDO_PROJECT="<your-project>"
|
|
200
|
+
az devops configure --defaults organization="$AZDO_ORG" project="$AZDO_PROJECT"
|
|
201
|
+
SUBSCRIPTION_NAME=$(az account show --subscription "$SUBSCRIPTION_ID" --query name -o tsv)
|
|
202
|
+
\`\`\`
|
|
182
203
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Step 4: Create Azure Service Connections
|
|
207
|
+
|
|
208
|
+
Set the service principal key for non-interactive creation:
|
|
209
|
+
|
|
210
|
+
**PowerShell:**
|
|
211
|
+
\`\`\`powershell
|
|
212
|
+
$env:AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY = $PASSWORD
|
|
213
|
+
\`\`\`
|
|
214
|
+
|
|
215
|
+
**Git Bash:**
|
|
216
|
+
\`\`\`bash
|
|
217
|
+
export AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY="$PASSWORD"
|
|
218
|
+
\`\`\`
|
|
219
|
+
|
|
220
|
+
Create the base service connection and one per environment:
|
|
221
|
+
|
|
222
|
+
**PowerShell:**
|
|
223
|
+
\`\`\`powershell
|
|
224
|
+
az devops service-endpoint azurerm create --name "AZURE_SERVICE_CONNECTION" --azure-rm-service-principal-id $APP_ID --azure-rm-subscription-id $SUBSCRIPTION_ID --azure-rm-subscription-name $SUBSCRIPTION_NAME --azure-rm-tenant-id $TENANT_ID
|
|
225
|
+
|
|
226
|
+
foreach ($env in $ENVIRONMENTS) {
|
|
227
|
+
$envUpper = $env.ToUpper()
|
|
228
|
+
az devops service-endpoint azurerm create --name "AZURE_SERVICE_CONNECTION_$envUpper" --azure-rm-service-principal-id $APP_ID --azure-rm-subscription-id $SUBSCRIPTION_ID --azure-rm-subscription-name $SUBSCRIPTION_NAME --azure-rm-tenant-id $TENANT_ID
|
|
229
|
+
}
|
|
230
|
+
\`\`\`
|
|
231
|
+
|
|
232
|
+
**Git Bash:**
|
|
233
|
+
\`\`\`bash
|
|
234
|
+
az devops service-endpoint azurerm create --name "AZURE_SERVICE_CONNECTION" --azure-rm-service-principal-id "$APP_ID" --azure-rm-subscription-id "$SUBSCRIPTION_ID" --azure-rm-subscription-name "$SUBSCRIPTION_NAME" --azure-rm-tenant-id "$TENANT_ID"
|
|
235
|
+
|
|
236
|
+
for env in "\${ENVIRONMENTS[@]}"; do
|
|
237
|
+
env_upper=$(echo "$env" | tr '[:lower:]' '[:upper:]')
|
|
238
|
+
az devops service-endpoint azurerm create --name "AZURE_SERVICE_CONNECTION_$env_upper" --azure-rm-service-principal-id "$APP_ID" --azure-rm-subscription-id "$SUBSCRIPTION_ID" --azure-rm-subscription-name "$SUBSCRIPTION_NAME" --azure-rm-tenant-id "$TENANT_ID"
|
|
239
|
+
done
|
|
240
|
+
\`\`\`
|
|
241
|
+
|
|
242
|
+
Clean up the environment variable:
|
|
189
243
|
|
|
190
|
-
|
|
244
|
+
**PowerShell:**
|
|
245
|
+
\`\`\`powershell
|
|
246
|
+
Remove-Item Env:AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY
|
|
247
|
+
\`\`\`
|
|
248
|
+
|
|
249
|
+
**Git Bash:**
|
|
250
|
+
\`\`\`bash
|
|
251
|
+
unset AZURE_DEVOPS_EXT_AZURE_RM_SERVICE_PRINCIPAL_KEY
|
|
252
|
+
\`\`\`
|
|
253
|
+
|
|
254
|
+
Verify (works in both shells):
|
|
255
|
+
\`\`\`bash
|
|
256
|
+
az devops service-endpoint list --query "[].name" -o table
|
|
257
|
+
\`\`\`
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Step 5: Create Variable Groups
|
|
262
|
+
|
|
263
|
+
Set target environment variables:
|
|
264
|
+
|
|
265
|
+
**PowerShell:**
|
|
266
|
+
\`\`\`powershell
|
|
267
|
+
$TARGET_SUBSCRIPTION_ID = "${subscriptionId}"
|
|
268
|
+
$TARGET_APIM_BASE_NAME = "<your-apim-base-name>"
|
|
269
|
+
$TARGET_RESOURCE_GROUP_BASE_NAME = "${resourceGroup}"
|
|
270
|
+
\`\`\`
|
|
271
|
+
|
|
272
|
+
**Git Bash:**
|
|
273
|
+
\`\`\`bash
|
|
274
|
+
TARGET_SUBSCRIPTION_ID="${subscriptionId}"
|
|
275
|
+
TARGET_APIM_BASE_NAME="<your-apim-base-name>"
|
|
276
|
+
TARGET_RESOURCE_GROUP_BASE_NAME="${resourceGroup}"
|
|
277
|
+
\`\`\`
|
|
278
|
+
|
|
279
|
+
Create the common variable group:
|
|
280
|
+
|
|
281
|
+
**PowerShell:**
|
|
282
|
+
\`\`\`powershell
|
|
283
|
+
az pipelines variable-group create --name "apim-common" --variables AZURE_SUBSCRIPTION_ID=$TARGET_SUBSCRIPTION_ID APIM_RESOURCE_GROUP=$TARGET_RESOURCE_GROUP_BASE_NAME APIM_SERVICE_NAME=$TARGET_APIM_BASE_NAME AZURE_SERVICE_CONNECTION="AZURE_SERVICE_CONNECTION"
|
|
284
|
+
\`\`\`
|
|
285
|
+
|
|
286
|
+
**Git Bash:**
|
|
287
|
+
\`\`\`bash
|
|
288
|
+
az pipelines variable-group create --name "apim-common" --variables AZURE_SUBSCRIPTION_ID="$TARGET_SUBSCRIPTION_ID" APIM_RESOURCE_GROUP="$TARGET_RESOURCE_GROUP_BASE_NAME" APIM_SERVICE_NAME="$TARGET_APIM_BASE_NAME" AZURE_SERVICE_CONNECTION="AZURE_SERVICE_CONNECTION"
|
|
289
|
+
\`\`\`
|
|
191
290
|
|
|
192
|
-
|
|
193
|
-
2. For each variable group, click "Pipeline permissions"
|
|
194
|
-
3. Allow the extract and publish pipelines to use these variable groups
|
|
291
|
+
Create environment-specific variable groups:
|
|
195
292
|
|
|
196
|
-
|
|
293
|
+
**PowerShell:**
|
|
294
|
+
\`\`\`powershell
|
|
295
|
+
foreach ($env in $ENVIRONMENTS) {
|
|
296
|
+
$envUpper = $env.ToUpper()
|
|
297
|
+
az pipelines variable-group create --name "apim-$env" --variables "APIM_RESOURCE_GROUP_$envUpper=\${TARGET_RESOURCE_GROUP_BASE_NAME}-$env" "APIM_SERVICE_NAME_$envUpper=\${TARGET_APIM_BASE_NAME}-$env" "AZURE_SERVICE_CONNECTION_$envUpper=AZURE_SERVICE_CONNECTION_$envUpper"
|
|
298
|
+
}
|
|
299
|
+
\`\`\`
|
|
300
|
+
|
|
301
|
+
**Git Bash:**
|
|
302
|
+
\`\`\`bash
|
|
303
|
+
for env in "\${ENVIRONMENTS[@]}"; do
|
|
304
|
+
env_upper=$(echo "$env" | tr '[:lower:]' '[:upper:]')
|
|
305
|
+
az pipelines variable-group create --name "apim-$env" --variables "APIM_RESOURCE_GROUP_$env_upper=\${TARGET_RESOURCE_GROUP_BASE_NAME}-$env" "APIM_SERVICE_NAME_$env_upper=\${TARGET_APIM_BASE_NAME}-$env" "AZURE_SERVICE_CONNECTION_$env_upper=AZURE_SERVICE_CONNECTION_$env_upper"
|
|
306
|
+
done
|
|
307
|
+
\`\`\`
|
|
197
308
|
|
|
198
|
-
|
|
309
|
+
Verify variable groups were created:
|
|
310
|
+
\`\`\`bash
|
|
311
|
+
az pipelines variable-group list --query "[].name" -o table
|
|
312
|
+
\`\`\`
|
|
199
313
|
|
|
200
|
-
|
|
201
|
-
2. Create new environment for each:
|
|
202
|
-
${environments.map((env) => ` - \`${env}\``).join('\n')}
|
|
203
|
-
3. Configure approvals and checks as needed for production environments
|
|
314
|
+
---
|
|
204
315
|
|
|
205
|
-
## Step 6:
|
|
316
|
+
## Step 6: Configure Pipeline Permissions
|
|
206
317
|
|
|
207
|
-
|
|
318
|
+
Authorize all pipelines to use the variable groups:
|
|
208
319
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
320
|
+
**PowerShell:**
|
|
321
|
+
\`\`\`powershell
|
|
322
|
+
$groupIds = az pipelines variable-group list --query "[].id" -o tsv
|
|
323
|
+
foreach ($id in $groupIds) {
|
|
324
|
+
az pipelines variable-group update --group-id $id --authorize true
|
|
325
|
+
}
|
|
326
|
+
\`\`\`
|
|
212
327
|
|
|
213
|
-
|
|
328
|
+
**Git Bash:**
|
|
329
|
+
\`\`\`bash
|
|
330
|
+
for id in $(az pipelines variable-group list --query "[].id" -o tsv); do
|
|
331
|
+
az pipelines variable-group update --group-id "$id" --authorize true
|
|
332
|
+
done
|
|
333
|
+
\`\`\`
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Step 7: Create Environments
|
|
338
|
+
|
|
339
|
+
Create deployment environments:
|
|
340
|
+
|
|
341
|
+
**PowerShell:**
|
|
342
|
+
\`\`\`powershell
|
|
343
|
+
foreach ($env in $ENVIRONMENTS) {
|
|
344
|
+
$body = @{ name = $env } | ConvertTo-Json -Compress
|
|
345
|
+
$body | Out-File -Encoding utf8 -FilePath env-body.json
|
|
346
|
+
az devops invoke --area environments --resource environments --route-parameters project=$AZDO_PROJECT --http-method POST --api-version 7.1 --in-file env-body.json
|
|
347
|
+
}
|
|
348
|
+
Remove-Item env-body.json -ErrorAction SilentlyContinue
|
|
349
|
+
\`\`\`
|
|
350
|
+
|
|
351
|
+
**Git Bash:**
|
|
352
|
+
\`\`\`bash
|
|
353
|
+
for env in "\${ENVIRONMENTS[@]}"; do
|
|
354
|
+
echo "{\\"name\\": \\"$env\\"}" > env-body.json
|
|
355
|
+
az devops invoke --area environments --resource environments --route-parameters project="$AZDO_PROJECT" --http-method POST --api-version 7.1 --in-file env-body.json
|
|
356
|
+
done
|
|
357
|
+
rm -f env-body.json
|
|
358
|
+
\`\`\`
|
|
359
|
+
|
|
360
|
+
**Note:** Environment approvals and checks must be configured via the Azure DevOps UI (Project Settings > Environments).
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## Step 8: Enable Pipeline Contributions
|
|
365
|
+
|
|
366
|
+
Grant the Build Service permission to contribute to the repository. This allows pipelines to push commits (e.g., extracted API artifacts).
|
|
367
|
+
|
|
368
|
+
First, get the project and repository IDs:
|
|
369
|
+
|
|
370
|
+
**PowerShell:**
|
|
371
|
+
\`\`\`powershell
|
|
372
|
+
$PROJECT_ID = az devops project show --project $AZDO_PROJECT --query id -o tsv
|
|
373
|
+
$REPO_NAME = $AZDO_PROJECT # Change if your repo name differs from project name
|
|
374
|
+
$REPO_ID = az repos show --repository $REPO_NAME --query id -o tsv
|
|
375
|
+
\`\`\`
|
|
376
|
+
|
|
377
|
+
**Git Bash:**
|
|
378
|
+
\`\`\`bash
|
|
379
|
+
PROJECT_ID=$(az devops project show --project "$AZDO_PROJECT" --query id -o tsv)
|
|
380
|
+
REPO_NAME="$AZDO_PROJECT" # Change if your repo name differs from project name
|
|
381
|
+
REPO_ID=$(az repos show --repository "$REPO_NAME" --query id -o tsv)
|
|
382
|
+
\`\`\`
|
|
383
|
+
|
|
384
|
+
Next, find the Build Service identity descriptor:
|
|
385
|
+
|
|
386
|
+
**PowerShell:**
|
|
387
|
+
\`\`\`powershell
|
|
388
|
+
$GRAPH_USERS = az devops invoke --area graph --resource users --query-parameters 'api-version=7.1-preview.1' --http-method GET -o json | ConvertFrom-Json
|
|
389
|
+
$BUILD_SERVICE_NAME = "$AZDO_PROJECT Build Service ($ORG_NAME)"
|
|
390
|
+
$BUILD_SERVICE_DESCRIPTOR = ($GRAPH_USERS.value | Where-Object { $_.displayName -eq $BUILD_SERVICE_NAME }).descriptor
|
|
391
|
+
\`\`\`
|
|
392
|
+
|
|
393
|
+
**Git Bash:**
|
|
394
|
+
\`\`\`bash
|
|
395
|
+
BUILD_SERVICE_NAME="$AZDO_PROJECT Build Service ($ORG_NAME)"
|
|
396
|
+
BUILD_SERVICE_DESCRIPTOR=$(az devops invoke --area graph --resource users --query-parameters 'api-version=7.1-preview.1' --http-method GET -o json | grep -B5 "\\"displayName\\": \\"$BUILD_SERVICE_NAME\\"" | grep '"descriptor"' | head -1 | cut -d'"' -f4)
|
|
397
|
+
\`\`\`
|
|
398
|
+
|
|
399
|
+
Finally, grant the Contribute permission (bit 4) on the repository:
|
|
400
|
+
|
|
401
|
+
**PowerShell:**
|
|
402
|
+
\`\`\`powershell
|
|
403
|
+
$GIT_REPOS_NAMESPACE = az devops security permission namespace list --query "[?name=='Git Repositories'].namespaceId" -o tsv
|
|
404
|
+
$TOKEN = "repoV2/$PROJECT_ID/$REPO_ID"
|
|
405
|
+
az devops security permission update --namespace-id $GIT_REPOS_NAMESPACE --subject $BUILD_SERVICE_DESCRIPTOR --token $TOKEN --allow-bit 4
|
|
406
|
+
\`\`\`
|
|
407
|
+
|
|
408
|
+
**Git Bash:**
|
|
409
|
+
\`\`\`bash
|
|
410
|
+
GIT_REPOS_NAMESPACE=$(az devops security permission namespace list --query "[?name=='Git Repositories'].namespaceId" -o tsv)
|
|
411
|
+
TOKEN="repoV2/$PROJECT_ID/$REPO_ID"
|
|
412
|
+
az devops security permission update --namespace-id "$GIT_REPOS_NAMESPACE" --subject "$BUILD_SERVICE_DESCRIPTOR" --token "$TOKEN" --allow-bit 4
|
|
413
|
+
\`\`\`
|
|
414
|
+
|
|
415
|
+
Verify the permission was set:
|
|
416
|
+
|
|
417
|
+
**PowerShell:**
|
|
418
|
+
\`\`\`powershell
|
|
419
|
+
az devops security permission show --namespace-id $GIT_REPOS_NAMESPACE --subject $BUILD_SERVICE_DESCRIPTOR --token $TOKEN --query "[].acesDictionary.*.resolvedPermissions" -o json
|
|
420
|
+
\`\`\`
|
|
421
|
+
|
|
422
|
+
**Git Bash:**
|
|
423
|
+
\`\`\`bash
|
|
424
|
+
az devops security permission show --namespace-id "$GIT_REPOS_NAMESPACE" --subject "$BUILD_SERVICE_DESCRIPTOR" --token "$TOKEN" --query "[].acesDictionary.*.resolvedPermissions" -o json
|
|
425
|
+
\`\`\`
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Step 9: Verify Setup
|
|
430
|
+
|
|
431
|
+
Verify all resources were created correctly:
|
|
432
|
+
|
|
433
|
+
**Service Connections:**
|
|
434
|
+
\`\`\`bash
|
|
435
|
+
az devops service-endpoint list --query "[].name" -o table
|
|
436
|
+
\`\`\`
|
|
437
|
+
|
|
438
|
+
**Variable Groups:**
|
|
439
|
+
\`\`\`bash
|
|
440
|
+
az pipelines variable-group list --query "[].name" -o table
|
|
441
|
+
\`\`\`
|
|
442
|
+
|
|
443
|
+
**Environments:**
|
|
444
|
+
|
|
445
|
+
**PowerShell:**
|
|
446
|
+
\`\`\`powershell
|
|
447
|
+
(az devops invoke --area environments --resource environments --route-parameters project=$AZDO_PROJECT --http-method GET --api-version 7.1 -o json | ConvertFrom-Json).value | Select-Object name
|
|
448
|
+
\`\`\`
|
|
449
|
+
|
|
450
|
+
**Git Bash:**
|
|
451
|
+
\`\`\`bash
|
|
452
|
+
az devops invoke --area environments --resource environments --route-parameters project="$AZDO_PROJECT" --http-method GET --api-version 7.1 -o json | grep -o '"name": *"[^"]*"' | cut -d'"' -f4
|
|
453
|
+
\`\`\`
|
|
454
|
+
|
|
455
|
+
**Service Principal Role Assignment:**
|
|
456
|
+
|
|
457
|
+
**PowerShell:**
|
|
458
|
+
\`\`\`powershell
|
|
459
|
+
az role assignment list --assignee $APP_ID --query "[].{Role:roleDefinitionName, Scope:scope}" -o table
|
|
460
|
+
\`\`\`
|
|
461
|
+
|
|
462
|
+
**Git Bash:**
|
|
463
|
+
\`\`\`bash
|
|
464
|
+
az role assignment list --assignee "$APP_ID" --query "[].{Role:roleDefinitionName, Scope:scope}" -o table
|
|
465
|
+
\`\`\`
|
|
466
|
+
|
|
467
|
+
**Final Test:** Run the extract pipeline manually to verify end-to-end authentication and permissions.
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## Step 10: Create Pipelines
|
|
472
|
+
|
|
473
|
+
Create Azure Pipelines from the YAML files in your repository.
|
|
474
|
+
|
|
475
|
+
**Prerequisites:** Ensure your pipeline YAML files are committed to the repository (e.g., \`azure-pipelines-extract.yml\`, \`azure-pipelines-publish.yml\`).
|
|
476
|
+
|
|
477
|
+
**Create Extract Pipeline:**
|
|
478
|
+
|
|
479
|
+
**PowerShell:**
|
|
480
|
+
\`\`\`powershell
|
|
481
|
+
az pipelines create --name "apiops-extract" --repository $REPO_NAME --branch main --yml-path "azure-pipelines-extract.yml" --repository-type tfsgit --skip-first-run true
|
|
482
|
+
\`\`\`
|
|
483
|
+
|
|
484
|
+
**Git Bash:**
|
|
485
|
+
\`\`\`bash
|
|
486
|
+
az pipelines create --name "apiops-extract" --repository "$REPO_NAME" --branch main --yml-path "azure-pipelines-extract.yml" --repository-type tfsgit --skip-first-run true
|
|
487
|
+
\`\`\`
|
|
488
|
+
|
|
489
|
+
**Create Publish Pipeline:**
|
|
490
|
+
|
|
491
|
+
**PowerShell:**
|
|
492
|
+
\`\`\`powershell
|
|
493
|
+
az pipelines create --name "apiops-publish" --repository $REPO_NAME --branch main --yml-path "azure-pipelines-publish.yml" --repository-type tfsgit --skip-first-run true
|
|
494
|
+
\`\`\`
|
|
495
|
+
|
|
496
|
+
**Git Bash:**
|
|
497
|
+
\`\`\`bash
|
|
498
|
+
az pipelines create --name "apiops-publish" --repository "$REPO_NAME" --branch main --yml-path "azure-pipelines-publish.yml" --repository-type tfsgit --skip-first-run true
|
|
499
|
+
\`\`\`
|
|
500
|
+
|
|
501
|
+
**Verify pipelines were created:**
|
|
502
|
+
\`\`\`bash
|
|
503
|
+
az pipelines list --query "[].name" -o table
|
|
504
|
+
\`\`\`
|
|
505
|
+
|
|
506
|
+
**Run the extract pipeline:**
|
|
507
|
+
|
|
508
|
+
**PowerShell:**
|
|
509
|
+
\`\`\`powershell
|
|
510
|
+
az pipelines run --name "apiops-extract"
|
|
511
|
+
\`\`\`
|
|
512
|
+
|
|
513
|
+
**Git Bash:**
|
|
514
|
+
\`\`\`bash
|
|
515
|
+
az pipelines run --name "apiops-extract"
|
|
516
|
+
\`\`\`
|
|
214
517
|
|
|
215
|
-
|
|
518
|
+
---
|
|
216
519
|
|
|
217
520
|
## Security Notes
|
|
218
521
|
- Use separate service principals for production environments
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-guide-service.js","sourceRoot":"","sources":["../../src/services/identity-guide-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,wBAAwB;IAC5B,0BAA0B,CACxB,cAAsB,EACtB,aAAqB,EACrB,YAAsB;QAEtB,OAAO;;;wBAGa,cAAc;oBAClB,aAAa;;;;;;;;;mBASd,cAAc;kBACf,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsD7B,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;;;0BAGF,GAAG;;oEAEuC,GAAG;;KAElE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;+BAUY,cAAc;;;EAG3C,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACpB,GAAG;0BACe,GAAG,CAAC,WAAW,EAAE,0BAA0B,GAAG;wBAChD,GAAG,CAAC,WAAW,EAAE,6BAA6B,GAAG;CACxE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;CAeZ,CAAC;IACA,CAAC;IAED,wBAAwB,CACtB,cAAsB,EACtB,aAAqB,EACrB,YAAsB;QAEtB,
|
|
1
|
+
{"version":3,"file":"identity-guide-service.js","sourceRoot":"","sources":["../../src/services/identity-guide-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,wBAAwB;IAC5B,0BAA0B,CACxB,cAAsB,EACtB,aAAqB,EACrB,YAAsB;QAEtB,OAAO;;;wBAGa,cAAc;oBAClB,aAAa;;;;;;;;;mBASd,cAAc;kBACf,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsD7B,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;;;0BAGF,GAAG;;oEAEuC,GAAG;;KAElE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;+BAUY,cAAc;;;EAG3C,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACpB,GAAG;0BACe,GAAG,CAAC,WAAW,EAAE,0BAA0B,GAAG;wBAChD,GAAG,CAAC,WAAW,EAAE,6BAA6B,GAAG;CACxE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;CAeZ,CAAC;IACA,CAAC;IAED,wBAAwB,CACtB,cAAsB,EACtB,aAAqB,EACrB,YAAsB;QAEtB,MAAM,2BAA2B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,qBAAqB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1E,OAAO;;;wBAGa,cAAc;oBAClB,aAAa;;;;;;;;;;;;sBAYX,cAAc;qBACf,aAAa;;oBAEd,2BAA2B;;;;;mBAK5B,cAAc;kBACf,aAAa;;gBAEf,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAwHR,cAAc;;sCAEL,aAAa;;;;;0BAKzB,cAAc;;mCAEL,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0P/C,CAAC;IACA,CAAC;CACF;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAyB,IAAI,wBAAwB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-service.d.ts","sourceRoot":"","sources":["../../src/services/init-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA6BjD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAClD;
|
|
1
|
+
{"version":3,"file":"init-service.d.ts","sourceRoot":"","sources":["../../src/services/init-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA6BjD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAClD;AA8XD,eAAO,MAAM,WAAW,EAAE,WAAmC,CAAC"}
|
|
@@ -22,8 +22,10 @@ const PLACEHOLDER_RESOURCE_GROUP = '<your-resource-group>';
|
|
|
22
22
|
class InitServiceImpl {
|
|
23
23
|
async run(config) {
|
|
24
24
|
logger.info('Starting APIM repository initialization...');
|
|
25
|
-
// Validate that the CLI package tarball exists
|
|
26
|
-
|
|
25
|
+
// Validate that the CLI package tarball exists (only if provided)
|
|
26
|
+
if (config.cliPackage) {
|
|
27
|
+
await this.validateCliPackage(config.cliPackage);
|
|
28
|
+
}
|
|
27
29
|
// Gather configuration (interactive or from flags)
|
|
28
30
|
const finalConfig = await this.gatherConfiguration(config);
|
|
29
31
|
logger.debug('Final configuration:', finalConfig);
|
|
@@ -167,16 +169,23 @@ class InitServiceImpl {
|
|
|
167
169
|
const gitkeepPath = path.join(artifactPath, '.gitkeep');
|
|
168
170
|
await fs.writeFile(gitkeepPath, '');
|
|
169
171
|
generatedFiles.directories.push(config.artifactDir);
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
172
|
+
// Generate package.json - mode depends on whether cliPackage is provided
|
|
173
|
+
let packageJsonContent;
|
|
174
|
+
if (config.cliPackage) {
|
|
175
|
+
// Local tarball mode: copy tarball and reference via file: dependency
|
|
176
|
+
const apiopsDir = path.join(config.outputDir, '.apiops');
|
|
177
|
+
await fs.mkdir(apiopsDir, { recursive: true });
|
|
178
|
+
const tarballFilename = path.basename(config.cliPackage);
|
|
179
|
+
const tarballDest = path.join(apiopsDir, tarballFilename);
|
|
180
|
+
await fs.copyFile(path.resolve(config.cliPackage), tarballDest);
|
|
181
|
+
generatedFiles.directories.push('.apiops');
|
|
182
|
+
const tarballRelPath = path.join('.apiops', tarballFilename);
|
|
183
|
+
packageJsonContent = generatePackageJson({ mode: 'local', tarballRelPath });
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
// Public npm mode: use registry package
|
|
187
|
+
packageJsonContent = generatePackageJson({ mode: 'npm' });
|
|
188
|
+
}
|
|
180
189
|
const packageJsonPath = path.join(config.outputDir, 'package.json');
|
|
181
190
|
await fs.writeFile(packageJsonPath, packageJsonContent);
|
|
182
191
|
generatedFiles.configs.push('package.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-service.js","sourceRoot":"","sources":["../../src/services/init-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init-service.js","sourceRoot":"","sources":["../../src/services/init-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { logger } from '../lib/logger.js';
|
|
|
10
10
|
import { isAutoGeneratedId } from '../lib/auto-generated.js';
|
|
11
11
|
import { EXIT_SUCCESS, EXIT_PARTIAL, EXIT_FATAL } from '../lib/exit-codes.js';
|
|
12
12
|
import { buildResourceLabel } from '../lib/resource-uri.js';
|
|
13
|
-
import { getNamePart, isChildType } from '../lib/resource-path.js';
|
|
13
|
+
import { getNamePart, isChildType, isTopLevelSingleton } from '../lib/resource-path.js';
|
|
14
14
|
// Import from other agents' files (will be created in parallel)
|
|
15
15
|
import { publishResource } from './resource-publisher.js';
|
|
16
16
|
import { publishApi } from './api-publisher.js';
|
|
@@ -118,6 +118,11 @@ async function executePuts(client, store, context, config, targetDescriptors) {
|
|
|
118
118
|
// so we exclude those children from tiers 3/4 to avoid double-publishing.
|
|
119
119
|
const parentNamesByType = new Map();
|
|
120
120
|
for (const d of tierGroups.get(2) || []) {
|
|
121
|
+
// Top-level singletons such as ServicePolicy do not participate in
|
|
122
|
+
// parent-name child filtering.
|
|
123
|
+
if (isTopLevelSingleton(d.type)) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
121
126
|
// Top-level types are those that are NOT child types
|
|
122
127
|
if (!isChildType(d.type)) {
|
|
123
128
|
if (!parentNamesByType.has(d.type)) {
|