Azure / Azure/apiops-cli

serviceUrl (and other ARM-level API properties) from overrides file are silently dropped when API has a specification

Open
#141 1 comment 0 reactions 1 assignee Claimed by @azaslonov View on GitHub
P1
Dominant language
TypeScript
Stars
26
Forks
9
Avg merge
1d 1h
Merged PRs (30d)
19

Description

When an API has a specification file, publishRootApi() sends a single PUT containing both the override-merged properties (like serviceUrl) and spec body (properties.format + properties.value). APIM treats the spec as authoritative during import and re-derives serviceUrl from the spec's servers[0].url / host + basePath, silently discarding the override.

alignActiveRevisionWithSource() does a metadata-only re-PUT, but only fires when the API has additional revisions and is marked isCurrent, so single-revision APIs never had their overrides re-asserted.

Symptom
Given an overrides file:

apis:
- name: swagger-petstore
properties:
serviceUrl: https://prod-petstore.example.com

and a source folder that contains both swagger-petstore/apiInformation.json and swagger-petstore/specification.yaml, running:

apiops publish --source ./artifacts --overrides ./overrides.yaml ...

Expected: destination APIM Backend → HTTP(s) endpoint = https://prod-petstore.example.com

Actual: The override is silently ignored.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.