feat(configmanager): integrate SecureStore for credential management
Add SecureStore integration to ConfigManager for secure handling of connection strings and sensitive configuration values. Includes store/secret management UI, encrypted .store file support, and comprehensive test coverage.
This commit is contained in:
@@ -36,6 +36,15 @@
|
||||
<DataTemplate DataType="{x:Type forms:PipelineFormViewModel}">
|
||||
<views:PipelineFormView/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type forms:SecureStoreLockedFormViewModel}">
|
||||
<views:SecureStoreLockedFormView/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type forms:SecureStoreUnlockedFormViewModel}">
|
||||
<views:SecureStoreUnlockedFormView/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type forms:SecretFormViewModel}">
|
||||
<views:SecretFormView/>
|
||||
</DataTemplate>
|
||||
</Window.DataTemplates>
|
||||
|
||||
<DockPanel>
|
||||
@@ -57,6 +66,35 @@
|
||||
<Separator/>
|
||||
<MenuItem Header="View _Backups..."/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Secure Stores">
|
||||
<MenuItem Header="_New Store..." Command="{Binding NewStoreCommand}" InputGesture="Ctrl+Shift+N">
|
||||
<MenuItem.Icon>
|
||||
<TextBlock Text="+" FontSize="14" FontWeight="Bold"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Add Existing Store..." Command="{Binding AddExistingStoreCommand}" InputGesture="Ctrl+Shift+O">
|
||||
<MenuItem.Icon>
|
||||
<TextBlock Text="..." FontSize="14"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<Separator/>
|
||||
<MenuItem Header="_Save Store" Command="{Binding SaveStoreCommand}" InputGesture="Ctrl+Shift+S">
|
||||
<MenuItem.Icon>
|
||||
<TextBlock Text="S" FontSize="12" FontWeight="Bold"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Lock All Stores" Command="{Binding LockAllStoresCommand}">
|
||||
<MenuItem.Icon>
|
||||
<TextBlock Text="L" FontSize="12" FontWeight="Bold"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<Separator/>
|
||||
<MenuItem Header="_Generate Key File..." Command="{Binding GenerateKeyFileCommand}">
|
||||
<MenuItem.Icon>
|
||||
<TextBlock Text="K" FontSize="12" FontWeight="Bold"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Help">
|
||||
<MenuItem Header="_About ConfigManager"/>
|
||||
</MenuItem>
|
||||
@@ -74,6 +112,9 @@
|
||||
<Border Width="1" Height="20" Background="#2D3540" Margin="4,0"/>
|
||||
<Button Content="Test" Command="{Binding TestConnectionCommand}" Classes="toolbar"/>
|
||||
<Button Content="Validate" Command="{Binding ValidateCommand}" Classes="toolbar"/>
|
||||
<Border Width="1" Height="20" Background="#2D3540" Margin="4,0"/>
|
||||
<Button Content="Unlock" Command="{Binding UnlockStoreCommand}" ToolTip.Tip="Unlock/Lock Store" Classes="toolbar"/>
|
||||
<Button Content="+ Secret" Command="{Binding AddSecretCommand}" ToolTip.Tip="Add Secret" Classes="toolbar"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
@@ -123,6 +164,17 @@
|
||||
SelectedItem="{Binding SelectedNode}"
|
||||
Background="Transparent"
|
||||
Margin="8">
|
||||
<TreeView.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="Unlock Store..." Command="{Binding UnlockStoreCommand}"/>
|
||||
<MenuItem Header="Lock Store" Command="{Binding LockStoreCommand}"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Add Secret..." Command="{Binding AddSecretCommand}"/>
|
||||
<MenuItem Header="Delete Secret" Command="{Binding DeleteSecretCommand}"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Save Store" Command="{Binding SaveStoreCommand}"/>
|
||||
</ContextMenu>
|
||||
</TreeView.ContextMenu>
|
||||
<TreeView.ItemTemplate>
|
||||
<TreeDataTemplate ItemsSource="{Binding Children}">
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
|
||||
Reference in New Issue
Block a user