This extension allows users to manage configuration values through a more convenient UI for feature flags or other similar toggles. The advantage this has over simply using library variables is that, in addition to having a better UX, it provides an audit log for changes made by users.
To accomplish this, it requires access to the following scopes:
vso.code_write
- Needed to save value changes and log the actionvso.extension.data_write
- Needed to configure the git repository used to maintain values (so you are not required to select the repo each time you load the extension)vso.graph
- Used to query for security permissionsvso.identity
- Used to identify the current user
To get started, follow these steps:
-
Create a new git repository with a branch called
main
in the project you want to host a collection of configuration values -
Open up the project and select the Feature Flags hub in ADO
-
During initialization, it will report an error stating it does not know which repository to use. Click the 'Set Repository' button and pick the repo you created in step 1:
-
After you pick the repository, you will get another error stating there is no
manifest.json
file. Click theCreate File
button once you receive the error message: -
You should now be able to see any configured values
- The template has no settings - you currently need to manually edit the
manifest.json
file to add new environments/values. Until functionality is added to the UI to support this, example-manifest.json can be used as a reference to show the capabilities of the tool.- Below is an example of what you should see when the extension is loaded using the
example-manifest.json
file:
- Below is an example of what you should see when the extension is loaded using the
- The template has no settings - you currently need to manually edit the
Final notes:
Once you have configurations set up, you can then create pipelines that monitor the main branch in the repository for changes. The pipelines can then deploy those changes to the appropriate destination(s), such as Consul or Vault.
Currently there are no security restrictions being enforced, allowing anybody with access to the project the abililty to access the extension. If you would like to limit write access to the settings, this can be managed through normal security policies on the git repository.
Made with contrib.rocks.