Initial commit: ESB Certificate Manager.
EOF Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
/*
|
||||
ESB Certificate Manager – vollständiges Datenbankschema v2
|
||||
Idempotent; kann auf einem leeren Schema oder nach 001_CreateSchema.sql ausgeführt werden.
|
||||
|
||||
Tabellen:
|
||||
dbo.SonicConnection – Sonic-ESB-Management-Instanzen
|
||||
dbo.DeploymentTargets – Deployment-Ziele mit allen Konfigurationsfeldern
|
||||
dbo.DeploymentRuns – Ein Eintrag pro Deployment-Lauf
|
||||
dbo.DeploymentTargetResults – Detailergebnis pro Ziel und Lauf
|
||||
|
||||
Always Encrypted (optional):
|
||||
Zur Nutzung von Always Encrypted auf der Spalte PasswordHash in SonicConnection
|
||||
die Blöcke unterhalb des Kommentars "-- ALWAYS ENCRYPTED" auskommentieren
|
||||
und den Schlüsselnamen anpassen.
|
||||
*/
|
||||
|
||||
-- ============================================================
|
||||
-- SonicConnection
|
||||
-- ============================================================
|
||||
IF OBJECT_ID(N'dbo.SonicConnection', N'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.SonicConnection
|
||||
(
|
||||
Id INT NOT NULL IDENTITY(1, 1),
|
||||
Name NVARCHAR(128) NOT NULL, -- Eindeutiger Bezeichner, referenziert von DeploymentTargets
|
||||
DomainName NVARCHAR(128) NOT NULL, -- Sonic-Domain, z.B. "proalpha-test"
|
||||
ConnectionUrl NVARCHAR(512) NOT NULL, -- Sonic-Broker-URL, z.B. "tcp://dekun-painwbdet:13070"
|
||||
ManagementHttpPort INT NOT NULL CONSTRAINT DF_SonicConnection_HttpPort DEFAULT (8080),
|
||||
ApiBasePath NVARCHAR(128) NOT NULL CONSTRAINT DF_SonicConnection_ApiBase DEFAULT (N'/api/v1'),
|
||||
Username NVARCHAR(128) NOT NULL,
|
||||
PasswordHash NVARCHAR(512) NOT NULL CONSTRAINT DF_SonicConnection_PwdHash DEFAULT (N''),
|
||||
-- ALWAYS ENCRYPTED: PasswordEncrypted NVARCHAR(512) ENCRYPTED WITH (
|
||||
-- COLUMN_ENCRYPTION_KEY = CEK_SonicPwd,
|
||||
-- ENCRYPTION_TYPE = DETERMINISTIC,
|
||||
-- ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
|
||||
-- ) NULL,
|
||||
TimeoutSeconds INT NOT NULL CONSTRAINT DF_SonicConnection_Timeout DEFAULT (30),
|
||||
PostRestartDelaySecs INT NOT NULL CONSTRAINT DF_SonicConnection_Delay DEFAULT (15),
|
||||
IsActive BIT NOT NULL CONSTRAINT DF_SonicConnection_Active DEFAULT (1),
|
||||
CONSTRAINT PK_SonicConnection PRIMARY KEY CLUSTERED (Id),
|
||||
CONSTRAINT UQ_SonicConnection_Name UNIQUE (Name)
|
||||
);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
-- ConnectionUrl-Spalte nachrüsten (Migration von ManagementUrl)
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns
|
||||
WHERE object_id = OBJECT_ID(N'dbo.SonicConnection') AND name = N'ConnectionUrl')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.SonicConnection ADD ConnectionUrl NVARCHAR(512) NOT NULL
|
||||
CONSTRAINT DF_SonicConnection_ConnUrl DEFAULT (N'');
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns
|
||||
WHERE object_id = OBJECT_ID(N'dbo.SonicConnection') AND name = N'ManagementHttpPort')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.SonicConnection ADD ManagementHttpPort INT NOT NULL
|
||||
CONSTRAINT DF_SonicConnection_HttpPort DEFAULT (8080);
|
||||
END
|
||||
END
|
||||
GO
|
||||
|
||||
-- ============================================================
|
||||
-- DeploymentTargets
|
||||
-- ============================================================
|
||||
IF OBJECT_ID(N'dbo.DeploymentTargets', N'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.DeploymentTargets
|
||||
(
|
||||
Id INT NOT NULL IDENTITY(1, 1),
|
||||
Name NVARCHAR(100) NOT NULL,
|
||||
Environment NVARCHAR(64) NOT NULL CONSTRAINT DF_DT_Env DEFAULT (N''),
|
||||
IsActive BIT NOT NULL CONSTRAINT DF_DT_IsActive DEFAULT (1),
|
||||
|
||||
-- Zertifikat-Ablage
|
||||
CertificateTargetPath NVARCHAR(500) NOT NULL,
|
||||
CertificateFileName NVARCHAR(260) NOT NULL CONSTRAINT DF_DT_CertFile DEFAULT (N''),
|
||||
|
||||
-- Neustart-Konfiguration
|
||||
RestartType NVARCHAR(30) NOT NULL CONSTRAINT DF_DT_RestartType DEFAULT (N'None'),
|
||||
RestartHost NVARCHAR(255) NULL,
|
||||
RestartCommand NVARCHAR(2000) NULL,
|
||||
RestartArguments NVARCHAR(1024) NOT NULL CONSTRAINT DF_DT_RestartArgs DEFAULT (N''),
|
||||
RestartTimeoutSeconds INT NOT NULL CONSTRAINT DF_DT_RestartTimeout DEFAULT (60),
|
||||
|
||||
-- Sonic ESB
|
||||
SonicConnectionName NVARCHAR(128) NOT NULL CONSTRAINT DF_DT_SonicConn DEFAULT (N''),
|
||||
ContainerName NVARCHAR(128) NOT NULL CONSTRAINT DF_DT_Container DEFAULT (N''),
|
||||
XapiSourcePath NVARCHAR(512) NOT NULL CONSTRAINT DF_DT_XapiSrc DEFAULT (N''),
|
||||
|
||||
-- TLS-Probe
|
||||
TlsHost NVARCHAR(255) NOT NULL CONSTRAINT DF_DT_TlsHost DEFAULT (N''),
|
||||
TlsPort INT NOT NULL CONSTRAINT DF_DT_TlsPort DEFAULT (443),
|
||||
TlsServerName NVARCHAR(255) NOT NULL CONSTRAINT DF_DT_TlsServerName DEFAULT (N''),
|
||||
ExpectedFingerprint NVARCHAR(128) NULL,
|
||||
|
||||
SortOrder INT NOT NULL CONSTRAINT DF_DT_SortOrder DEFAULT (0),
|
||||
|
||||
CONSTRAINT PK_DeploymentTargets PRIMARY KEY CLUSTERED (Id),
|
||||
CONSTRAINT CK_DeploymentTargets_RestartType CHECK (
|
||||
RestartType IN (N'None', N'Command', N'SonicContainer', N'SonicContainerWithXapi')
|
||||
)
|
||||
);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
-- Neue Spalten idempotent nachrüsten
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.DeploymentTargets') AND name = N'TlsServerName')
|
||||
ALTER TABLE dbo.DeploymentTargets ADD TlsServerName NVARCHAR(255) NOT NULL CONSTRAINT DF_DT_TlsServerName DEFAULT (N'');
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.DeploymentTargets') AND name = N'ExpectedFingerprint')
|
||||
ALTER TABLE dbo.DeploymentTargets ADD ExpectedFingerprint NVARCHAR(128) NULL;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.DeploymentTargets') AND name = N'SonicConnectionName')
|
||||
ALTER TABLE dbo.DeploymentTargets ADD SonicConnectionName NVARCHAR(128) NOT NULL CONSTRAINT DF_DT_SonicConn DEFAULT (N'');
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.DeploymentTargets') AND name = N'ContainerName')
|
||||
ALTER TABLE dbo.DeploymentTargets ADD ContainerName NVARCHAR(128) NOT NULL CONSTRAINT DF_DT_Container DEFAULT (N'');
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.DeploymentTargets') AND name = N'XapiSourcePath')
|
||||
ALTER TABLE dbo.DeploymentTargets ADD XapiSourcePath NVARCHAR(512) NOT NULL CONSTRAINT DF_DT_XapiSrc DEFAULT (N'');
|
||||
END
|
||||
GO
|
||||
|
||||
-- ============================================================
|
||||
-- DeploymentRuns (ein Datensatz pro Deployment-Lauf)
|
||||
-- ============================================================
|
||||
IF OBJECT_ID(N'dbo.DeploymentRuns', N'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.DeploymentRuns
|
||||
(
|
||||
Id UNIQUEIDENTIFIER NOT NULL,
|
||||
StartedAtUtc DATETIME2(3) NOT NULL,
|
||||
FinishedAtUtc DATETIME2(3) NULL,
|
||||
SourceFile NVARCHAR(500) NOT NULL,
|
||||
SourceFingerprint NVARCHAR(128) NOT NULL,
|
||||
StartedBy NVARCHAR(255) NOT NULL,
|
||||
MachineName NVARCHAR(255) NOT NULL CONSTRAINT DF_DR_Machine DEFAULT (N''),
|
||||
OverallStatus NVARCHAR(30) NOT NULL, -- 'Running' | 'Success' | 'PartialFailure' | 'Failure'
|
||||
ErrorMessage NVARCHAR(MAX) NULL,
|
||||
CONSTRAINT PK_DeploymentRuns PRIMARY KEY CLUSTERED (Id)
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
-- ============================================================
|
||||
-- DeploymentTargetResults (ein Datensatz pro Ziel und Lauf)
|
||||
-- ============================================================
|
||||
IF OBJECT_ID(N'dbo.DeploymentTargetResults', N'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.DeploymentTargetResults
|
||||
(
|
||||
Id INT NOT NULL IDENTITY(1, 1),
|
||||
DeploymentRunId UNIQUEIDENTIFIER NOT NULL,
|
||||
TargetId INT NOT NULL,
|
||||
TargetName NVARCHAR(128) NOT NULL,
|
||||
StartedAtUtc DATETIME2(3) NOT NULL,
|
||||
FinishedAtUtc DATETIME2(3) NULL,
|
||||
CopySucceeded BIT NOT NULL CONSTRAINT DF_DTR_Copy DEFAULT (0),
|
||||
RestartSucceeded BIT NOT NULL CONSTRAINT DF_DTR_Restart DEFAULT (0),
|
||||
TlsSucceeded BIT NOT NULL CONSTRAINT DF_DTR_Tls DEFAULT (0),
|
||||
ObservedFingerprint NVARCHAR(128) NULL,
|
||||
Status NVARCHAR(30) NOT NULL,
|
||||
ErrorMessage NVARCHAR(MAX) NULL,
|
||||
CONSTRAINT PK_DeploymentTargetResults PRIMARY KEY CLUSTERED (Id),
|
||||
CONSTRAINT FK_DTR_Run FOREIGN KEY (DeploymentRunId) REFERENCES dbo.DeploymentRuns (Id)
|
||||
);
|
||||
|
||||
CREATE NONCLUSTERED INDEX IX_DTR_RunId ON dbo.DeploymentTargetResults (DeploymentRunId);
|
||||
END
|
||||
GO
|
||||
|
||||
-- ============================================================
|
||||
-- Beispieldaten
|
||||
-- ============================================================
|
||||
/*
|
||||
INSERT INTO dbo.SonicConnection (Name, DomainName, ConnectionUrl, Username, PasswordHash)
|
||||
VALUES (N'DE-Test', N'proalpha-test', N'tcp://dekun-painwbdet:13070', N'Administrator', N'<encrypted>');
|
||||
|
||||
INSERT INTO dbo.DeploymentTargets
|
||||
(Name, Environment, IsActive, CertificateTargetPath, CertificateFileName,
|
||||
RestartType, SonicConnectionName, ContainerName,
|
||||
TlsHost, TlsPort, TlsServerName, SortOrder)
|
||||
VALUES
|
||||
(N'DE-Test Container A', N'TEST', 1,
|
||||
N'\\dekun-painwbdet\sonic\certs', N'server.pfx',
|
||||
N'SonicContainer', N'DE-Test', N'sonic-container-a',
|
||||
N'dekun-painwbdet', 443, N'esb-test.firma.local', 10),
|
||||
(N'DE-Test Container B (XApi)', N'TEST', 1,
|
||||
N'\\dekun-painwbdet\sonic\certs', N'server.pfx',
|
||||
N'SonicContainerWithXapi', N'DE-Test', N'sonic-container-b',
|
||||
N'dekun-painwbdet', 443, N'esb-test.firma.local', 20);
|
||||
*/
|
||||
Reference in New Issue
Block a user