refactor(configmanager): simplify SecureStore UI with unified info view

Consolidate SecureStoreLockedFormView and SecureStoreUnlockedFormView into
a single SecureStoreInfoFormView that displays store status and metadata.
Simplifies MainWindowViewModel by removing redundant state management.
Also adds design docs for RegexTransformer feature.
This commit is contained in:
Joseph Doherty
2026-01-22 09:40:38 -05:00
parent 5669bac221
commit 9bf0c29add
28 changed files with 2811 additions and 1527 deletions
@@ -41,6 +41,16 @@ public class ConfigModel
/// Gets or sets the connection strings for external data sources.
/// </summary>
public Dictionary<string, string> ConnectionStrings { get; set; } = new();
/// <summary>
/// Gets or sets the secure store configuration.
/// </summary>
public SecureStoreSection SecureStore { get; set; } = new();
/// <summary>
/// Gets or sets the pipelines configuration.
/// </summary>
public PipelinesSection Pipelines { get; set; } = new();
}
public class DataSyncSection
@@ -230,3 +240,45 @@ public class ExcelExportSection
/// </summary>
public string TimezoneAbbreviation { get; set; } = "CT";
}
/// <summary>
/// Configuration section for the secure store.
/// </summary>
public class SecureStoreSection
{
/// <summary>
/// Gets or sets the path to the secure store file.
/// </summary>
public string StorePath { get; set; } = "data/secrets.json";
/// <summary>
/// Gets or sets the path to the key file for decryption.
/// </summary>
public string KeyFilePath { get; set; } = "data/secrets.key";
/// <summary>
/// Gets or sets the environment variable name for the master key.
/// </summary>
public string MasterKeyEnvVar { get; set; } = "SCOPINGTOOL_MASTER_KEY";
/// <summary>
/// Gets or sets a value indicating whether to auto-create the store if it doesn't exist.
/// </summary>
public bool AutoCreateStore { get; set; } = true;
/// <summary>
/// Gets or sets the list of required secret keys that must exist in the store.
/// </summary>
public List<string> RequiredKeys { get; set; } = [];
}
/// <summary>
/// Configuration section for pipelines.
/// </summary>
public class PipelinesSection
{
/// <summary>
/// Gets or sets the path to the pipelines configuration file.
/// </summary>
public string ConfigPath { get; set; } = "Pipelines/pipelines.json";
}