-- AB Legacy e2e smoke seed — closes #213 (umbrella #209). -- -- Hardware-gated. The ab_server PCCC dispatcher is upstream-broken (task #222 -- tracks the lab rig + alternative fixtures), so verifying this seed end-to-end -- requires real SLC 500 / MicroLogix / PLC-5 hardware or an RSEmulate 500 -- golden-box. The factory + seed ship here so the wiring is in place the -- moment real hardware becomes available — no server code changes needed. -- -- Usage (once hardware is reachable): -- sqlcmd -S "localhost,14330" -d OtOpcUaConfig -U sa -P "OtOpcUaDev_2026!" \ -- -i scripts/smoke/seed-ablegacy-smoke.sql -- (Update the `HostAddress` below to point at the real gateway first.) SET NOCOUNT ON; SET XACT_ABORT ON; SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON; SET ANSI_PADDING ON; SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; DECLARE @ClusterId nvarchar(64) = 'ablegacy-smoke'; DECLARE @NodeId nvarchar(64) = 'ablegacy-smoke-node'; DECLARE @DrvId nvarchar(64) = 'ablegacy-smoke-drv'; DECLARE @NsId nvarchar(64) = 'ablegacy-smoke-ns'; DECLARE @AreaId nvarchar(64) = 'ablegacy-smoke-area'; DECLARE @LineId nvarchar(64) = 'ablegacy-smoke-line'; DECLARE @EqId nvarchar(64) = 'ablegacy-smoke-eq'; DECLARE @EqUuid uniqueidentifier = '5A1D2030-5A1D-4203-A5A1-D20305A1D203'; DECLARE @TagId nvarchar(64) = 'ablegacy-smoke-tag-n7_5'; BEGIN TRAN; DELETE FROM dbo.Tag WHERE TagId IN (@TagId); DELETE FROM dbo.Equipment WHERE EquipmentId = @EqId; DELETE FROM dbo.UnsLine WHERE UnsLineId = @LineId; DELETE FROM dbo.UnsArea WHERE UnsAreaId = @AreaId; DELETE FROM dbo.DriverInstance WHERE DriverInstanceId = @DrvId; DELETE FROM dbo.Namespace WHERE NamespaceId = @NsId; DELETE FROM dbo.ConfigGeneration WHERE ClusterId = @ClusterId; DELETE FROM dbo.ClusterNodeCredential WHERE NodeId = @NodeId; DELETE FROM dbo.ClusterNodeGenerationState WHERE NodeId = @NodeId; DELETE FROM dbo.ClusterNode WHERE NodeId = @NodeId; DELETE FROM dbo.ServerCluster WHERE ClusterId = @ClusterId; INSERT dbo.ServerCluster(ClusterId, Name, Enterprise, Site, NodeCount, RedundancyMode, Enabled, CreatedBy) VALUES (@ClusterId, 'AB Legacy Smoke', 'zb', 'lab', 1, 'None', 1, 'ablegacy-smoke'); INSERT dbo.ClusterNode(NodeId, ClusterId, RedundancyRole, Host, OpcUaPort, DashboardPort, ApplicationUri, ServiceLevelBase, Enabled, CreatedBy) VALUES (@NodeId, @ClusterId, 'Primary', 'localhost', 4840, 5000, 'urn:OtOpcUa:ablegacy-smoke-node', 200, 1, 'ablegacy-smoke'); DECLARE @Gen bigint; INSERT dbo.ConfigGeneration(ClusterId, Status, CreatedBy) VALUES (@ClusterId, 'Draft', 'ablegacy-smoke'); SET @Gen = SCOPE_IDENTITY(); INSERT dbo.Namespace(GenerationId, NamespaceId, ClusterId, Kind, NamespaceUri, Enabled) VALUES (@Gen, @NsId, @ClusterId, 'Equipment', 'urn:ablegacy-smoke:eq', 1); INSERT dbo.UnsArea(GenerationId, UnsAreaId, ClusterId, Name) VALUES (@Gen, @AreaId, @ClusterId, 'lab-floor'); INSERT dbo.UnsLine(GenerationId, UnsLineId, UnsAreaId, Name) VALUES (@Gen, @LineId, @AreaId, 'ablegacy-line'); INSERT dbo.Equipment(GenerationId, EquipmentId, EquipmentUuid, DriverInstanceId, UnsLineId, Name, MachineCode, Enabled) VALUES (@Gen, @EqId, @EqUuid, @DrvId, @LineId, 'slc-sim', 'ablegacy-001', 1); -- AB Legacy DriverInstance — SLC 500 target. Replace the placeholder gateway -- `192.168.1.10` with the real PLC / RSEmulate host before running. INSERT dbo.DriverInstance(GenerationId, DriverInstanceId, ClusterId, NamespaceId, Name, DriverType, DriverConfig, Enabled) VALUES (@Gen, @DrvId, @ClusterId, @NsId, 'ablegacy-smoke', 'AbLegacy', N'{ "TimeoutMs": 2000, "Devices": [ { "HostAddress": "ab://192.168.1.10/1,0", "PlcFamily": "Slc500", "DeviceName": "slc-500" } ], "Probe": { "Enabled": true, "IntervalMs": 5000, "TimeoutMs": 2000, "ProbeAddress": "S:0" }, "Tags": [ { "Name": "N7_5", "DeviceHostAddress": "ab://192.168.1.10/1,0", "Address": "N7:5", "DataType": "Int", "Writable": true, "WriteIdempotent": true } ] }', 1); INSERT dbo.Tag(GenerationId, TagId, DriverInstanceId, EquipmentId, Name, DataType, AccessLevel, TagConfig, WriteIdempotent) VALUES (@Gen, @TagId, @DrvId, @EqId, 'N7_5', 'Int16', 'ReadWrite', N'{"FullName":"N7_5","Address":"N7:5","DataType":"Int"}', 1); EXEC dbo.sp_PublishGeneration @ClusterId = @ClusterId, @DraftGenerationId = @Gen, @Notes = N'AB Legacy smoke — task #213'; COMMIT; PRINT ''; PRINT 'AB Legacy smoke seed complete.'; PRINT ' Cluster: ' + @ClusterId; PRINT ' Node: ' + @NodeId; PRINT ' Generation: ' + CONVERT(nvarchar(20), @Gen); PRINT ''; PRINT 'NOTE: hardware-gated. ab_server PCCC is upstream-broken (#222). Point the'; PRINT ' DriverConfig HostAddress at real SLC / MicroLogix / PLC-5 / RSEmulate'; PRINT ' and run the e2e script with AB_LEGACY_TRUST_WIRE=1.';