Expected Behavior
When retrieving configuration items without specifying a label, all entries from Azure App Configuration should be returned, including those with the same key but different labels.
Each unique combination of key and label should be preserved.
Actual Behavior
When no label is provided, the component retrieves settings across all labels. However, items are stored in a map keyed only by the configuration key.
As a result:
- entries with the same key but different labels overwrite each other
- only one item per key is returned
- the result is non-deterministic depending on iteration order
- data from other labels is lost
If this behavior is by design, it would be helpful to explicitly document this limitation and clarify that callers should scope requests by label to avoid unintended data loss.
I could not find any info about this behavior here:
https://docs.dapr.io/reference/components-reference/supported-configuration-stores/azure-appconfig-configuration-store/
Steps to Reproduce the Problem
-
Create two configuration entries in Azure App Configuration:
- key:
Config1, label: Development, value: value-dev
- key:
Config1, label: Production, value: value-prod
-
Call GetConfiguration with an empty keys list and without specifying a label.
-
Observe that:
- only one item is returned for
Config1
- the returned value corresponds to only one of the labels (e.g.,
Development or Production)
- the other labeled entry is overwritten and lost
Release Note
RELEASE NOTE:
Expected Behavior
When retrieving configuration items without specifying a label, all entries from Azure App Configuration should be returned, including those with the same key but different labels.
Each unique combination of key and label should be preserved.
Actual Behavior
When no label is provided, the component retrieves settings across all labels. However, items are stored in a map keyed only by the configuration key.
As a result:
If this behavior is by design, it would be helpful to explicitly document this limitation and clarify that callers should scope requests by label to avoid unintended data loss.
I could not find any info about this behavior here:
https://docs.dapr.io/reference/components-reference/supported-configuration-stores/azure-appconfig-configuration-store/
Steps to Reproduce the Problem
Create two configuration entries in Azure App Configuration:
Config1, label:Development, value:value-devConfig1, label:Production, value:value-prodCall
GetConfigurationwith an empty keys list and without specifying a label.Observe that:
Config1DevelopmentorProduction)Release Note
RELEASE NOTE: