📄️ Default Values
Fig allows clients to specify a default value for each setting. Default values are specified in the normal way for modern dotnet applications.
📄️ Supported Types
Fig supports most c# property types out of the box with customized editors for each type. More complex types are supported using data grids or JSON.
📄️ Value History
Every value change that occurs in Fig is recorded in the database and is available from within the setting card.
📄️ Validation
String, integer or long type settings can have custom regular expression that will be used to validate the setting. If a value is entered that does not match the regex then a custom message will be shown to the person configuring the setting and saving will not be allowed.
📄️ Secret Settings
Fig supports protecting the values of some settings. Secret settings are treated as passwords within the web client and are not shown to the configuring user.
📄️ Advanced Settings
An advanced setting is one that has a reasonable default value that would not need to be changed in a normal deployment. As a result, Fig will hide this setting by default to allow those configuring the application to focus on the settings that do need to be changed. An example might be a timeout value. In most cases, the developer will have chosen a reasonable default but the setting is still included incase it needs to be changed for debugging for when the application is deployed in a specific environment.
📄️ Ordering
Fig orders settings in the web application in the same order they appear within the settings class.
📄️ Multi-Line Strings
Multi-line string settings are supported in Fig by adding an attribute to the string setting.
📄️ Valid Values (Dropdowns)
In many cases, settings may have a limited set of valid values. In these scenarios, it will assist those configuring the application to provide a dropdown list of valid values to choose from. One example might be the selection of log levels or setting an enum value.
📄️ Verification
Verification attrbutes can be added to classes to enable verification from within the Web Client.
📄️ Category
It is possible to display an association between different settings using the category feature. When a setting is assigned a category, it is assigned a category name and a color which will visually indicate that it is related to other settings with the same color and category name.
📄️ Data Grids
Fig supports data grids for displaying complex settings.
📄️ Dependent Settings
Sometimes there are settings that enable other settings. For example an application might be able to work both with and without authentication. If authentication is selected then a username and password must be supplied. In this case, we can add an attribute to the authentication switch to hide the irrelevant settings when disabled.
📄️ Live Update
Fig supports live setting update by default. This means that when a setting value is updated within the Fig web client and saved, any connected clients will be informed of this change on their next poll interval and then request the updated values and apply them. This can be tracked under connected clients within the web client.
📄️ Setting Constants
Fig supports substituting live values with pre-defined constants in string settings so they are available to the using services.
📄️ Groups
Fig has the capability to group settings from multiple setting clients so they can be edited in one place. This is useful when multiple applications require the same configuration such as a database connection string. With the groups feature this can be set once and applied to all requesting clients simultaneously.
📄️ Configuration Section
Fig is a configuration provider which means it sets values when are then made available for consumption within the application. When configuring settings for an application, it makes sense for all configuration items to reside within one class (or at least be referenced from that class). However, there are some use cases where you would like Fig to set values for different configuration sections.
📄️ Setting Descriptions
Descriptions should be supplied with each setting to explain what the setting does and any potential implications of changing it. Descriptions are provided within the [Setting] attribute.
📄️ Nested Settings
This feature was introduced in Fig v0.11.
📄️ display-scripts
---