Simplify app to certificate recognition and MfApi restart only.

Remove XApi, WinRM, LocalCmd, HTTP API, TLS probe, SQL deploy model, and deploy UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-24 11:06:10 +02:00
co-authored by Cursor
parent 7a9cdb6ecf
commit 12eebfc78a
23 changed files with 735 additions and 5189 deletions
@@ -4,64 +4,9 @@ public sealed class DeploymentTarget
{
public int Id { get; init; }
public required string Name { get; init; }
public required string Environment { get; init; }
public string Environment { get; init; } = "TEST";
public bool IsActive { get; init; } = true;
public required string TargetDirectory { get; init; }
public required string CertificateFileName { get; init; }
/// <summary>Name des Sonic-ESB-Containers (z.B. "sonic-container-a").</summary>
public string ContainerName { get; init; } = string.Empty;
public RestartType RestartType { get; init; } = RestartType.None;
// --- Command-basierter Neustart ---
public string RestartCommand { get; init; } = string.Empty;
public string RestartArguments { get; init; } = string.Empty;
public int RestartTimeoutSeconds { get; init; } = 60;
// --- Sonic-ESB-Management-Neustart ---
/// <summary>
/// Referenz auf den Namen einer <see cref="SonicConnection"/> in AppSettings.
/// Pflichtfeld bei RestartType = SonicContainer oder SonicContainerWithXapi.
/// </summary>
public string SonicConnectionName { get; init; } = string.Empty;
/// <summary>
/// Pfad zur XApi-Ressourcendatei (.xml/.zip), die vor dem Neustart importiert wird.
/// Pflichtfeld bei RestartType = SonicContainerWithXapi.
/// </summary>
public string XapiSourcePath { get; init; } = string.Empty;
// --- TLS-Probe nach Deployment ---
public string TlsHost { get; init; } = string.Empty;
public int? TlsPort { get; init; }
/// <summary>
/// Hostname, der im TLS-Handshake als ServerName (SNI) verwendet wird.
/// Wichtig wenn TlsHost eine IP-Adresse ist, das Zertifikat aber einen DNS-Namen trägt.
/// Ist leer, wird TlsHost als ServerName verwendet.
/// </summary>
public string TlsServerName { get; init; } = string.Empty;
/// <summary>
/// Erwarteter SHA-256-Fingerprint des Zertifikats nach dem Deployment (ohne Trennzeichen).
/// Wenn gesetzt, schlägt der TLS-Probe fehl wenn der Fingerprint abweicht.
/// </summary>
public string? ExpectedFingerprint { get; init; }
public int SortOrder { get; init; }
}
public enum RestartType
{
None = 0,
/// <summary>Neustart über einen lokalen Betriebssystem-Prozess (RestartCommand).</summary>
Command = 1,
/// <summary>Container-Neustart wie in der Sonic Management Console (stop/startcontainer bzw. SMC-API).</summary>
SonicContainer = 2,
/// <summary>XApi-Ressourcen importieren und danach Container neu starten (Sonic ESB).</summary>
SonicContainerWithXapi = 3
}