AshArcadic.DataLayer.Verifiers.ValidateSensitive (AshArcadic v0.1.0)

Copy Markdown View Source

Compile-verifier for arcade do sensitive [...] end (build-blocking under --warnings-as-errors):

  • R1 — every listed name is a declared attribute (a typo protects nothing).
  • R2 — every sensitive attribute is binary-storage-typed (app-side-encrypted bytes) or listed in skip (never written to the graph).
  • R3 — the multitenancy discriminator is not sensitive (it is a plaintext selector; Ash injects it as a plaintext filter/force-set, and AshArcadic holds no key material to encrypt it).
  • R4 — an edge properties key naming a sensitive attribute requires every same-named DECLARED action argument to be binary-storage-typed; otherwise the classified datum flows onto edges as plaintext through a same-named plaintext argument. (AshArcadic.Changes.CreateEdge enforces the runtime half for undeclared/injected arguments.)

Checks the TYPE SHAPE, not encryption.