Skip to main content

Variable: CHECKSUM_KEYS

const CHECKSUM_KEYS: readonly string[];

Defined in: packages/core/src/submission/submission.ts:126

The checksum covers an allowlist, not an exclusion list (spine §6, docs/10 §2.3).

Two properties matter and an exclusion list delivers neither:

  1. Stable across the submission's life. Everything omitted here changes while the payload does not — status walks draft → queued → sending → synced, serverRev is stamped on acknowledgement, clientRev/updatedAt move on every local write, audit grows. Hashing any of them would make a submission fail its own integrity check the moment the sync engine touched it, which docs/09 §13 reports as RASD_STORAGE_INTEGRITY — i.e. every outgoing submission would look tampered with.
  2. Recomputable by the server. The server verifies this hash from the wire body, so the input must be exactly what it receives. An allowlist also keeps the hash stable when a later spec version adds a field.

finalizedAt is covered — it lives inside meta.