Skip to content

Commit 14cf917

Browse files
authored
Merge pull request #94 from Azure/copilot/update-apiops-terminology
docs: replace "APIOps v1/v2" terminology with "APIOps Toolkit/CLI"
2 parents 805b9bf + 566a574 commit 14cf917

4 files changed

Lines changed: 50 additions & 45 deletions

File tree

docs/plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ This section identifies content in `specs/` that should be adapted for user-faci
439439
| `specs/spec.md` | Product specification — internal design document, not user-facing. |
440440
| `specs/tasks.md` | Task tracking — project management artifact, not user documentation. |
441441
| `specs/research.md` | Internal research on API client patterns and alternatives considered. Useful for contributors but not end users. |
442-
| `specs/v1-research-report.md` | Internal analysis of v1 APIOps toolkit. Useful reference material for writing `guides/migration-from-v1.md` but not directly publishable. Keep as source material. |
442+
| `specs/v1-research-report.md` | Internal analysis of APIOps Toolkit. Useful reference material for writing `guides/migration-from-v1.md` but not directly publishable. Keep as source material. |
443443
| `specs/checklists/` | Requirements checklists — project artifacts, not user-facing. |
444444
| `specs/contracts/` | Interface contracts (cli-commands.md, iapim-client.md, iartifact-store.md) — internal API design, not user documentation. |
445445

specs/APIM-RestAPI-Coverage.md

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
**API Version**: 2024-05-01 | **Date**: 2026-04-06
44

5-
Comprehensive mapping of all APIM REST API resource types against v1 APIOps coverage, v2 APIOps planned coverage, and rationale for inclusion/exclusion.
5+
Comprehensive mapping of all APIM REST API resource types against APIOps Toolkit coverage, APIOps CLI planned coverage, and rationale for inclusion/exclusion.
6+
7+
## Definitions
8+
9+
- **APIOps Toolkit** — the original, community-maintained APIOps solution built on Azure Pipelines / GitHub Actions workflows. Source: <https://github.com/Azure/apiops>
10+
- **APIOps CLI** — the newer, standalone command-line tool that replaces the Toolkit with a more general-purpose, technology-agnostic approach. Source: <https://github.com/Azure/apiops-cli>
611

712
## Legend
813

@@ -14,9 +19,9 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
1419

1520
## Service-Level Resources
1621

17-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
18-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
19-
| 1 | Named Value | `/namedValues/{name}` |||| Core config. Secrets redacted in v2. |
22+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
23+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
24+
| 1 | Named Value | `/namedValues/{name}` |||| Core config. Secrets redacted in APIOps CLI. |
2025
| 2 | Tag | `/tags/{name}` |||| Used across APIs, products, operations. |
2126
| 3 | Gateway | `/gateways/{name}` |||| Self-hosted gateway definitions. |
2227
| 4 | Version Set | `/apiVersionSets/{name}` |||| API versioning strategy definitions. |
@@ -27,40 +32,40 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
2732
| 9 | Policy Fragment | `/policyFragments/{name}` |||| Reusable policy snippets. |
2833
| 10 | Service Policy | `/policies/policy` |||| Global policy (all APIs). |
2934
| 11 | Subscription | `/subscriptions/{name}` |||| API/product subscription keys. |
30-
| 12 | Global Schema | `/schemas/{name}` |||| **NEW in v2.** Shared schemas referenced across APIs. |
31-
| 13 | Policy Restriction | `/policyRestrictions/{name}` |||| **NEW in v2.** Governance — restricts which policies can be used. |
32-
| 14 | Documentation | `/documentations/{name}` |||| **NEW in v2.** Service-level documentation resources. |
35+
| 12 | Global Schema | `/schemas/{name}` |||| **NEW in APIOps CLI.** Shared schemas referenced across APIs. |
36+
| 13 | Policy Restriction | `/policyRestrictions/{name}` |||| **NEW in APIOps CLI.** Governance — restricts which policies can be used. |
37+
| 14 | Documentation | `/documentations/{name}` |||| **NEW in APIOps CLI.** Service-level documentation resources. |
3338

3439
## Product Resources
3540

