diff --git a/Component-Commons.md b/Component-Commons.md index 7bfdec2..4c841ee 100644 --- a/Component-Commons.md +++ b/Component-Commons.md @@ -37,6 +37,8 @@ Commons must define shared primitive and utility types used across multiple comp Types defined here must be immutable and thread-safe. +**Timestamp convention**: All timestamps throughout the system must use **UTC** (`DateTime` with `DateTimeKind.Utc` or `DateTimeOffset` with zero offset). This applies to all stored timestamps (SQLite, MS SQL, audit log entries), all message timestamps (attribute values, alarm state changes, health reports, event log entries, deployment records), and all wire-format timestamps (Akka remoting, Inbound API responses). Local time conversion, if needed, is a UI display concern only. + ### REQ-COM-2: Protocol Abstraction Commons must define the protocol abstraction interfaces that the Data Connection Layer implements and other components consume: diff --git a/HighLevelReqs.md b/HighLevelReqs.md index 42f9919..5e980c3 100644 --- a/HighLevelReqs.md +++ b/HighLevelReqs.md @@ -459,6 +459,13 @@ Sites log operational events locally, including: ### 12.3 Central Access - The central UI can **query site event logs remotely**, following the same pattern as parked message management — central requests data from the site over Akka.NET remoting. +## 13. General Conventions + +### 13.1 Timestamps +- All timestamps throughout the system are stored, transmitted, and processed in **UTC**. +- This applies to: attribute value timestamps, alarm state change timestamps, audit log entries, event log entries, deployment records, health reports, store-and-forward message timestamps, and all inter-node messages. +- Local time conversion for display is a **Central UI concern only** — no other component performs timezone conversion. + --- *All initial high-level requirements have been captured. This document will continue to be updated as the design evolves.*