Requirements: Operations Wiring (Phase 3)
Requirements: Operations Wiring (Phase 3)
Section titled “Requirements: Operations Wiring (Phase 3)”Functional requirements for the operations changes. Behavior definitions in
Design §9.2/§9.3/§9.5;
construct blueprint in Design §12 — operations wiring.
Library Adoption
Section titled “Library Adoption”- REQ-OPS-001 —
operationsSHALL consumecommon-module13.2.0; the per-tenant email module SHALL re-import the lifted types (wire types,SendEmailOutcome, send proxy,fromHeader) and delete its local copies — public behavior unchanged (DQ-004). - REQ-OPS-002 — The tenant send service (
service/EmailSender.kt) SHALL delegate its retry core to the library’sPostmarkEmailSender, retaining tenant-specific behavior (per-attempt token fetch,canSendrecheck, in-flight tracking, cancellation) via the factory’s token supplier and hooks (Design §8 — Per-tenant email module).
Secret Projection and Config
Section titled “Secret Projection and Config”- REQ-OPS-003 — The Helm chart SHALL project the system-server token by
adding a
SystemEmailServerTokendata entry (remoteRef{fqn}-I-EmailSystemServerToken,property: token) to the ExternalSecret that templatessecrets.properties, emitting the lineemail.serverToken={{ .SystemEmailServerToken }}; the local-mode fallback Secret SHALL emit the same line with a dummy value (Design §9.2). - REQ-OPS-004 — The component SHALL declare a top-level
email {}block (serverToken from the layered secret;fromsub-block with domainsystem.{partition-mail-zone}derived from existing chart values, localPart, displayName) — a dataSource-less block (no db plumbing).
System Sender
Section titled “System Sender”- REQ-OPS-005 — When
emailConfigurationis present, the composition root SHALL construct onesystemEmailSender: EmailSenderviaEmailSenderFactoryand expose it to backend modules in-process only (no REST surface); absent config → no sender, normal boot (DQ-006, Design §9.5). - REQ-OPS-006 — Misconfiguration (present block, blank/missing token) SHALL fail pod boot loudly (Design §9.5 — Fail-fast).
- REQ-OPS-007 — A dev smoke spec (Kotest-tagged, excluded from default
builds) SHALL send one real message through the deployed dev
SystemEmailServer and assert a
Sent(messageId)outcome — executed at the Phase 4 dev gate (BV-4-06). - REQ-OPS-008 — No webhook SHALL be installed on the system server; no system-send persistence SHALL be added (DQ-007 — fire-and-forget v1).
Copyright: (c) Arda Systems 2025-2026, All rights reserved
Copyright: © Arda Systems 2025-2026, All rights reserved