You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: align filter and override config formats with APIOps Toolkit
- Rename filter config keys from *Names suffix to bare camelCase plurals
(e.g., apiNames -> apis, backendNames -> backends, versionSetNames -> versionSets)
to match the Toolkit's configuration.extractor.yaml schema
- Rename filter config filename from configuration.extract.yaml to
configuration.extractor.yaml across templates, CI/CD workflows, and docs
- Add graceful handling for apimServiceName in override config (Toolkit
uses this for target APIM instance; CLI logs info and ignores it)
- Override config format already aligned (same section names and
properties wrapper structure as Toolkit)
- Update all 13 test files, 7 docs, CI/CD templates, and specs
Closes#114
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/ci-cd/azure-devops.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ The extract pipeline pulls configuration from your APIM instance, publishes the
43
43
44
44
| Parameter | Type | Default | Description |
45
45
|-----------|------|---------|-------------|
46
-
|`CONFIGURATION_YAML_PATH`| string |`Extract All APIs`| Choose `Extract All APIs` for a full extract, or `configuration.extract.yaml` to use a [filter file](../guides/filtering-resources.md)|
46
+
|`CONFIGURATION_YAML_PATH`| string |`Extract All APIs`| Choose `Extract All APIs` for a full extract, or `configuration.extractor.yaml` to use a [filter file](../guides/filtering-resources.md)|
47
47
|`resourceGroup`| string |`$(APIM_RESOURCE_GROUP)`| Azure resource group containing your APIM instance |
48
48
|`serviceName`| string |`$(APIM_SERVICE_NAME)`| Name of the APIM service instance |
49
49
@@ -55,7 +55,7 @@ flowchart TD
55
55
B --> C[npm ci]
56
56
C --> D{Configuration choice?}
57
57
D -->|Extract All APIs| E[apiops extract --resource-group ... --service-name ...]
58
-
D -->|configuration.extract.yaml| F[apiops extract ... --filter configuration.extract.yaml]
58
+
D -->|configuration.extractor.yaml| F[apiops extract ... --filter configuration.extractor.yaml]
59
59
E --> G[Publish pipeline artifact]
60
60
F --> G
61
61
G --> H[Create branch apim-extract-BuildId]
@@ -92,7 +92,7 @@ The key task is `AzureCLI@2`, which authenticates using your service connection:
92
92
--subscription-id $(AZURE_SUBSCRIPTION_ID)
93
93
```
94
94
95
-
When the filter option is selected, `--filter configuration.extract.yaml` is added to the command.
95
+
When the filter option is selected, `--filter configuration.extractor.yaml` is added to the command.
96
96
97
97
> **Why AzureCLI@2?** This task injects Azure credentials into the shell environment, allowing `apiops extract` to authenticate via `DefaultAzureCredential`. See [Authentication Guide](../guides/authentication.md).
@@ -183,33 +183,33 @@ Transitive dependencies (backends, named values, policy fragments) are auto-incl
183
183
Extract everything associated with a product:
184
184
185
185
```yaml
186
-
# configuration.extract.yaml
187
-
productNames:
186
+
# configuration.extractor.yaml
187
+
products:
188
188
- enterprise
189
189
```
190
190
191
-
> **Note:** Filtering by `productNames` extracts the product definition and its associations, but does **not** transitively include the APIs in that product. To include the APIs, add them to `apiNames` as well.
191
+
> **Note:** Filtering by `products` extracts the product definition and its associations, but does **not** transitively include the APIs in that product. To include the APIs, add them to `apis` as well.
192
192
193
193
### Shared Infrastructure Team
194
194
195
195
A platform team managing cross-cutting resources:
196
196
197
197
```yaml
198
-
# configuration.extract.yaml
199
-
namedValueNames:
198
+
# configuration.extractor.yaml
199
+
namedValues:
200
200
- global-api-key
201
201
- rate-limit-threshold
202
202
- cors-allowed-origins
203
203
204
-
policyFragmentNames:
204
+
policyFragments:
205
205
- standard-rate-limit
206
206
- cors-policy
207
207
- auth-validation
208
208
209
-
loggerNames:
209
+
loggers:
210
210
- appinsights-logger
211
211
212
-
backendNames:
212
+
backends:
213
213
- identity-service
214
214
```
215
215
@@ -222,7 +222,7 @@ There is no "exclude" syntax. To extract everything except certain resources, li
222
222
## Tips
223
223
224
224
- **Start broad, narrow later** — Begin with no filter to see what's in your APIM instance, then create a filter for your team's slice
225
-
- **One filter per team** — In multi-team setups, each team maintains its own `configuration.extract.yaml`
225
+
- **One filter per team** — In multi-team setups, each team maintains its own `configuration.extractor.yaml`
226
226
- **Commit the filter file** — Keep it in version control alongside your artifacts so CI/CD pipelines can use it
227
227
- **Case-sensitive names** — Filter values must match APIM resource names exactly (usually lowercase with hyphens)
228
228
- **Validate early** — The config loader validates that each filter field is an array of strings and will throw `Failed to load filter config` on invalid YAML
For example, if `AZURE_SUBSCRIPTION_ID` is set as an environment variable but `--subscription-id` is also passed on the command line, the CLI flag wins.
@@ -109,16 +109,16 @@ See [Authentication Guide](../guides/authentication.md) for details on each auth
109
109
110
110
### Filter Configuration
111
111
112
-
**File:**`configuration.extract.yaml` (or any path passed to `--filter`)
112
+
**File:**`configuration.extractor.yaml` (or any path passed to `--filter`)
113
113
114
114
Controls which resources are extracted. See [Filtering Resources](../guides/filtering-resources.md) for the full reference.
0 commit comments