Refactor SAML configuration deployment and enhance Authentik integration
- Removed SAML configuration deployment calls from PostInstanceInitService. - Updated DeploySamlConfigurationAsync to improve template fetching logic from Git and local directories. - Added Authentik flow and keypair models for better representation in the UI. - Enhanced SettingsViewModel to include Authentik settings with save and test functionality. - Updated UI to support Authentik configuration, including dropdowns for flows and keypairs. - Changed default CMS server name template to "app.ots-signs.com" across various files. - Improved password handling in SshDockerCliService for secure shell command execution. - Added new template file for settings-custom.php in the project structure.
This commit is contained in:
@@ -14,12 +14,14 @@
|
||||
<!-- Top toolbar -->
|
||||
<Border DockPanel.Dock="Top" Classes="toolbar" Margin="0,0,0,16">
|
||||
<StackPanel Orientation="Horizontal" Spacing="10">
|
||||
<Button Content="Save All Settings"
|
||||
<Button Content="Push to Bitwarden"
|
||||
Classes="accent"
|
||||
Command="{Binding SaveCommand}"
|
||||
Command="{Binding PushToBitwardenCommand}"
|
||||
IsEnabled="{Binding !IsBusy}"
|
||||
FontWeight="SemiBold" Padding="20,8" />
|
||||
<Button Content="Reload" Command="{Binding LoadCommand}" IsEnabled="{Binding !IsBusy}" />
|
||||
<Button Content="Pull from Bitwarden"
|
||||
Command="{Binding PullFromBitwardenCommand}"
|
||||
IsEnabled="{Binding !IsBusy}" />
|
||||
<TextBlock Text="{Binding StatusMessage}" Classes="status"
|
||||
VerticalAlignment="Center" Margin="6,0,0,0" />
|
||||
</StackPanel>
|
||||
@@ -72,10 +74,15 @@
|
||||
<TextBox Text="{Binding BitwardenInstanceProjectId}"
|
||||
Watermark="00000000-0000-0000-0000-000000000000 (leave empty to use default project)" />
|
||||
|
||||
<Button Content="Test Bitwarden Connection"
|
||||
Command="{Binding TestBitwardenConnectionCommand}"
|
||||
IsEnabled="{Binding !IsBusy}"
|
||||
Margin="0,6,0,0" />
|
||||
<StackPanel Orientation="Horizontal" Spacing="10" Margin="0,6,0,0">
|
||||
<Button Content="Save Bitwarden Config"
|
||||
Classes="accent"
|
||||
Command="{Binding SaveBitwardenLocalCommand}"
|
||||
IsEnabled="{Binding !IsBusy}" />
|
||||
<Button Content="Test Connection"
|
||||
Command="{Binding TestBitwardenConnectionCommand}"
|
||||
IsEnabled="{Binding !IsBusy}" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
@@ -310,6 +317,88 @@
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ═══ Authentik (SAML IdP) ═══ -->
|
||||
<Border Classes="card">
|
||||
<StackPanel Spacing="8">
|
||||
<StackPanel Orientation="Horizontal" Spacing="8" Margin="0,0,0,4">
|
||||
<Border Width="4" Height="20" CornerRadius="2" Background="#FB923C" />
|
||||
<TextBlock Text="Authentik (SAML IdP)" FontSize="16" FontWeight="SemiBold"
|
||||
Foreground="#FB923C" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
<TextBlock Text="Authentik identity provider settings. A SAML application is automatically provisioned in Authentik for each new instance during post-init, and a settings-custom.php file is deployed."
|
||||
FontSize="12" Foreground="{StaticResource TextMutedBrush}" Margin="0,0,0,6"
|
||||
TextWrapping="Wrap" />
|
||||
|
||||
<TextBlock Text="Authentik Base URL" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" />
|
||||
<TextBox Text="{Binding AuthentikUrl}"
|
||||
Watermark="https://id.oribi-tech.com" />
|
||||
|
||||
<TextBlock Text="API Token" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" />
|
||||
<TextBox Text="{Binding AuthentikApiKey}" PasswordChar="●"
|
||||
Watermark="Bearer token for /api/v3/" />
|
||||
|
||||
<!-- Save & Test button -->
|
||||
<StackPanel Orientation="Horizontal" Spacing="10" Margin="0,8,0,0">
|
||||
<Button Content="Save & Test Connection"
|
||||
Classes="accent"
|
||||
Command="{Binding SaveAndTestAuthentikCommand}"
|
||||
IsEnabled="{Binding !IsAuthentikBusy}"
|
||||
FontWeight="SemiBold" Padding="16,8" />
|
||||
<Button Content="Refresh Dropdowns"
|
||||
Command="{Binding FetchAuthentikDropdownsCommand}"
|
||||
IsEnabled="{Binding !IsAuthentikBusy}"
|
||||
Padding="16,8" />
|
||||
</StackPanel>
|
||||
<TextBlock Text="{Binding AuthentikStatusMessage}"
|
||||
FontSize="12" Foreground="{StaticResource TextSecondaryBrush}"
|
||||
TextWrapping="Wrap" Margin="0,2,0,0" />
|
||||
|
||||
<!-- Flow / Keypair dropdowns -->
|
||||
<Border Height="1" Background="{StaticResource BorderSubtleBrush}" Margin="0,12,0,4" />
|
||||
<TextBlock Text="Flows & Keypairs" FontSize="13" FontWeight="SemiBold" Margin="0,4,0,4"
|
||||
Foreground="{StaticResource TextPrimaryBrush}" />
|
||||
<TextBlock Text="These are loaded from your Authentik instance. Save & Test to populate."
|
||||
FontSize="12" Foreground="{StaticResource TextMutedBrush}" Margin="0,0,0,4"
|
||||
TextWrapping="Wrap" />
|
||||
|
||||
<TextBlock Text="Authorization Flow" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" />
|
||||
<ComboBox ItemsSource="{Binding AuthentikAuthorizationFlows}"
|
||||
SelectedItem="{Binding SelectedAuthorizationFlow}"
|
||||
HorizontalAlignment="Stretch"
|
||||
PlaceholderText="(save & test to load flows)">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:SettingsViewModel">
|
||||
<TextBlock Text="{Binding}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
|
||||
<TextBlock Text="Invalidation Flow" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" />
|
||||
<ComboBox ItemsSource="{Binding AuthentikInvalidationFlows}"
|
||||
SelectedItem="{Binding SelectedInvalidationFlow}"
|
||||
HorizontalAlignment="Stretch"
|
||||
PlaceholderText="(save & test to load flows)">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:SettingsViewModel">
|
||||
<TextBlock Text="{Binding}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
|
||||
<TextBlock Text="Signing Keypair" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" />
|
||||
<ComboBox ItemsSource="{Binding AuthentikKeypairs}"
|
||||
SelectedItem="{Binding SelectedSigningKeypair}"
|
||||
HorizontalAlignment="Stretch"
|
||||
PlaceholderText="(save & test to load keypairs)">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:SettingsViewModel">
|
||||
<TextBlock Text="{Binding}" />
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
</StackPanel> <!-- end of IsBitwardenConfigured wrapper -->
|
||||
|
||||
</StackPanel>
|
||||
|
||||
Reference in New Issue
Block a user