@peterhauge/apiops-cli 0.1.6-alpha.0 → 0.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +22 -22
- package/README.md +169 -169
- package/dist/cli/extract-command.d.ts +0 -0
- package/dist/cli/extract-command.d.ts.map +0 -0
- package/dist/cli/extract-command.js +3 -3
- package/dist/cli/extract-command.js.map +1 -1
- package/dist/cli/index.d.ts +0 -0
- package/dist/cli/index.d.ts.map +0 -0
- package/dist/cli/index.js +0 -0
- package/dist/cli/index.js.map +0 -0
- package/dist/cli/init-command.d.ts +0 -0
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +2 -1
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/publish-command.d.ts +0 -0
- package/dist/cli/publish-command.d.ts.map +0 -0
- package/dist/cli/publish-command.js +3 -3
- package/dist/cli/publish-command.js.map +1 -1
- package/dist/clients/apim-client.d.ts +25 -1
- package/dist/clients/apim-client.d.ts.map +1 -1
- package/dist/clients/apim-client.js +173 -9
- package/dist/clients/apim-client.js.map +1 -1
- package/dist/clients/artifact-store.d.ts +0 -0
- package/dist/clients/artifact-store.d.ts.map +0 -0
- package/dist/clients/artifact-store.js +0 -0
- package/dist/clients/artifact-store.js.map +0 -0
- package/dist/clients/iapim-client.d.ts +6 -0
- package/dist/clients/iapim-client.d.ts.map +1 -1
- package/dist/clients/iapim-client.js +0 -0
- package/dist/clients/iapim-client.js.map +0 -0
- package/dist/clients/iartifact-store.d.ts +0 -0
- package/dist/clients/iartifact-store.d.ts.map +0 -0
- package/dist/clients/iartifact-store.js +0 -0
- package/dist/clients/iartifact-store.js.map +0 -0
- package/dist/lib/auto-generated.d.ts +0 -0
- package/dist/lib/auto-generated.d.ts.map +0 -0
- package/dist/lib/auto-generated.js +0 -0
- package/dist/lib/auto-generated.js.map +0 -0
- package/dist/lib/cloud-config.d.ts +0 -0
- package/dist/lib/cloud-config.d.ts.map +0 -0
- package/dist/lib/cloud-config.js +0 -0
- package/dist/lib/cloud-config.js.map +0 -0
- package/dist/lib/config-loader.d.ts +0 -4
- package/dist/lib/config-loader.d.ts.map +1 -1
- package/dist/lib/config-loader.js +290 -51
- package/dist/lib/config-loader.js.map +1 -1
- package/dist/lib/dependency-graph.d.ts +0 -0
- package/dist/lib/dependency-graph.d.ts.map +1 -1
- package/dist/lib/dependency-graph.js +4 -1
- package/dist/lib/dependency-graph.js.map +1 -1
- package/dist/lib/exit-codes.d.ts +0 -0
- package/dist/lib/exit-codes.d.ts.map +0 -0
- package/dist/lib/exit-codes.js +0 -0
- package/dist/lib/exit-codes.js.map +0 -0
- package/dist/lib/logger.d.ts +0 -0
- package/dist/lib/logger.d.ts.map +0 -0
- package/dist/lib/logger.js +0 -0
- package/dist/lib/logger.js.map +0 -0
- package/dist/lib/parallel-runner.d.ts +0 -0
- package/dist/lib/parallel-runner.d.ts.map +0 -0
- package/dist/lib/parallel-runner.js +0 -0
- package/dist/lib/parallel-runner.js.map +0 -0
- package/dist/lib/resource-path.d.ts +0 -0
- package/dist/lib/resource-path.d.ts.map +1 -1
- package/dist/lib/resource-path.js +49 -10
- package/dist/lib/resource-path.js.map +1 -1
- package/dist/lib/resource-uri.d.ts +0 -0
- package/dist/lib/resource-uri.d.ts.map +1 -1
- package/dist/lib/resource-uri.js +24 -4
- package/dist/lib/resource-uri.js.map +1 -1
- package/dist/lib/user-agent.d.ts +0 -0
- package/dist/lib/user-agent.d.ts.map +0 -0
- package/dist/lib/user-agent.js +0 -0
- package/dist/lib/user-agent.js.map +0 -0
- package/dist/lib/workspace-link.d.ts +46 -0
- package/dist/lib/workspace-link.d.ts.map +1 -0
- package/dist/lib/workspace-link.js +93 -0
- package/dist/lib/workspace-link.js.map +1 -0
- package/dist/models/config.d.ts +80 -44
- package/dist/models/config.d.ts.map +1 -1
- package/dist/models/config.js +0 -0
- package/dist/models/config.js.map +0 -0
- package/dist/models/resource-types.d.ts +22 -1
- package/dist/models/resource-types.d.ts.map +1 -1
- package/dist/models/resource-types.js +29 -1
- package/dist/models/resource-types.js.map +1 -1
- package/dist/models/types.d.ts +0 -0
- package/dist/models/types.d.ts.map +0 -0
- package/dist/models/types.js +0 -0
- package/dist/models/types.js.map +0 -0
- package/dist/services/api-extractor.d.ts +19 -0
- package/dist/services/api-extractor.d.ts.map +1 -1
- package/dist/services/api-extractor.js +87 -6
- package/dist/services/api-extractor.js.map +1 -1
- package/dist/services/api-publisher.d.ts +0 -0
- package/dist/services/api-publisher.d.ts.map +1 -1
- package/dist/services/api-publisher.js +270 -65
- package/dist/services/api-publisher.js.map +1 -1
- package/dist/services/delete-unmatched-service.d.ts +0 -0
- package/dist/services/delete-unmatched-service.d.ts.map +0 -0
- package/dist/services/delete-unmatched-service.js +0 -0
- package/dist/services/delete-unmatched-service.js.map +0 -0
- package/dist/services/dry-run-reporter.d.ts +0 -0
- package/dist/services/dry-run-reporter.d.ts.map +0 -0
- package/dist/services/dry-run-reporter.js +0 -0
- package/dist/services/dry-run-reporter.js.map +0 -0
- package/dist/services/extract-service.d.ts +0 -0
- package/dist/services/extract-service.d.ts.map +0 -0
- package/dist/services/extract-service.js +5 -10
- package/dist/services/extract-service.js.map +1 -1
- package/dist/services/filter-service.d.ts +1 -0
- package/dist/services/filter-service.d.ts.map +1 -1
- package/dist/services/filter-service.js +101 -40
- package/dist/services/filter-service.js.map +1 -1
- package/dist/services/git-diff-service.d.ts +0 -0
- package/dist/services/git-diff-service.d.ts.map +0 -0
- package/dist/services/git-diff-service.js +0 -0
- package/dist/services/git-diff-service.js.map +0 -0
- package/dist/services/identity-guide-service.d.ts +1 -1
- package/dist/services/identity-guide-service.d.ts.map +1 -1
- package/dist/services/identity-guide-service.js +37 -518
- package/dist/services/identity-guide-service.js.map +1 -1
- package/dist/services/init-service.d.ts +0 -0
- package/dist/services/init-service.d.ts.map +1 -1
- package/dist/services/init-service.js +51 -19
- package/dist/services/init-service.js.map +1 -1
- package/dist/services/keyvault-checker.d.ts +0 -0
- package/dist/services/keyvault-checker.d.ts.map +0 -0
- package/dist/services/keyvault-checker.js +0 -0
- package/dist/services/keyvault-checker.js.map +0 -0
- package/dist/services/override-merger.d.ts +3 -7
- package/dist/services/override-merger.d.ts.map +1 -1
- package/dist/services/override-merger.js +198 -47
- package/dist/services/override-merger.js.map +1 -1
- package/dist/services/product-extractor.d.ts +20 -0
- package/dist/services/product-extractor.d.ts.map +1 -1
- package/dist/services/product-extractor.js +101 -5
- package/dist/services/product-extractor.js.map +1 -1
- package/dist/services/product-publisher.d.ts +0 -0
- package/dist/services/product-publisher.d.ts.map +1 -1
- package/dist/services/product-publisher.js +62 -6
- package/dist/services/product-publisher.js.map +1 -1
- package/dist/services/prompt-service.d.ts +0 -0
- package/dist/services/prompt-service.d.ts.map +0 -0
- package/dist/services/prompt-service.js +0 -0
- package/dist/services/prompt-service.js.map +0 -0
- package/dist/services/publish-service.d.ts +0 -0
- package/dist/services/publish-service.d.ts.map +0 -0
- package/dist/services/publish-service.js +81 -2
- package/dist/services/publish-service.js.map +1 -1
- package/dist/services/resource-extractor.d.ts +0 -0
- package/dist/services/resource-extractor.d.ts.map +1 -1
- package/dist/services/resource-extractor.js +52 -1
- package/dist/services/resource-extractor.js.map +1 -1
- package/dist/services/resource-publisher.d.ts +0 -0
- package/dist/services/resource-publisher.d.ts.map +1 -1
- package/dist/services/resource-publisher.js +127 -2
- package/dist/services/resource-publisher.js.map +1 -1
- package/dist/services/secret-redactor.d.ts +0 -0
- package/dist/services/secret-redactor.d.ts.map +0 -0
- package/dist/services/secret-redactor.js +0 -0
- package/dist/services/secret-redactor.js.map +0 -0
- package/dist/services/transitive-resolver.d.ts +0 -0
- package/dist/services/transitive-resolver.d.ts.map +1 -1
- package/dist/services/transitive-resolver.js +4 -4
- package/dist/services/transitive-resolver.js.map +1 -1
- package/dist/services/workspace-extractor.d.ts +1 -9
- package/dist/services/workspace-extractor.d.ts.map +1 -1
- package/dist/services/workspace-extractor.js +80 -44
- package/dist/services/workspace-extractor.js.map +1 -1
- package/dist/templates/azure-devops/extract-pipeline.d.ts +2 -1
- package/dist/templates/azure-devops/extract-pipeline.d.ts.map +1 -1
- package/dist/templates/azure-devops/extract-pipeline.js +147 -88
- package/dist/templates/azure-devops/extract-pipeline.js.map +1 -1
- package/dist/templates/azure-devops/publish-pipeline.d.ts +0 -0
- package/dist/templates/azure-devops/publish-pipeline.d.ts.map +1 -1
- package/dist/templates/azure-devops/publish-pipeline.js +116 -89
- package/dist/templates/azure-devops/publish-pipeline.js.map +1 -1
- package/dist/templates/configs/filter-config.d.ts +1 -1
- package/dist/templates/configs/filter-config.d.ts.map +1 -1
- package/dist/templates/configs/filter-config.js +109 -44
- package/dist/templates/configs/filter-config.js.map +1 -1
- package/dist/templates/configs/override-config.d.ts +0 -0
- package/dist/templates/configs/override-config.d.ts.map +1 -1
- package/dist/templates/configs/override-config.js +88 -37
- package/dist/templates/configs/override-config.js.map +1 -1
- package/dist/templates/configs/package-json.d.ts +0 -0
- package/dist/templates/configs/package-json.d.ts.map +0 -0
- package/dist/templates/configs/package-json.js +0 -0
- package/dist/templates/configs/package-json.js.map +0 -0
- package/dist/templates/copilot/identity-setup-prompt.d.ts +4 -3
- package/dist/templates/copilot/identity-setup-prompt.d.ts.map +1 -1
- package/dist/templates/copilot/identity-setup-prompt.js +59 -269
- package/dist/templates/copilot/identity-setup-prompt.js.map +1 -1
- package/dist/templates/generated/embedded-markdown.d.ts +12 -0
- package/dist/templates/generated/embedded-markdown.d.ts.map +1 -0
- package/dist/templates/generated/embedded-markdown.js +14 -0
- package/dist/templates/generated/embedded-markdown.js.map +1 -0
- package/dist/templates/github-actions/extract-workflow.d.ts +0 -0
- package/dist/templates/github-actions/extract-workflow.d.ts.map +0 -0
- package/dist/templates/github-actions/extract-workflow.js +118 -118
- package/dist/templates/github-actions/extract-workflow.js.map +0 -0
- package/dist/templates/github-actions/publish-workflow.d.ts +0 -0
- package/dist/templates/github-actions/publish-workflow.d.ts.map +1 -1
- package/dist/templates/github-actions/publish-workflow.js +104 -90
- package/dist/templates/github-actions/publish-workflow.js.map +1 -1
- package/package.json +69 -66
package/LICENSE.md
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
apiops-cli: https://github.com/Azure/apiops-cli
|
|
4
|
-
|
|
5
|
-
Copyright (c) Microsoft Corporation.
|
|
6
|
-
|
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
in the Software without restriction, including without limitation the rights
|
|
10
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
furnished to do so, subject to the following conditions:
|
|
13
|
-
|
|
14
|
-
The above copyright notice and this permission notice shall be included in all
|
|
15
|
-
copies or substantial portions of the Software.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
apiops-cli: https://github.com/Azure/apiops-cli
|
|
4
|
+
|
|
5
|
+
Copyright (c) Microsoft Corporation.
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
23
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
# apiops
|
|
2
|
-
|
|
3
|
-
`apiops` is a CLI tool for Azure API Management (APIM) configuration-as-code. Extract your APIM service configuration to local artifact files, publish those artifacts back to Azure, and scaffold CI/CD pipelines — all from the command line.
|
|
4
|
-
|
|
5
|
-
| | |
|
|
6
|
-
|---|---|
|
|
7
|
-
| **Source code** | [github.com/Azure/apiops-cli](https://github.com/Azure/apiops-cli) |
|
|
8
|
-
| **Issues** | [GitHub Issues](https://github.com/Azure/apiops-cli/issues) |
|
|
9
|
-
| **Architecture** | [docs/architecture.md](./docs/architecture.md) |
|
|
10
|
-
|
|
11
|
-
## Getting started
|
|
12
|
-
|
|
13
|
-
**Prerequisites:** An Azure subscription with an existing APIM resource, and Node.js ≥ 22.
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install -g @peterhauge/apiops-cli
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Authentication
|
|
20
|
-
|
|
21
|
-
`apiops` uses [`@azure/identity`](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity) `DefaultAzureCredential` for authentication.
|
|
22
|
-
|
|
23
|
-
### Generated GitHub Actions workflows (`apiops init`)
|
|
24
|
-
|
|
25
|
-
Workflows scaffolded by `apiops init` authenticate via **OIDC (workload identity federation)** — no client secret is stored or needed. Run `apiops init` and use the generated `identity-setup.prompt.md` to create an Azure AD application with federated credentials for your GitHub repository.
|
|
26
|
-
|
|
27
|
-
Required repository secrets: `AZURE_CLIENT_ID`, `AZURE_TENANT_ID`
|
|
28
|
-
|
|
29
|
-
### Local CLI / other CI systems
|
|
30
|
-
|
|
31
|
-
When running `apiops` outside a GitHub Actions OIDC context you can supply credentials explicitly:
|
|
32
|
-
|
|
33
|
-
- **Environment variables:** `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_TENANT_ID`, `AZURE_SUBSCRIPTION_ID`
|
|
34
|
-
- **CLI flags:** `--client-id`, `--client-secret`, `--tenant-id`, `--subscription-id`
|
|
35
|
-
- **Managed Identity / Workload Identity:** Supported automatically via `DefaultAzureCredential` when running on Azure-hosted infrastructure (VMs, App Service, etc.) or in Azure Pipelines with workload identity federation configured.
|
|
36
|
-
|
|
37
|
-
## Commands
|
|
38
|
-
|
|
39
|
-
### `apiops extract`
|
|
40
|
-
|
|
41
|
-
Extract APIM service configuration to local artifact files.
|
|
42
|
-
|
|
43
|
-
| Flag | Default | Description |
|
|
44
|
-
|------|---------|-------------|
|
|
45
|
-
| `--resource-group <rg>` | *(required)* | Azure resource group |
|
|
46
|
-
| `--service-name <name>` | *(required)* | APIM service name |
|
|
47
|
-
| `--output <dir>` | `./apim-artifacts` | Output directory |
|
|
48
|
-
| `--filter <path>` | | Extract only matching resources |
|
|
49
|
-
| `--no-transitive` | | Skip transitive dependencies |
|
|
50
|
-
| `--spec-format <format>` | | Override API spec format |
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
apiops extract --help
|
|
54
|
-
|
|
55
|
-
# Basic extraction to the default output directory
|
|
56
|
-
apiops extract \
|
|
57
|
-
--resource-group <rg> \
|
|
58
|
-
--service-name <name> \
|
|
59
|
-
--output ./apim-artifacts
|
|
60
|
-
|
|
61
|
-
# Extract a filtered subset of resources and override the API spec format
|
|
62
|
-
apiops extract \
|
|
63
|
-
--resource-group <rg> \
|
|
64
|
-
--service-name <name> \
|
|
65
|
-
--filter ./filter.yaml \
|
|
66
|
-
--spec-format openapi-v3-yaml
|
|
67
|
-
|
|
68
|
-
# Authenticate explicitly with a service principal
|
|
69
|
-
apiops extract \
|
|
70
|
-
--resource-group <rg> \
|
|
71
|
-
--service-name <name> \
|
|
72
|
-
--client-id $AZURE_CLIENT_ID \
|
|
73
|
-
--client-secret $AZURE_CLIENT_SECRET \
|
|
74
|
-
--tenant-id $AZURE_TENANT_ID \
|
|
75
|
-
--subscription-id $AZURE_SUBSCRIPTION_ID
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### `apiops publish`
|
|
79
|
-
|
|
80
|
-
Publish local artifact files to an Azure APIM service.
|
|
81
|
-
|
|
82
|
-
| Flag | Default | Description |
|
|
83
|
-
|------|---------|-------------|
|
|
84
|
-
| `--resource-group <rg>` | *(required)* | Azure resource group |
|
|
85
|
-
| `--service-name <name>` | *(required)* | APIM service name |
|
|
86
|
-
| `--source <dir>` | `./apim-artifacts` | Source artifacts directory |
|
|
87
|
-
| `--overrides <path>` | | Path to overrides file |
|
|
88
|
-
| `--commit-id <sha>` | | Git commit SHA for incremental publish |
|
|
89
|
-
| `--dry-run` | | Preview changes without applying |
|
|
90
|
-
| `--delete-unmatched` | | Delete resources not in artifacts (mutually exclusive with `--commit-id`) |
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
apiops publish --help
|
|
94
|
-
|
|
95
|
-
# Preview changes without applying them
|
|
96
|
-
apiops publish \
|
|
97
|
-
--resource-group <rg> \
|
|
98
|
-
--service-name <name> \
|
|
99
|
-
--dry-run
|
|
100
|
-
|
|
101
|
-
# Publish and remove resources not present in the local artifacts
|
|
102
|
-
apiops publish \
|
|
103
|
-
--resource-group <rg> \
|
|
104
|
-
--service-name <name> \
|
|
105
|
-
--delete-unmatched
|
|
106
|
-
|
|
107
|
-
# Incremental publish for a specific commit
|
|
108
|
-
apiops publish \
|
|
109
|
-
--resource-group <rg> \
|
|
110
|
-
--service-name <name> \
|
|
111
|
-
--commit-id <sha>
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### `apiops init`
|
|
115
|
-
|
|
116
|
-
Scaffold a new APIM artifacts repository with CI/CD pipelines.
|
|
117
|
-
|
|
118
|
-
| Flag | Description |
|
|
119
|
-
|------|-------------|
|
|
120
|
-
| `--cli-package <path>` | Path to a local `.tgz` tarball |
|
|
121
|
-
| `--ci <platform>` | `github-actions` or `azure-devops` |
|
|
122
|
-
| `--environments <list>` | Comma-separated environments (e.g. `dev,prod`) |
|
|
123
|
-
| `--non-interactive` | Skip all prompts |
|
|
124
|
-
| `--force` | Overwrite existing files |
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
apiops init --help
|
|
128
|
-
|
|
129
|
-
apiops init \
|
|
130
|
-
--ci github-actions \
|
|
131
|
-
--environments dev,prod
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Global options
|
|
135
|
-
|
|
136
|
-
| Option | Default | Description |
|
|
137
|
-
|--------|---------|-------------|
|
|
138
|
-
| `--subscription-id <id>` | `AZURE_SUBSCRIPTION_ID` env var | Azure subscription ID |
|
|
139
|
-
| `--cloud <name>` | `public` | `public`, `china`, `usgov`, `germany` |
|
|
140
|
-
| `--log-level <level>` | `info` | `debug`, `info`, `warn`, `error` |
|
|
141
|
-
| `--format <type>` | `text` | `text` or `json` |
|
|
142
|
-
| `--client-id <id>` | `AZURE_CLIENT_ID` env var | Service principal client ID |
|
|
143
|
-
| `--client-secret <secret>` | `AZURE_CLIENT_SECRET` env var | Service principal secret |
|
|
144
|
-
| `--tenant-id <id>` | `AZURE_TENANT_ID` env var | Azure AD tenant ID |
|
|
145
|
-
|
|
146
|
-
## Contributing
|
|
147
|
-
|
|
148
|
-
See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to build, test, debug, and submit changes.
|
|
149
|
-
|
|
150
|
-
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
|
151
|
-
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
|
|
152
|
-
[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
153
|
-
|
|
154
|
-
## Security
|
|
155
|
-
|
|
156
|
-
Please do not report security vulnerabilities through public GitHub issues. Instead, please follow the instructions in
|
|
157
|
-
our [SECURITY.md](./SECURITY.md).
|
|
158
|
-
|
|
159
|
-
## Trademarks
|
|
160
|
-
|
|
161
|
-
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
|
|
162
|
-
trademarks or logos is subject to and must follow
|
|
163
|
-
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
|
|
164
|
-
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
|
165
|
-
Any use of third-party trademarks or logos are subject to those third-party's policies.
|
|
166
|
-
|
|
167
|
-
## License
|
|
168
|
-
|
|
169
|
-
[MIT](./LICENSE.md)
|
|
1
|
+
# apiops
|
|
2
|
+
|
|
3
|
+
`apiops` is a CLI tool for Azure API Management (APIM) configuration-as-code. Extract your APIM service configuration to local artifact files, publish those artifacts back to Azure, and scaffold CI/CD pipelines — all from the command line.
|
|
4
|
+
|
|
5
|
+
| | |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **Source code** | [github.com/Azure/apiops-cli](https://github.com/Azure/apiops-cli) |
|
|
8
|
+
| **Issues** | [GitHub Issues](https://github.com/Azure/apiops-cli/issues) |
|
|
9
|
+
| **Architecture** | [docs/architecture.md](./docs/architecture.md) |
|
|
10
|
+
|
|
11
|
+
## Getting started
|
|
12
|
+
|
|
13
|
+
**Prerequisites:** An Azure subscription with an existing APIM resource, and Node.js ≥ 22.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g @peterhauge/apiops-cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Authentication
|
|
20
|
+
|
|
21
|
+
`apiops` uses [`@azure/identity`](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity) `DefaultAzureCredential` for authentication.
|
|
22
|
+
|
|
23
|
+
### Generated GitHub Actions workflows (`apiops init`)
|
|
24
|
+
|
|
25
|
+
Workflows scaffolded by `apiops init` authenticate via **OIDC (workload identity federation)** — no client secret is stored or needed. Run `apiops init` and use the generated `identity-setup.prompt.md` to create an Azure AD application with federated credentials for your GitHub repository.
|
|
26
|
+
|
|
27
|
+
Required repository secrets: `AZURE_CLIENT_ID`, `AZURE_TENANT_ID`
|
|
28
|
+
|
|
29
|
+
### Local CLI / other CI systems
|
|
30
|
+
|
|
31
|
+
When running `apiops` outside a GitHub Actions OIDC context you can supply credentials explicitly:
|
|
32
|
+
|
|
33
|
+
- **Environment variables:** `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_TENANT_ID`, `AZURE_SUBSCRIPTION_ID`
|
|
34
|
+
- **CLI flags:** `--client-id`, `--client-secret`, `--tenant-id`, `--subscription-id`
|
|
35
|
+
- **Managed Identity / Workload Identity:** Supported automatically via `DefaultAzureCredential` when running on Azure-hosted infrastructure (VMs, App Service, etc.) or in Azure Pipelines with workload identity federation configured.
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
### `apiops extract`
|
|
40
|
+
|
|
41
|
+
Extract APIM service configuration to local artifact files.
|
|
42
|
+
|
|
43
|
+
| Flag | Default | Description |
|
|
44
|
+
|------|---------|-------------|
|
|
45
|
+
| `--resource-group <rg>` | *(required)* | Azure resource group |
|
|
46
|
+
| `--service-name <name>` | *(required)* | APIM service name |
|
|
47
|
+
| `--output <dir>` | `./apim-artifacts` | Output directory |
|
|
48
|
+
| `--filter <path>` | | Extract only matching resources |
|
|
49
|
+
| `--no-transitive` | | Skip transitive dependencies |
|
|
50
|
+
| `--spec-format <format>` | | Override API spec format |
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
apiops extract --help
|
|
54
|
+
|
|
55
|
+
# Basic extraction to the default output directory
|
|
56
|
+
apiops extract \
|
|
57
|
+
--resource-group <rg> \
|
|
58
|
+
--service-name <name> \
|
|
59
|
+
--output ./apim-artifacts
|
|
60
|
+
|
|
61
|
+
# Extract a filtered subset of resources and override the API spec format
|
|
62
|
+
apiops extract \
|
|
63
|
+
--resource-group <rg> \
|
|
64
|
+
--service-name <name> \
|
|
65
|
+
--filter ./filter.yaml \
|
|
66
|
+
--spec-format openapi-v3-yaml
|
|
67
|
+
|
|
68
|
+
# Authenticate explicitly with a service principal
|
|
69
|
+
apiops extract \
|
|
70
|
+
--resource-group <rg> \
|
|
71
|
+
--service-name <name> \
|
|
72
|
+
--client-id $AZURE_CLIENT_ID \
|
|
73
|
+
--client-secret $AZURE_CLIENT_SECRET \
|
|
74
|
+
--tenant-id $AZURE_TENANT_ID \
|
|
75
|
+
--subscription-id $AZURE_SUBSCRIPTION_ID
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### `apiops publish`
|
|
79
|
+
|
|
80
|
+
Publish local artifact files to an Azure APIM service.
|
|
81
|
+
|
|
82
|
+
| Flag | Default | Description |
|
|
83
|
+
|------|---------|-------------|
|
|
84
|
+
| `--resource-group <rg>` | *(required)* | Azure resource group |
|
|
85
|
+
| `--service-name <name>` | *(required)* | APIM service name |
|
|
86
|
+
| `--source <dir>` | `./apim-artifacts` | Source artifacts directory |
|
|
87
|
+
| `--overrides <path>` | | Path to overrides file |
|
|
88
|
+
| `--commit-id <sha>` | | Git commit SHA for incremental publish |
|
|
89
|
+
| `--dry-run` | | Preview changes without applying |
|
|
90
|
+
| `--delete-unmatched` | | Delete resources not in artifacts (mutually exclusive with `--commit-id`) |
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
apiops publish --help
|
|
94
|
+
|
|
95
|
+
# Preview changes without applying them
|
|
96
|
+
apiops publish \
|
|
97
|
+
--resource-group <rg> \
|
|
98
|
+
--service-name <name> \
|
|
99
|
+
--dry-run
|
|
100
|
+
|
|
101
|
+
# Publish and remove resources not present in the local artifacts
|
|
102
|
+
apiops publish \
|
|
103
|
+
--resource-group <rg> \
|
|
104
|
+
--service-name <name> \
|
|
105
|
+
--delete-unmatched
|
|
106
|
+
|
|
107
|
+
# Incremental publish for a specific commit
|
|
108
|
+
apiops publish \
|
|
109
|
+
--resource-group <rg> \
|
|
110
|
+
--service-name <name> \
|
|
111
|
+
--commit-id <sha>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### `apiops init`
|
|
115
|
+
|
|
116
|
+
Scaffold a new APIM artifacts repository with CI/CD pipelines.
|
|
117
|
+
|
|
118
|
+
| Flag | Description |
|
|
119
|
+
|------|-------------|
|
|
120
|
+
| `--cli-package <path>` | Path to a local `.tgz` tarball |
|
|
121
|
+
| `--ci <platform>` | `github-actions` or `azure-devops` |
|
|
122
|
+
| `--environments <list>` | Comma-separated environments (e.g. `dev,prod`) |
|
|
123
|
+
| `--non-interactive` | Skip all prompts |
|
|
124
|
+
| `--force` | Overwrite existing files |
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
apiops init --help
|
|
128
|
+
|
|
129
|
+
apiops init \
|
|
130
|
+
--ci github-actions \
|
|
131
|
+
--environments dev,prod
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Global options
|
|
135
|
+
|
|
136
|
+
| Option | Default | Description |
|
|
137
|
+
|--------|---------|-------------|
|
|
138
|
+
| `--subscription-id <id>` | `AZURE_SUBSCRIPTION_ID` env var | Azure subscription ID |
|
|
139
|
+
| `--cloud <name>` | `public` | `public`, `china`, `usgov`, `germany` |
|
|
140
|
+
| `--log-level <level>` | `info` | `debug`, `info`, `warn`, `error` |
|
|
141
|
+
| `--format <type>` | `text` | `text` or `json` |
|
|
142
|
+
| `--client-id <id>` | `AZURE_CLIENT_ID` env var | Service principal client ID |
|
|
143
|
+
| `--client-secret <secret>` | `AZURE_CLIENT_SECRET` env var | Service principal secret |
|
|
144
|
+
| `--tenant-id <id>` | `AZURE_TENANT_ID` env var | Azure AD tenant ID |
|
|
145
|
+
|
|
146
|
+
## Contributing
|
|
147
|
+
|
|
148
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to build, test, debug, and submit changes.
|
|
149
|
+
|
|
150
|
+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
|
151
|
+
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
|
|
152
|
+
[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
153
|
+
|
|
154
|
+
## Security
|
|
155
|
+
|
|
156
|
+
Please do not report security vulnerabilities through public GitHub issues. Instead, please follow the instructions in
|
|
157
|
+
our [SECURITY.md](./SECURITY.md).
|
|
158
|
+
|
|
159
|
+
## Trademarks
|
|
160
|
+
|
|
161
|
+
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
|
|
162
|
+
trademarks or logos is subject to and must follow
|
|
163
|
+
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
|
|
164
|
+
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
|
165
|
+
Any use of third-party trademarks or logos are subject to those third-party's policies.
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
[MIT](./LICENSE.md)
|
|
File without changes
|
|
File without changes
|
|
@@ -41,9 +41,9 @@ async function executeExtract(options, globalOpts) {
|
|
|
41
41
|
process.exit(2);
|
|
42
42
|
}
|
|
43
43
|
// Build service context
|
|
44
|
-
// Default to
|
|
45
|
-
//
|
|
46
|
-
//
|
|
44
|
+
// Default to 2025-09-01-preview so newer resource types (e.g. MCP-typed
|
|
45
|
+
// APIs) are returned by ARM list endpoints. Older versions (e.g. 2024-05-01)
|
|
46
|
+
// can silently omit MCP APIs from /apis.
|
|
47
47
|
const apiVersion = globalOpts.apiVersion ?? process.env.AZURE_API_VERSION ?? '2025-09-01-preview';
|
|
48
48
|
const cloudName = globalOpts.cloud ?? 'public';
|
|
49
49
|
const cloudConfig = getCloudConfig(cloudName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-command.js","sourceRoot":"","sources":["../../src/cli/extract-command.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAoB,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAczE;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SACnC,WAAW,CAAC,oDAAoD,CAAC;SACjE,cAAc,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;SACpE,cAAc,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;SACrE,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC3D,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;SACpE,MAAM,CAAC,wBAAwB,EAAE,8EAA8E,CAAC;SAChH,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,OAAgB,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAMtC,CAAC;QAEL,MAAM,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAuB,EACvB,UAMC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAEtF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,wEAAwE;IACxE,
|
|
1
|
+
{"version":3,"file":"extract-command.js","sourceRoot":"","sources":["../../src/cli/extract-command.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
File without changes
|
package/dist/cli/index.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
package/dist/cli/index.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAkF3C"}
|
package/dist/cli/init-command.js
CHANGED
|
@@ -70,7 +70,8 @@ export function createInitCommand() {
|
|
|
70
70
|
logger.info(' - Open ./.github/prompts/apiops-setup-identity.prompt.md with GitHub Copilot for guided setup');
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
|
-
logger.info(' - Follow ./IDENTITY-SETUP-AZDO.md for manual setup');
|
|
73
|
+
logger.info(' - Follow ./IDENTITY-SETUP-AZDO.md for manual setup, OR');
|
|
74
|
+
logger.info(' - Open ./.github/prompts/apiops-setup-identity.prompt.md with GitHub Copilot for guided setup');
|
|
74
75
|
}
|
|
75
76
|
logger.info('');
|
|
76
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
@@ -42,9 +42,9 @@ async function executePublish(options, globalOpts) {
|
|
|
42
42
|
process.exit(2);
|
|
43
43
|
}
|
|
44
44
|
// Build service context
|
|
45
|
-
// Default to
|
|
46
|
-
//
|
|
47
|
-
//
|
|
45
|
+
// Default to 2025-09-01-preview so newer resource types (e.g. MCP-typed
|
|
46
|
+
// APIs) are accepted by ARM. Older versions (e.g. 2024-05-01) can reject
|
|
47
|
+
// MCP API payloads.
|
|
48
48
|
const apiVersion = globalOpts.apiVersion ?? process.env.AZURE_API_VERSION ?? '2025-09-01-preview';
|
|
49
49
|
const cloudName = globalOpts.cloud ?? 'public';
|
|
50
50
|
const cloudConfig = getCloudConfig(cloudName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-command.js","sourceRoot":"","sources":["../../src/cli/publish-command.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAiB,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAezE;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SACnC,WAAW,CAAC,oDAAoD,CAAC;SACjE,cAAc,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;SACpE,cAAc,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,EAAE,kBAAkB,CAAC;SAC/E,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,CAAC;SAChE,MAAM,CACL,mBAAmB,EACnB,sEAAsE,CACvE;SACA,MAAM,CAAC,WAAW,EAAE,uCAAuC,EAAE,KAAK,CAAC;SACnE,MAAM,CACL,oBAAoB,EACpB,gDAAgD,EAChD,KAAK,CACN;SACA,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,OAAgB,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAMtC,CAAC;QAEL,MAAM,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAuB,EACvB,UAMC;IAED,MAAM,cAAc,GAClB,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAEjE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CACV,8EAA8E,CAC/E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,wEAAwE;IACxE,
|
|
1
|
+
{"version":3,"file":"publish-command.js","sourceRoot":"","sources":["../../src/cli/publish-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,12 @@ export declare class ApimClient implements IApimClient {
|
|
|
26
26
|
private static readonly MAX_DELAY_MS;
|
|
27
27
|
private static readonly MAX_POLLING_ATTEMPTS;
|
|
28
28
|
private static readonly POLL_INTERVAL_MS;
|
|
29
|
+
/** Deadline for async (LRO) operation polling — 7.5 minutes. */
|
|
30
|
+
private static readonly ASYNC_POLL_TIMEOUT_MS;
|
|
31
|
+
/** Default interval between async operation polls when no Retry-After header. */
|
|
32
|
+
private static readonly ASYNC_POLL_INTERVAL_MS;
|
|
33
|
+
/** Known ARM management plane host suffixes for URL validation. */
|
|
34
|
+
private static readonly ARM_HOSTS;
|
|
29
35
|
/** Stable ARM API version for Resource Group existence checks */
|
|
30
36
|
private static readonly RESOURCE_GROUP_API_VERSION;
|
|
31
37
|
/**
|
|
@@ -54,6 +60,7 @@ export declare class ApimClient implements IApimClient {
|
|
|
54
60
|
listResources(context: ApimServiceContext, type: ResourceType, parent?: ResourceDescriptor): AsyncIterable<Record<string, unknown>>;
|
|
55
61
|
getResource(context: ApimServiceContext, descriptor: ResourceDescriptor): Promise<Record<string, unknown> | undefined>;
|
|
56
62
|
putResource(context: ApimServiceContext, descriptor: ResourceDescriptor, payload: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
63
|
+
patchResource(context: ApimServiceContext, descriptor: ResourceDescriptor, payload: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
57
64
|
deleteResource(context: ApimServiceContext, descriptor: ResourceDescriptor): Promise<boolean>;
|
|
58
65
|
listApiRevisions(context: ApimServiceContext, apiName: string): AsyncIterable<Record<string, unknown>>;
|
|
59
66
|
getApiSpecification(context: ApimServiceContext, apiName: string, apiType?: string): Promise<{
|
|
@@ -76,7 +83,7 @@ export declare class ApimClient implements IApimClient {
|
|
|
76
83
|
* graphql-link – GraphQL SDL blob (type=graphql)
|
|
77
84
|
* wsdl-link – WSDL blob (type=soap)
|
|
78
85
|
* openapi-link – OpenAPI 3.0 YAML (type=http, default)
|
|
79
|
-
* undefined – (type=websocket — no spec; callers should skip)
|
|
86
|
+
* undefined – (type=websocket|a2a — no spec; callers should skip)
|
|
80
87
|
*
|
|
81
88
|
* SOAP APIs use wsdl-link so the exported specification can be re-imported
|
|
82
89
|
* faithfully on publish (matches the Azure/apiops reference tool). APIM's
|
|
@@ -105,6 +112,23 @@ export declare class ApimClient implements IApimClient {
|
|
|
105
112
|
*/
|
|
106
113
|
private throwPreFlightHttpError;
|
|
107
114
|
private detectSpecificationFormat;
|
|
115
|
+
/**
|
|
116
|
+
* Extract the async operation URL from ARM LRO response headers.
|
|
117
|
+
* Prefers Azure-AsyncOperation over Location.
|
|
118
|
+
* Validates the URL points to a known ARM management endpoint to prevent
|
|
119
|
+
* leaking the bearer token to an unexpected host.
|
|
120
|
+
*/
|
|
121
|
+
private extractAsyncOperationUrl;
|
|
122
|
+
/**
|
|
123
|
+
* Poll an ARM async operation URL until terminal state.
|
|
124
|
+
* Used for long-running operations like large API spec imports.
|
|
125
|
+
*
|
|
126
|
+
* The operation status endpoint returns:
|
|
127
|
+
* { "status": "InProgress" | "Succeeded" | "Failed" | "Canceled", ... }
|
|
128
|
+
*
|
|
129
|
+
* On success, GETs the original resource to return the final state.
|
|
130
|
+
*/
|
|
131
|
+
private pollAsyncOperation;
|
|
108
132
|
private pollProvisioningState;
|
|
109
133
|
}
|
|
110
134
|
//# sourceMappingURL=apim-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apim-client.d.ts","sourceRoot":"","sources":["../../src/clients/apim-client.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAA0B,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"apim-client.d.ts","sourceRoot":"","sources":["../../src/clients/apim-client.ts"],"names":[],"mappings":"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"}
|