Externally Managed Settings
When using Fig with a CICD pipeline, you may want some or all settings to be managed by that pipeline (e.g. stored in git). In this case, you might use the powershell module to import setting values into Fig so they can be read by the applications.
If these settings are written on every deploy, you won't want someone editing the values within Fig as the value will just be overriden. In this case, you can mark the setting as 'externally managed'. This makes it read only in Fig.
Settings can be marked as externally managed in 3 ways.
Globally
Add the attribute at the top of the import.
{
"ExportedAt": "2025-02-07T20:28:16.175812Z",
"ImportType": 3,
"Version": 1,
"IsExternallyManaged": true,
"Clients": [
{
"Name": "AspNetApi",
"Instance": null,
"Settings": [
{
"Name": "Location",
"Value": "Adelaide"
},
{
"Name": "MicrosoftLogOverride",
"Value": "Information"
}
]
}
]
}
Per Setting
Alternatively you can mark individual settings as being externally managed. This is only supported for value only imports.
{
"ExportedAt": "2025-02-07T20:28:16.175812Z",
"ImportType": 3,
"Version": 1,
"Clients": [
{
"Name": "AspNetApi",
"Instance": null,
"Settings": [
{
"Name": "Location",
"Value": "Adelaide",
"IsExternallyManaged": true
},
{
"Name": "MicrosoftLogOverride",
"Value": "Information"
}
]
}
]
}
A combination of both
{
"ExportedAt": "2025-02-07T20:28:16.175812Z",
"ImportType": 3,
"Version": 1,
"IsExternallyManaged": true,
"Clients": [
{
"Name": "AspNetApi",
"Instance": null,
"Settings": [
{
"Name": "Location",
"Value": "Adelaide",
"IsExternallyManaged": false
},
{
"Name": "MicrosoftLogOverride",
"Value": "Information"
}
]
}
]
}
Client Display
Any setting that is externally managed will be shown read only in the UI.
When the user clicks the red padlock, they will be prompted to confirm that they understand the setting is externally managed and then they will be allowed to edit the setting again as normal.
When a change is made to an externally managed setting:
- a warning is shown to the user before save
- an addition event log is added indicating that an externally managed setting was changed.