configu / configu

Open-source ConfigOps infrastructure ⚙️

Home Page:https://configu.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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[] to Cfgu
  • Update docs (if necessary)

Questions / Requests

Notes / Comments / Additional