Add complete seed, Always Encrypted cert package, and TEST system DE-Test.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-29 08:30:12 +02:00
co-authored by Cursor
parent dcfcb5289d
commit e45ced8b73
11 changed files with 281 additions and 36 deletions
@@ -2,13 +2,18 @@
DATABASE: [EsbZertifikatManager]
OBJECTNAME: Seed
ACTION: INSERT
IDX: 001
IDX: 002
DATE: 2026-07-29
USER: CUR
COMMENT: Stammdaten Company (DE/PL/AT) und Environment (TEST2/TEST/PROD).
Nach 00_DropExisting / 01_CreateDatabase / 02_CreateSchema.
SonicConnection / SonicContainer / CertificateTarget / SonicCredential
manuell pflegen — keine Secrets; Credentials nur via AE/Setup.
COMMENT: KOMPLETTE Seed-Datei (alles in einem Lauf):
- Company: DE, PL, AT
- Environment: TEST2, TEST, PROD
- SonicConnection: DE-Test (TEST)
- SonicContainer: ct-ZADBService
- CertificateTarget: Platzhalter-Pfad
Keine Credentials (Always Encrypted / Setup-Wizard).
Voraussetzung: 00_DropExisting, 01_CreateDatabase, 02_CreateSchema,
AlwaysEncrypted-Zertifikat importiert (Install-Certificate.ps1).
*/
USE [EsbZertifikatManager];
GO
@@ -19,6 +24,10 @@ GO
SET QUOTED_IDENTIFIER ON;
GO
/* -------------------------------------------------------------------------- */
/* Company */
/* -------------------------------------------------------------------------- */
IF NOT EXISTS
(
SELECT 1
@@ -79,6 +88,10 @@ BEGIN
END;
GO
/* -------------------------------------------------------------------------- */
/* Environment */
/* -------------------------------------------------------------------------- */
IF NOT EXISTS
(
SELECT 1
@@ -141,3 +154,175 @@ BEGIN
(N'PROD', N'Production', 3, 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
/* -------------------------------------------------------------------------- */
/* TEST-System: DE-Test + ct-ZADBService + CertificateTarget */
/* -------------------------------------------------------------------------- */
DECLARE @EnvironmentIdTest [int];
DECLARE @CompanyIdDe [int];
DECLARE @SonicConnectionIdDeTest [int];
DECLARE @SonicContainerId [int];
SELECT @EnvironmentIdTest = environment.[EnvironmentId]
FROM [dbo].[Environment] AS environment
WHERE environment.[EnvironmentCode] = N'TEST';
SELECT @CompanyIdDe = company.[CompanyId]
FROM [dbo].[Company] AS company
WHERE company.[CompanyCode] = N'DE';
IF @EnvironmentIdTest IS NULL
OR @CompanyIdDe IS NULL
BEGIN
THROW 50002,
N'Seed unvollstaendig: Environment TEST oder Company DE fehlt.',
1;
END;
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[SonicConnection] AS connection
WHERE connection.[ConnectionName] = N'DE-Test'
)
BEGIN
INSERT INTO [dbo].[SonicConnection]
(
[EnvironmentId],
[ConnectionName],
[ManagementHost],
[ManagementPort],
[DomainName],
[ConnectionProtocol],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@EnvironmentIdTest,
N'DE-Test',
N'dekun-painwbdet',
13070,
N'proalpha-test',
N'tcp',
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
SELECT @SonicConnectionIdDeTest = connection.[SonicConnectionId]
FROM [dbo].[SonicConnection] AS connection
WHERE connection.[ConnectionName] = N'DE-Test';
IF @SonicConnectionIdDeTest IS NULL
BEGIN
THROW 50003,
N'Seed fehlgeschlagen: SonicConnection DE-Test nicht gefunden.',
1;
END;
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[SonicContainer] AS container
WHERE container.[SonicConnectionId] = @SonicConnectionIdDeTest
AND container.[ContainerName] = N'ct-ZADBService'
)
BEGIN
INSERT INTO [dbo].[SonicContainer]
(
[CompanyId],
[SonicConnectionId],
[ContainerName],
[ContainerDisplayName],
[RestartTimeoutSeconds],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@CompanyIdDe,
@SonicConnectionIdDeTest,
N'ct-ZADBService',
N'ZADBService',
180,
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
SELECT @SonicContainerId = container.[SonicContainerId]
FROM [dbo].[SonicContainer] AS container
WHERE container.[SonicConnectionId] = @SonicConnectionIdDeTest
AND container.[ContainerName] = N'ct-ZADBService';
IF @SonicContainerId IS NULL
BEGIN
THROW 50004,
N'Seed fehlgeschlagen: SonicContainer ct-ZADBService nicht gefunden.',
1;
END;
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[CertificateTarget] AS target
WHERE target.[SonicContainerId] = @SonicContainerId
AND target.[TargetFileName] = N'server.crt'
)
BEGIN
INSERT INTO [dbo].[CertificateTarget]
(
[SonicContainerId],
[TargetDirectory],
[TargetFileName],
[BackupEnabled],
[BackupDirectoryName],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@SonicContainerId,
N'C:\ESB\Certificates',
N'server.crt',
1,
N'Backup',
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
GO
/* Kontrolle */
SELECT
company.[CompanyCode],
environment.[EnvironmentCode],
connection.[ConnectionName],
connection.[ManagementHost],
connection.[ManagementPort],
connection.[DomainName],
container.[ContainerName],
target.[TargetDirectory],
target.[TargetFileName]
FROM [dbo].[SonicConnection] AS connection
INNER JOIN [dbo].[Environment] AS environment
ON environment.[EnvironmentId] = connection.[EnvironmentId]
INNER JOIN [dbo].[SonicContainer] AS container
ON container.[SonicConnectionId] = connection.[SonicConnectionId]
INNER JOIN [dbo].[Company] AS company
ON company.[CompanyId] = container.[CompanyId]
LEFT JOIN [dbo].[CertificateTarget] AS target
ON target.[SonicContainerId] = container.[SonicContainerId]
ORDER BY
environment.[SortOrder],
company.[CompanyCode],
connection.[ConnectionName];
GO