Joseph Doherty
b46691747c
feat(notifications): central SMS config + nullable recipient contact (S2)
...
Implement the central ConfigurationDatabase side of SMS notifications:
- NotificationConfiguration: EmailAddress now nullable (SMS-only recipients
carry a PhoneNumber, no email); add PhoneNumber nvarchar(32); add
SmsConfigurationConfiguration (AuthToken sized as the encrypted column,
mirroring SmtpConfiguration.Credentials; timeout/retry mapped REQUIRED for
ctor-default round-trip fidelity).
- ScadaBridgeDbContext: add SmsConfigurations DbSet, encrypt AuthToken at rest
via EncryptedStringConverter, and cover SmsConfiguration in the schema-only
secret-write guard.
- NotificationRepository: implement the four INotificationRepository SMS-config
methods (resolves the 4x CS0535), mirroring the SMTP methods' stage-only /
separate-SaveChangesAsync discipline.
- Migration AddSmsNotifications: idempotent (guarded) ALTER EmailAddress nullable,
ADD PhoneNumber, CREATE SmsConfigurations; Down reverses cleanly (backfills
NULL emails before restoring NOT NULL).
2026-06-19 09:57:55 -04:00
Joseph Doherty
72e084f588
fix(configdb): GetInstanceBy{Id,UniqueName}Async include NativeAlarmSourceOverrides ( #226 )
2026-06-19 01:32:10 -04:00
Joseph Doherty
6a4c9a85b8
fix(notification-outbox+test): provider-aware InsertIfNotExists for SQLite + supply ApiKeyPepper in IntegrationTests host config ( #286 )
2026-06-19 01:03:48 -04:00
Joseph Doherty
dbe51e5f25
fix(m9/T24a): scope move-guard native-alarm scan to source-site templates (Ordinal); purpose-built include; add guard-4 + repo tests
2026-06-18 11:38:31 -04:00
Joseph Doherty
fbe4ddaf58
feat(m9/T32a): SharedSchema entity + EF config + idempotent migration + repository
2026-06-18 11:26:48 -04:00
Joseph Doherty
48111b50fd
feat(m9/T24a): guarded move-data-connection-between-sites command + handler
2026-06-18 11:20:58 -04:00
Joseph Doherty
e3bc19c673
feat(m9/T23a): folder sibling reorder (ReorderFolderAsync + command + handler)
2026-06-18 11:00:57 -04:00
Joseph Doherty
1f7bb7ace3
feat(mgmt): secured-write approve relays to site MxGateway write with CAS race guard (T14b)
2026-06-18 02:59:43 -04:00
Joseph Doherty
c799f41d53
feat(db): PendingSecuredWrite entity + migration + repository (T14b)
2026-06-18 02:09:31 -04:00
Joseph Doherty
e6c15250ce
refactor(kpi): K2/K6/K7 review fixups — empty-batch guard + sealed repo + uniform TryAddEnumerable + KPI-age doc fidelity + coverage
2026-06-17 20:00:43 -04:00
Joseph Doherty
cabc557629
feat(kpi): K2 — KpiSample EF mapping + KpiHistoryRepository + AddKpiSampleTable migration
2026-06-17 19:44:51 -04:00
Joseph Doherty
50b674accc
feat(audit): M5.5 per-channel retention overrides via purge-role bounded delete (T3)
2026-06-16 22:05:08 -04:00
Joseph Doherty
55630b48b6
feat(audit): M5.6 SourceNode sentinel backfill (purge-role) + CLI + runbook note (T5)
2026-06-16 22:02:21 -04:00
Joseph Doherty
209f368cb5
feat(audit): M5.2 per-node stuck-count KPIs (T6) — repo per-node aggregation, actor message pair, CentralUI tiles
2026-06-16 21:34:14 -04:00
Joseph Doherty
68a6bd1720
feat(audit)!: ScadaBridge C5 — collapse central dbo.AuditLog to 10 canonical cols + persisted computed cols; CollapseAuditLogToCanonical migration; repo writes canonical directly (Task 2.5)
2026-06-02 14:06:46 -04:00
Joseph Doherty
db707bb0de
feat(audit)!: ScadaBridge C3 — swap to canonical ZB.MOM.WW.Audit.AuditEvent across seams/emitters/DTO/redactor wiring; transitional 24-col storage shim (Task 2.5)
2026-06-02 12:37:50 -04:00
Joseph Doherty
afa55981d5
feat(auth)!: ScadaBridge retire SQL Server ApiKey entity + ApprovedApiKeyIds + legacy hashing; EF migration RetireInboundApiKeyStore; re-issue runbook + CHANGELOG (re-arch C5/E) — BREAKING: X-API-Key -> Bearer sbk_, keys re-issued
2026-06-02 05:39:59 -04:00
Joseph Doherty
aedd17ca7f
feat(configdb): native alarm source repository CRUD + eager-load includes
2026-05-29 15:56:35 -04:00
Joseph Doherty
7b0b9c7365
refactor: rename ScadaLink → ZB.MOM.WW.ScadaBridge (code + projects + namespaces)
...
Solution + 23 src projects + 26 test projects renamed; folders, csproj,
namespaces, and ScadaLinkDbContext/ScadaBridgeDbContext class updated.
ActorSystem "scadalink" → "scadabridge", Akka seed-node URLs migrated.
SQL roles/logins, LDAP domains, CLI command name, and CLI config dir
(~/.scadalink → ~/.scadabridge) also renamed.
Build green; 5 Host.Tests fail awaiting SQL login rename in next commit.
Pre-existing StaleTagMonitor timing flakes unchanged.
Rename script committed at tools/rename-to-scadabridge.sh.
2026-05-28 09:37:45 -04:00