Workspace-scoped override properties not applied
@azaslonov がすでに取り組んでいます。
2026年7月7日 から。
評価
この issue はまだ評価されていません。
説明
User Impact
When using an environment override file (e.g., configuration.prod.yaml) with workspace-scoped overrides like this:
workspaces:
- name: my-workspace
properties:
description: "Production workspace"
apis:
- name: my-api
properties:
serviceUrl: "https://prod.example.com"
backends:
- name: my-backend
properties:
url: "https://prod-backend.example.com"
The CLI applies overrides to the workspace container itself (the properties on the workspace entry), but silently ignores all nested child overrides (apis, backends, loggers, etc. within the workspace). Customers migrating from the APIOps Toolkit who use workspace-scoped overrides will find that their workspace child resources are published with dev/staging values instead of the expected production values.
Technical Details
The APIOps Toolkit resolves overrides using a parent chain — when publishing a resource scoped to a workspace (e.g., workspace API my-api in workspace my-workspace), it walks the override config: workspaces → my-workspace → apis → my-api → properties.
The CLI currently:
- Parses workspace child override sections correctly in
config-loader.ts(nested entries under workspaces are stored inOverrideEntry.children) - Never applies them —
override-merger.tsdoesn't checkdescriptor.workspaceto determine if a resource is workspace-scoped, and doesn't look into workspace entry children for the override
Expected Behavior
When publishing a workspace-scoped resource, the override merger should:
- Check if the resource's descriptor has a
workspacefield set - If so, look up the workspace in the
workspacesoverride section - Navigate into that workspace's children to find the appropriate override for the child resource type and name
- Apply the override properties via deep merge
This should work for all workspace child types (apis, backends, diagnostics, groups, loggers, namedValues, policyFragments, products, subscriptions, tags, versionSets) including nested API sub-resources (workspace api → diagnostics, operations, policies, releases).
Related
This was identified during the filter/override format alignment work in #114 / PR #115.
- 主要言語
- TypeScript
- スター
- 29
- フォーク
- 10
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 23
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Azure/apiops-cli のほかの issue
-
type:question
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Azure/apiops-cli#277 ·
-
type:documentation
難易度 1/5 1時間未満 初心者へのやさしさ 94/100
Azure/apiops-cli#250 ·
-
Documentation P2
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Azure/apiops-cli#24 · コメント 1 件 ·
-
type:bug
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
Azure/apiops-cli#294 ·
-
type:bug
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
Azure/apiops-cli#291 ·
Azure/apiops-cli の issue をすべて見る
似ている issue
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
Mend: dependency security vulnerability untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100