Skip to main content

Legacy plaintext access_password

cases.access_password TEXT NOT NULL is a survivor of the whistleblower-template ancestry (the pivot): in the original product, a whistleblower accessed their case with a case code + password. It is a plaintext-capable column, still NOT NULL, so every case insert must supply one — seed-test-data hardcodes "demo1234".

The disciplinary product has since moved to token-based portal access, so access_password is largely vestigial — but it is still required, still plaintext, and still carries the security expectations of a password field (it must not be stored or logged in the clear).

Rebuild implication

Drop access_password if the token portal fully replaces it. If any password-style access is retained, store only a salted hash, never require/return the raw value, and keep it out of seeds and logs.