36-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
37-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
41+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
42+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
3843
| 15 | Product | `/products/{name}` |||| Product definitions. |
3944
| 16 | Product Policy | `/products/{name}/policies/policy` |||| Per-product policies. |
4045
| 17 | Product Api | `/products/{name}/apis/{api}` |||| Product → API associations. |
4146
| 18 | Product Group | `/products/{name}/groups/{group}` |||| Product → group associations. |
4247
| 19 | Product Tag | `/products/{name}/tags/{tag}` |||| Product → tag associations. |
43-
| 20 | Product Wiki | `/products/{name}/wikis/default` |||| **NEW in v2.** Product documentation wiki. |
48+
| 20 | Product Wiki | `/products/{name}/wikis/default` |||| **NEW in APIOps CLI.** Product documentation wiki. |
4449
| 21 | Product Subscriptions | `/products/{name}/subscriptions` |||| Read-only listing. Subscriptions managed at service level (#11). |
4550
| 22 | Product Api Link | `/products/{name}/apiLinks/{link}` |||| Newer association model. May replace Product Api (#17) in future. Monitor. |
4651
| 23 | Product Group Link | `/products/{name}/groupLinks/{link}` |||| Newer association model. May replace Product Group (#18) in future. Monitor. |
4752

4853
## API Resources
4954

50-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
51-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
55+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
56+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
5257
| 24 | API | `/apis/{name}` |||| API definitions. |
5358
| 25 | Api Policy | `/apis/{name}/policies/policy` |||| Per-API policies. |
5459
| 26 | Api Tag | `/apis/{name}/tags/{tag}` |||| API → tag associations. |
5560
| 27 | Api Diagnostic | `/apis/{name}/diagnostics/{diag}` |||| Per-API diagnostic config. |
5661
| 28 | Api Operation | `/apis/{name}/operations/{op}` |||| API operations (endpoints). |
5762
| 29 | Api Operation Policy | `/apis/{name}/operations/{op}/policies/policy` |||| Per-operation policies. |
58-
| 30 | Api Schema | `/apis/{name}/schemas/{schema}` |||| **NEW in v2.** Per-API schema definitions. |
59-
| 31 | Api Release | `/apis/{name}/releases/{release}` |||| **NEW in v2.** Controls which revision is current. |
60-
| 32 | Api Tag Description | `/apis/{name}/tagDescriptions/{tagDesc}` |||| **NEW in v2.** Tag descriptions for dev portal display. |
61-
| 33 | Api Wiki | `/apis/{name}/wikis/default` |||| **NEW in v2.** API documentation wiki. |
62-
| 34 | GraphQL Api Resolver | `/apis/{name}/resolvers/{resolver}` |||| **NEW in v2.** GraphQL field resolvers. |
63-
| 35 | GraphQL Api Resolver Policy | `/apis/{name}/resolvers/{resolver}/policies/policy` |||| **NEW in v2.** Policies on GraphQL resolvers. |
63+
| 30 | Api Schema | `/apis/{name}/schemas/{schema}` |||| **NEW in APIOps CLI.** Per-API schema definitions. |
64+
| 31 | Api Release | `/apis/{name}/releases/{release}` |||| **NEW in APIOps CLI.** Controls which revision is current. |
65+
| 32 | Api Tag Description | `/apis/{name}/tagDescriptions/{tagDesc}` |||| **NEW in APIOps CLI.** Tag descriptions for dev portal display. |
66+
| 33 | Api Wiki | `/apis/{name}/wikis/default` |||| **NEW in APIOps CLI.** API documentation wiki. |
67+
| 34 | GraphQL Api Resolver | `/apis/{name}/resolvers/{resolver}` |||| **NEW in APIOps CLI.** GraphQL field resolvers. |
68+
| 35 | GraphQL Api Resolver Policy | `/apis/{name}/resolvers/{resolver}/policies/policy` |||| **NEW in APIOps CLI.** Policies on GraphQL resolvers. |
6469
| 36 | Api Revision | `/apis/{name}/revisions` |||| List-only API; revisions extracted via API entity. |
6570
| 37 | Api Export | `/apis/{name}?export=true` |||| Read-only export. Used by apiops-cli for spec extraction. |
6671
| 38 | Api Product | `/apis/{name}/products` |||| Read-only reverse lookup. Managed via Product Api (#17). |
@@ -70,16 +75,16 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
7075

7176
## Gateway Child Resources
7277

73-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
74-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
78+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
79+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
7580
| 42 | Gateway Api | `/gateways/{name}/apis/{api}` |||| Gateway → API associations. |
7681
| 43 | Gateway Certificate Authority | `/gateways/{gw}/certificateAuthorities/{ca}` |||| Instance-specific. CA certs for self-hosted gateways differ per env. |
7782
| 44 | Gateway Hostname Configuration | `/gateways/{gw}/hostnameConfigurations/{host}` |||| Instance-specific. Custom domains differ per env. |
7883

7984
## Identity & Auth Resources (Instance-Specific — Excluded)
8085

81-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
82-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
86+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
87+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
8388
| 45 | Authorization Server | `/authorizationServers/{name}` |||| Instance-specific. OAuth client IDs/secrets differ per env. |
8489
| 46 | OpenID Connect Provider | `/openidConnectProviders/{name}` |||| Instance-specific. OIDC metadata URLs/client IDs differ per env. |
8590
| 47 | Identity Provider | `/identityProviders/{name}` |||| Instance-specific. Dev portal IdP app registrations differ per env. |
@@ -91,8 +96,8 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
9196

9297
## Developer Portal Resources (Instance-Specific — Excluded)
9398

94-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
95-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
99+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
100+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
96101
| 53 | Portal Config | `/portalconfigs/{name}` |||| Instance-specific. Portal look & feel per env. |
97102
| 54 | Portal Revision | `/portalRevisions/{name}` |||| Instance-specific. Portal publication snapshots. |
98103
| 55 | Sign In Settings | `/portalsettings/signin` |||| Instance-specific. Auth URLs/callbacks differ per env. |
@@ -103,14 +108,14 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
103108

104109
## Cache & Infrastructure (Instance-Specific — Excluded)
105110

106-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
107-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
111+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
112+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
108113
| 60 | Cache | `/caches/{name}` |||| Instance-specific. Points to env-specific Redis instances. |
109114

110115
## User & Notification Resources (Instance-Specific — Excluded)
111116

112-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
113-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
117+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
118+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
114119
| 61 | User | `/users/{name}` |||| Instance-specific. User accounts per env. |
115120
| 62 | Group User | `/groups/{group}/users/{user}` |||| Instance-specific. User membership per env. |
116121
| 63 | Notification | `/notifications/{name}` |||| Instance-specific. Alert configs per env. |
@@ -120,25 +125,25 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
120125

121126
## Tenant & Service Management (Operational — Excluded)
122127

123-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
124-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
128+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
129+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
125130
| 67 | Tenant Access | `/tenant/access/{name}` |||| Instance-specific. Git/API management access. |
126131
| 68 | Tenant Access Git | `/tenant/access/{name}/git` |||| Instance-specific. Git-based config sync. |
127132
| 69 | Tenant Configuration | `/tenant/configuration/*` |||| Instance-specific. Tenant-level config operations. |
128133
| 70 | Tenant Settings | `/tenant/settings` |||| Instance-specific. Tenant-level settings. |
129134

130135
## Newer Link Models (Watch List)
131136

132-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
133-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
137+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
138+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
134139
| 71 | Tag Api Link | `/tags/{tag}/apiLinks/{link}` |||| Reverse link model. May supplement Tag associations in future. |
135140
| 72 | Tag Operation Link | `/tags/{tag}/operationLinks/{link}` |||| Reverse link model. May supplement Tag associations in future. |
136141
| 73 | Tag Product Link | `/tags/{tag}/productLinks/{link}` |||| Reverse link model. May supplement Tag associations in future. |
137142

138143
## Read-Only / Operational (Not Applicable)
139144

140-
| # | Resource Type | ARM Path | v1 APIOps | v2 APIOps | Should Cover | Notes |
141-
|---|-------------|----------|:---------:|:---------:|:------------:|-------|
145+
| # | Resource Type | ARM Path | APIOps Toolkit | APIOps CLI | Should Cover | Notes |
146+
|---|-------------|----------|:--------------:|:----------:|:------------:|-------|
142147
| 74 | Api Management Service | `/` (service root) |||| The APIM instance itself. Created via IaC (Bicep/Terraform). |
143148
| 75 | Api Management Operations | (control plane) |||| ARM operation metadata. |
144149
| 76 | Api Management Service Skus | `/skus` |||| Read-only SKU listing. |
@@ -173,15 +178,15 @@ Comprehensive mapping of all APIM REST API resource types against v1 APIOps cove
173178

174179
## Summary
175180

176-
| Category | Count | v1 | v2 | Delta |
177-
|----------|------:|:--:|:--:|:-----:|
181+
| Category | Count | APIOps Toolkit | APIOps CLI | Delta |
182+
|----------|------:|:--------------:|:----------:|:-----:|
178183
| Covered (promotable) | 33 | 23 | 33 | **+10** |
179184
| Instance-specific (excluded) | 27 | 0 | 0 ||
180185
| Watch list (future) | 5 | 0 | 0 ||
181186
| Read-only / operational (N/A) | 31 | 0 | 0 ||
182187
| **Total resource types** | **96** | **23** | **33** | **+10** |
183188

184-
### New in v2
189+
### New in APIOps CLI
185190

186191
1. Global Schema
187192
2. Policy Restriction

specs/spec.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ The development team wants the CLI to support adding new top-level commands (e.g
196196
- **SC-003**: The `--dry-run` mode accurately predicts 100% of changes that a subsequent publish would make.
197197
- **SC-004**: Incremental publish (commit-based) processes only changed resources, completing in under 30 seconds for typical single-API changes.
198198
- **SC-005**: The tool runs successfully in GitHub Actions and Azure DevOps pipelines using service principal authentication without any manual intervention.
199-
- **SC-006**: Existing APIOps v1 users can point the new tool at their existing artifact directories and successfully publish without restructuring their files.
199+
- **SC-006**: Existing APIOps Toolkit users can point the new tool at their existing artifact directories and successfully publish without restructuring their files.
200200
- **SC-007**: Adding a new top-level command requires creating only the command module — no changes to existing command files, the main entry point, or shared infrastructure.
201201
- **SC-008**: Unknown APIM properties introduced in newer API versions are preserved through extract-edit-publish cycles with zero data loss.
202202
- **SC-009**: A new user can go from an empty repository to a working CI/CD pipeline (with extract and publish stages) by running `apiops init` and following the outputted identity-setup instructions, completing the process in under 15 minutes.
@@ -206,7 +206,7 @@ The development team wants the CLI to support adding new top-level commands (e.g
206206

207207
- Users have an Azure subscription with permissions to read and write APIM resources (Contributor or equivalent role on the APIM instance).
208208
- The Azure APIM REST API remains stable within a given API version; the tool targets a default version but allows override.
209-
- The v1 APIOps artifact directory layout is the established convention and maintaining compatibility is strongly preferred over a new layout.
209+
- The APIOps Toolkit artifact directory layout is the established convention and maintaining compatibility is strongly preferred over a new layout.
210210
- Internet connectivity is available when running extract and publish (offline-only workflows are out of scope).
211211
- The tool is distributed as an npm package and/or standalone binary; distribution mechanism details are deferred to implementation planning.
212212
- APIM API secrets (named value values marked as secrets, subscription keys) are NOT extracted in plaintext — they must be handled via override configuration or key vault references.

specs/v1-research-report.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# APIOps v1 Research Report: Scenarios, Requirements & Edge Cases
1+
# APIOps Toolkit Research Report: Scenarios, Requirements & Edge Cases
22

3-
> **Purpose**: Extract every user scenario, requirement, and edge case the v2 rebuild must support
3+
> **Purpose**: Extract every user scenario, requirement, and edge case the APIOps CLI rebuild must support
44
55
---
66

@@ -542,7 +542,7 @@ Authentication is handled by `Azure.Core.Pipeline.BearerTokenAuthenticationPolic
542542

543543
### 5.6 Circular Dependencies
544544

545-
Not explicitly handled. The PUT/DELETE ordering is **hardcoded** in `App.cs`, not dynamically computed. The ordering was manually determined to avoid dependency conflicts. The v2 architecture proposes topological sort via `DependencyGraph`.
545+
Not explicitly handled. The PUT/DELETE ordering is **hardcoded** in `App.cs`, not dynamically computed. The ordering was manually determined to avoid dependency conflicts. The APIOps CLI architecture proposes topological sort via `DependencyGraph`.
546546

547547
### 5.7 Long-Running Operations
548548

@@ -625,7 +625,7 @@ All mirror service-level equivalents under `/workspaces/{name}/`:
625625

626626
---
627627

628-
## 8. v2 Architecture Proposal (from `apiops-v2.md`)
628+
## 8. APIOps CLI Architecture Proposal (from `apiops-v2.md`)
629629

630630
### Key Decisions
631631

@@ -653,7 +653,7 @@ ApiOps.Cli/ - Single CLI entry point
653653

654654
---
655655

656-
## 9. Summary of v2 Requirements
656+
## 9. Summary of APIOps CLI Requirements
657657

658658
### Must Support
659659

0 commit comments

Comments
 (0)