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
### 2026-04-29: Dual-Mode Init — Public npm vs Local Tarball
124
124
125
-
**Problem:** After publishing `@peterhauge/apiops-cli` to npm, `apiops init` still required `--cli-package <path>` pointing to a local .tgz tarball, making the workflow cumbersome for users who just want to use the public package.
125
+
**Problem:** After publishing `@azure-tools/apiops-cli` to npm, `apiops init` still required `--cli-package <path>` pointing to a local .tgz tarball, making the workflow cumbersome for users who just want to use the public package.
126
126
127
127
**Solution:** Made `--cli-package` optional and implemented two modes:
**What:** Made `--cli-package` optional in `apiops init`. The command now supports two package consumption modes: (1) **Public npm mode** (default, when `--cli-package` NOT provided): generates package.json with `"@peterhauge/apiops-cli": "latest"`, no local tarball copy, no `.apiops/` directory created, standard consumption pattern after npm publish. (2) **Local tarball mode** (when `--cli-package <path>` provided): copies tarball to `.apiops/` directory, generates package.json with `"apiops": "file:.apiops/{tarball}"`, preserves existing behavior for local development/testing.
132
-
**Why:** After publishing to npm as `@peterhauge/apiops-cli`, requiring users to download the package and run `apiops init --cli-package ./tarball.tgz` added unnecessary friction. Most users want to reference the public package directly. The change is backward compatible — existing workflows with `--cli-package` continue to work unchanged. Improves user experience with simpler onboarding.
131
+
**What:** Made `--cli-package` optional in `apiops init`. The command now supports two package consumption modes: (1) **Public npm mode** (default, when `--cli-package` NOT provided): generates package.json with `"@azure-tools/apiops-cli": "latest"`, no local tarball copy, no `.apiops/` directory created, standard consumption pattern after npm publish. (2) **Local tarball mode** (when `--cli-package <path>` provided): copies tarball to `.apiops/` directory, generates package.json with `"apiops": "file:.apiops/{tarball}"`, preserves existing behavior for local development/testing.
132
+
**Why:** After publishing to npm as `@azure-tools/apiops-cli`, requiring users to download the package and run `apiops init --cli-package ./tarball.tgz` added unnecessary friction. Most users want to reference the public package directly. The change is backward compatible — existing workflows with `--cli-package` continue to work unchanged. Improves user experience with simpler onboarding.
133
133
134
134
### 2026-04-21T19:35:00Z: SOAP/WADL spec extraction prefers link format with inline XML fallback
135
135
**By:** ApimExpert (via Squad session with a user)
Copy file name to clipboardExpand all lines: CHANGELOG.md
+27-1Lines changed: 27 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,31 @@ All notable changes to the APIOps CLI are documented in this file.
5
5
The format is inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
This project uses [Semantic Versioning](https://semver.org/) with alpha pre-release tags.
7
7
8
+
## [1.0.0] — 2026-08-27
9
+
10
+
### Breaking Changes
11
+
12
+
-**npm package moved to the Microsoft-owned scope** — install `@azure-tools/apiops-cli` instead of `@peterhauge/apiops-cli`; generated repositories, pipelines, documentation, and tarball names now use the new package name ([#239](https://github.com/Azure/apiops-cli/pull/239))
13
+
14
+
### Features
15
+
16
+
-**Azure API Center backup and restore** — new `apiops apic extract` and `apiops apic publish` commands round-trip API Center resources and API definition specifications ([#232](https://github.com/Azure/apiops-cli/pull/232))
17
+
-**Filter exclusions** — filter entries can use a leading `!` to exclude exact names or wildcard patterns, including inside API and workspace sub-filters ([#222](https://github.com/Azure/apiops-cli/pull/222))
18
+
-**Stale artifact cleanup** — `apiops extract --remove-stale` safely reconciles managed artifacts after a fully successful extraction, with generated pipelines opting into cleanup ([#246](https://github.com/Azure/apiops-cli/pull/246))
19
+
20
+
### Bug Fixes
21
+
22
+
-**Service-level policy filtering** — extraction now honors the `policies` filter for the service policy and documents the supported nested filter syntax ([#221](https://github.com/Azure/apiops-cli/pull/221))
23
+
-**Operation schema links and dynamic authorization policies** — publishing preserves schema-bound OpenAPI request and response representations, while extraction no longer redacts dynamic `Authorization` policy expressions as secrets ([#239](https://github.com/Azure/apiops-cli/pull/239))
24
+
-**HTTP 200 asynchronous updates** — trusted ARM async-operation responses are polled to completion even when the initial APIM response is HTTP 200 ([#243](https://github.com/Azure/apiops-cli/pull/243))
25
+
-**GitHub secret preservation** — identity setup inventories existing repository and environment secrets and requires an explicit reuse, rename, or overwrite decision ([#244](https://github.com/Azure/apiops-cli/pull/244))
26
+
27
+
### Docs & Testing
28
+
29
+
-**Azure DevOps pipeline samples** — pipeline examples now live under `samples/pipelines/azure-devops` ([#241](https://github.com/Azure/apiops-cli/pull/241))
30
+
-**Filter documentation alignment** — README and filter guides now cover wildcard exclusions, the singleton policy key, and supported nested API filter syntax ([#242](https://github.com/Azure/apiops-cli/pull/242))
31
+
-**API Center command reference** — README and command documentation now describe `apiops apic` discovery, flags, defaults, examples, authentication, and output behavior ([#247](https://github.com/Azure/apiops-cli/pull/247))
32
+
8
33
## [0.4.0-alpha.2] — 2026-07-02
9
34
10
35
### Bug Fixes
@@ -140,7 +165,7 @@ This project uses [Semantic Versioning](https://semver.org/) with alpha pre-rele
140
165
### Features
141
166
142
167
-**Azure DevOps `init`** — interactive Copilot prompt with managed identity / WIF support ([#31](https://github.com/Azure/apiops-cli/pull/31))
143
-
-**Public npm registry support** — install directly from `@peterhauge/apiops-cli` on npmjs.com ([#28](https://github.com/Azure/apiops-cli/pull/28))
168
+
-**Public npm registry support** — install directly from `@azure-tools/apiops-cli` on npmjs.com ([#28](https://github.com/Azure/apiops-cli/pull/28))
144
169
145
170
### Bug Fixes
146
171
@@ -166,6 +191,7 @@ This project uses [Semantic Versioning](https://semver.org/) with alpha pre-rele
166
191
-**Initial release** — core extract, publish, and init commands for Azure API Management ([#15](https://github.com/Azure/apiops-cli/pull/15))
Filter files support exact names, wildcards, quoted `!`-prefixed exclusions, and the singleton `policies` key. See the [extract command filter reference](docs/commands/extract.md#filter-configuration) for all 17 filter keys and the [filtering guide](docs/guides/filtering-resources.md) for detailed examples.
52
+
51
53
```bash
52
54
apiops extract --help
53
55
@@ -143,6 +145,30 @@ apiops init \
143
145
--environments dev,prod
144
146
```
145
147
148
+
### `apiops apic`
149
+
150
+
Back up and restore Azure API Center (`Microsoft.ApiCenter`) services. This command group is separate from the Azure API Management `extract` and `publish` commands.
151
+
152
+
| Command | Description |
153
+
|---------|-------------|
154
+
|`apiops apic extract`| Extract API Center configuration and API definition specifications to `./apic-artifacts`|
155
+
|`apiops apic publish`| Publish API Center artifacts and specifications to an API Center service |
156
+
157
+
```bash
158
+
# Back up an API Center service
159
+
apiops apic extract \
160
+
--resource-group <rg> \
161
+
--service-name <name>
162
+
163
+
# Preview a restore without applying changes
164
+
apiops apic publish \
165
+
--resource-group <rg> \
166
+
--service-name <name> \
167
+
--dry-run
168
+
```
169
+
170
+
See the [`apiops apic` command reference](docs/commands/apic.md) for flags, workspace extraction, and specification options.
0 commit comments