Releases: Azure/apiops
APIOps Toolkit for Azure APIM v7.0.0-alpha.2.0.0
Added
- Added unit tests for the extractor and publisher.
- We now support a dry-run option for the publisher (#754). It will process files normally but not make any changes to APIM. This is useful for validating configurations and previewing changes before executing them. This is disabled by default, but you can control this by:
- Setting the
DRY_RUNconfiguration value totrue | false - Passing
--dry-runto the publisher executable. This naked flag enables dry run mode. - Passing
--dry-run true|falseto the publisher executable.
- Setting the
- The publisher now attempts to validate resource state before making changes to APIM. This reduces the chances of failing mid-run because of an issue that could have been caught earlier. Specifically, it checks that:
- Resources don't have cyclical relationships (e.g.
subscription Adepends ongroup Bwhich depends onAPI Cwhich depends onsubscription A). This shouldn't happen if teams rely on the extractor, but code-first deployments or editing the extracted JSON incorrectly can cause this. - Resources aren't missing predecessors. For example, let's say we put
policy Athat usesnamed value B. The publisher will check whethernamed value Bis also in source control. If the predecessor is missing:- If the configuration
STRICT_VALIDATIONis set totrue, then the publisher will throw an error. - Otherwise, the publisher will log a warning saying that the named value was not found in source. This allows for scenarios where different teams manage different resources (maybe another team is responsible for managing named values).
- If the configuration
- Resources don't have cyclical relationships (e.g.
Fixed
- Fixed a bug when publishing workspace API revisions
Full Changelog: v7.0.0-alpha.1.0.4...v7.0.0-alpha.2.0.0
APIOps Toolkit for Azure APIM v7.0.0-alpha.1.0.4
Full Changelog: v7.0.0-alpha.1.0.3...v7.0.0-alpha.1.0.4
APIOps Toolkit for Azure APIM v7.0.0-alpha.1.0.3
Fixes #802
APIOps Toolkit for Azure APIM v7.0.0-alpha.1.0.2
Fix for #760
APIOps Toolkit for Azure APIM v7.0.0-alpha.1.0.1
What's new
Better ID references
Many APIM resources reference others through IDs. For example, here is a diagnostic that references a logger through the loggerId property:
{
"properties": {
...
"loggerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/loggers/azuremonitor"
...
}
}If we publish this diagnostic as-is to another APIM instance, the publisher will fail. The logger reference is specific to APIM instance apimService1 in resource group rg1 and subscription 00000000-0000-0000-0000-000000000000. To work around this, we have to edit the JSON or override the publisher configuration to reference the new APIM instance.
As of v7, the extractor will use relative references where possible. In the above scenario, it will write loggerId: "/loggers/azuremonitor". This relative reference will work when publishing across instances.
Note
This change was manually implemented across resources. We're not aware of a way to ask the APIM REST API to return relative references. Some resources may have been missed. If you'd like to request that we add a missed resource, please raise an issue.
Nested configuration
We now support nested levels of configuration for the extractor and publisher. This allows the configuration of child resources (e.g. api operations, workspace api diagnostics, etc).
Sample extractor configuration
Only operations 1 and 2 will be extracted in api 1. All operations in api 2 will be extracted.
apis:
- api1:
operations:
- operation1
- operation2
- api2
...Sample publisher configuration
The display name of diagnostic 3 in api 2 in workspace 1 will be overriden with my display name.
workspaces:
- workspace1:
apis:
- api2:
diagnostics:
- diagnostic3:
properties:
displayName: my display name
...Empty configuration in extractor
Previously, if we wanted to skip extracting all resources of a type, we had to put a random placeholder value (e.g. ignore). We now support the more intuitive [].
Before
apis: ignore # Workaround to skip extracting all APIs.After
apis: [] # All APIs will be skipped.Breaking changes
New section names in extractor configuration
We've made the section names in the extractor and publisher identical. This provides a more consistent experience and greatly simplifies code maintenance.
Before (extractor configuration)
apiNames:
- api1
- api2
productNames:
- product1
- product2After (extractor configuration)
apis:
- api1
- api2
products:
- product1
- product2APIOps Toolkit for Azure APIM v6.0.2
What's Changed
Full Changelog: v6.0.1.10...v6.0.2
APIOps Toolkit for Azure APIM v6.0.1.10
What's Changed
Full Changelog: v6.0.1.9...v6.0.1.10
APIOps Toolkit for Azure APIM v6.0.1.9
What's Changed
Full Changelog: v6.0.1.8...v6.0.1.9
APIOps Toolkit for Azure APIM v6.0.1.8
What's Changed
- Bump nokogiri from 1.18.4 to 1.18.9 in /docs by @dependabot[bot] in #772
- Update apiops-2-2-tools-publisher.md - replace tokens #776 by @Chad-Dumas-MSFT in #781
- Added support for latest version of Azure Powershell by @sergiopadure in #782
- Pass GitHub SHA to publisher by @wagnerb3 in #780
New Contributors
- @Chad-Dumas-MSFT made their first contribution in #781
- @sergiopadure made their first contribution in #782
- @wagnerb3 made their first contribution in #780
Full Changelog: v6.0.1.7...v6.0.1.8
APIOps Toolkit for Azure APIM v6.0.1.7
What's Changed
- Feature/issue 599/add version to output by @zcarroll4 in #750
Full Changelog: v6.0.1.6...v6.0.1.7