Implement `labels` Property for Cfgu Declaration
rannn505 opened this issue · comments
Suggestion
Introduce a labels
property as an optional string array within the Cfgu declaration. This feature enables users to assign one or more labels to ConfigKeys
, facilitating organization and grouping for better manageability. Furthermore, these labels can be leveraged as filters in export operations, allowing for selective inclusion or exclusion of configurations based on specified labels.
Example Configuration:
{
"API_ENDPOINT": {
"type": "String",
"labels": ["frontend", "critical"]
},
"DATABASE_URL": {
"type": "String",
"labels": ["backend", "secure"]
},
"FEATURE_FLAG_NEW_UI": {
"type": "Boolean",
"default": false,
"labels": ["frontend", "experiment"]
}
}
This configuration illustrates the assignment of labels to different ConfigKeys
, categorizing them under labels such as frontend
, backend
, critical
, secure
, and experiment
. These labels can then be referenced to filter configurations during export operations, enhancing control over the configuration management process.
Motivation
The labels
property significantly enhances the organizational structure and filtering capabilities within the configuration management process. By enabling users to group and tag ConfigKeys
with meaningful labels, it simplifies the management and export of configurations, particularly in complex systems with numerous configuration parameters. It also facilitates targeted configuration deployments and easier maintenance by allowing operations to focus on specific aspects or areas of the system as defined by the labels.
Context
As systems grow in complexity, managing an extensive list of configurations becomes increasingly challenging. The ability to categorize and filter configurations based on labels addresses this challenge by providing a mechanism for more granular control over which configurations are included or excluded in various environments or deployment scenarios. The introduction of --include-label
and --exclude-label
flags in the CLI, derived from this labeling system, further streamlines the configuration management workflow, making it more adaptable to varied operational requirements.
Development Plan
- Add
label:string[]
toCfgu
- Update docs (if necessary)
Questions / Requests
- Shouldn't it be plurals eg.
labels
? @RichardAkman | @rannn505
Notes / Comments / Additional
- Consider
Tag(s)
instead @RichardAkman | @rannn505