Skip to content

Commit b327e63

Browse files
authored
Merge pull request #247 from Azure/docs/233-document-apic
chore: release v1.0.0 with API Center documentation
2 parents f897cc8 + 82bd4ad commit b327e63

6 files changed

Lines changed: 139 additions & 5 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,31 @@ All notable changes to the APIOps CLI are documented in this file.
55
The format is inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66
This project uses [Semantic Versioning](https://semver.org/) with alpha pre-release tags.
77

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+
833
## [0.4.0-alpha.2] — 2026-07-02
934

1035
### Bug Fixes
@@ -166,6 +191,7 @@ This project uses [Semantic Versioning](https://semver.org/) with alpha pre-rele
166191
- **Initial release** — core extract, publish, and init commands for Azure API Management ([#15](https://github.com/Azure/apiops-cli/pull/15))
167192
- **CodeQL analysis** — automated security scanning workflow ([#19](https://github.com/Azure/apiops-cli/pull/19))
168193

194+
[1.0.0]: https://github.com/Azure/apiops-cli/compare/v0.4.0-alpha.2...v1.0.0
169195
[0.4.0-alpha.2]: https://github.com/Azure/apiops-cli/compare/v0.4.0-alpha.0...v0.4.0-alpha.2
170196
[0.4.0-alpha.0]: https://github.com/Azure/apiops-cli/compare/v0.3.0-alpha.0...v0.4.0-alpha.0
171197
[0.3.0-alpha.0]: https://github.com/Azure/apiops-cli/compare/v0.2.1-alpha.0...v0.3.0-alpha.0

‎README.md‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,30 @@ apiops init \
132132
--environments dev,prod
133133
```
134134

135+
### `apiops apic`
136+
137+
Back up and restore Azure API Center (`Microsoft.ApiCenter`) services. This command group is separate from the Azure API Management `extract` and `publish` commands.
138+
139+
| Command | Description |
140+
|---------|-------------|
141+
| `apiops apic extract` | Extract API Center configuration and API definition specifications to `./apic-artifacts` |
142+
| `apiops apic publish` | Publish API Center artifacts and specifications to an API Center service |
143+
144+
```bash
145+
# Back up an API Center service
146+
apiops apic extract \
147+
--resource-group <rg> \
148+
--service-name <name>
149+
150+
# Preview a restore without applying changes
151+
apiops apic publish \
152+
--resource-group <rg> \
153+
--service-name <name> \
154+
--dry-run
155+
```
156+
157+
See the [`apiops apic` command reference](docs/commands/apic.md) for flags, workspace extraction, and specification options.
158+
135159
## Global options
136160

137161
| Option | Default | Description |

‎docs/README.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
| Guide | Description |
88
|-------|-------------|
99
| [Getting Started](getting-started.md) | Install and run your first extract → publish cycle in 10 minutes |
10-
| [Command Reference](commands/) | Detailed docs for [extract](commands/extract.md), [publish](commands/publish.md), [init](commands/init.md) |
10+
| [Command Reference](commands/) | Detailed docs for [extract](commands/extract.md), [publish](commands/publish.md), [init](commands/init.md), and [API Center backup/restore](commands/apic.md) |
1111
| [CI/CD Integration](ci-cd/) | Set up [GitHub Actions](ci-cd/github-actions.md) or [Azure DevOps](ci-cd/azure-devops.md) pipelines |
1212
| [Walkthroughs](walkthrough/) | Step-by-step guides: [Air-gapped GitHub Actions](walkthrough/air-gapped-github-actions.md) (local registry or offline tarball), [Air-gapped Azure DevOps](walkthrough/air-gapped-azure-devops.md) (local registry or offline tarball) |
1313

@@ -42,6 +42,7 @@ Requires Node.js 22 or later.
4242
- **Incremental publish** — Deploy only changed resources via git diff
4343
- **Dry-run mode** — Preview changes before applying them
4444
- **CI/CD scaffolding** — `apiops init` generates GitHub Actions or Azure DevOps pipelines
45+
- **API Center backup and restore** — `apiops apic` extracts and publishes Azure API Center resources and specifications
4546
- **Token substitution** — Replace `{#[TOKEN_NAME]#}` placeholders in config files with pipeline secrets before publish
4647
- **Multiple auth methods** — Azure CLI, managed identity, workload identity (OIDC), service principal
4748

@@ -54,7 +55,8 @@ docs/
5455
├── commands/
5556
│ ├── extract.md — apiops extract reference
5657
│ ├── publish.md — apiops publish reference
57-
│ └── init.md — apiops init reference
58+
│ ├── init.md — apiops init reference
59+
│ └── apic.md — apiops apic reference
5860
├── guides/
5961
│ ├── scenarios-and-workflows.md — Portal-first vs code-first workflows
6062
│ ├── authentication.md — Auth methods for local dev and CI/CD

‎docs/commands/apic.md‎

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# apiops apic
2+
3+
Back up and restore Azure API Center (`Microsoft.ApiCenter`) service configuration. The `apic` command group operates on Azure API Center; use [`apiops extract`](extract.md) and [`apiops publish`](publish.md) for Azure API Management services.
4+
5+
## Extract
6+
7+
Extract API Center resources and API definition specifications to local artifacts.
8+
9+
```bash
10+
apiops apic extract --resource-group <rg> --service-name <name> [options]
11+
```
12+
13+
### Examples
14+
15+
```bash
16+
# Extract the complete service
17+
apiops apic extract \
18+
--subscription-id 00000000-0000-0000-0000-000000000000 \
19+
--resource-group my-rg \
20+
--service-name my-api-center
21+
22+
# Extract one workspace without downloading specifications
23+
apiops apic extract \
24+
--resource-group my-rg \
25+
--service-name my-api-center \
26+
--workspace engineering \
27+
--output ./backups/api-center \
28+
--no-specifications
29+
```
30+
31+
### Flags
32+
33+
| Flag | Type | Default | Required | Description |
34+
|------|------|---------|----------|-------------|
35+
| `--resource-group <rg>` | string | — | Yes | Azure resource group name |
36+
| `--service-name <name>` | string | — | Yes | API Center service instance name |
37+
| `--workspace <name>` | string | — | No | Restrict extraction to one workspace |
38+
| `--output <dir>` | string | `./apic-artifacts` | No | Output directory path |
39+
| `--no-specifications` | boolean | false | No | Skip exporting API definition specifications |
40+
41+
## Publish
42+
43+
Publish local API Center artifacts and API definition specifications to a service.
44+
45+
```bash
46+
apiops apic publish --resource-group <rg> --service-name <name> [options]
47+
```
48+
49+
### Examples
50+
51+
```bash
52+
# Preview the restore
53+
apiops apic publish \
54+
--resource-group my-rg \
55+
--service-name my-api-center \
56+
--source ./backups/api-center \
57+
--dry-run
58+
59+
# Publish resources without importing specifications
60+
apiops apic publish \
61+
--resource-group my-rg \
62+
--service-name my-api-center \
63+
--no-specifications
64+
```
65+
66+
### Flags
67+
68+
| Flag | Type | Default | Required | Description |
69+
|------|------|---------|----------|-------------|
70+
| `--resource-group <rg>` | string | — | Yes | Azure resource group name |
71+
| `--service-name <name>` | string | — | Yes | API Center service instance name |
72+
| `--source <dir>` | string | `./apic-artifacts` | No | Source directory containing artifacts |
73+
| `--dry-run` | boolean | false | No | Preview changes without applying them |
74+
| `--no-specifications` | boolean | false | No | Skip importing API definition specifications |
75+
76+
## Global Flags
77+
78+
Both subcommands inherit the CLI's global flags, including `--subscription-id`, `--cloud`, `--log-level`, `--format`, and service-principal authentication options. The subscription can also be supplied through `AZURE_SUBSCRIPTION_ID`.
79+
80+
Authentication uses the same `DefaultAzureCredential` chain as the APIM commands. See the [authentication guide](../guides/authentication.md) for supported local and CI/CD authentication methods.
81+
82+
Use `--format json` for machine-readable results. Exit codes follow the shared [CLI exit-code contract](../reference/exit-codes.md).

‎package-lock.json‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@azure-tools/apiops-cli",
3-
"version": "0.4.0-alpha.2",
3+
"version": "1.0.0",
44
"schemaVersion": "1",
55
"description": "CLI tool for Azure API Management configuration-as-code",
66
"type": "module",

0 commit comments

Comments
 (0)