When you take somebody’s access away
The next thing they click is refused.
The cookie takes up to half an hour.
14:02 — you set their membership to disabled
14:32
- Their next request
-
The page guard reads dbo.ClinicAdmins on every request. A disabled
membership fails every permission check, is written to the audit log, and
is signed out. Nothing is cached across requests to make that faster.
- The identity cookie
-
Re-validated on a thirty-minute interval, so the underlying sign-in can
survive that long. It buys nothing — every page it reaches has already
refused it — but half an hour is the honest number and we would rather
print it than round it to zero.
The reason those are different numbers is that they are different mechanisms. One is
a question asked of the database every time a page loads; the other is a signature on
a cookie with an interval on it. Most products describe only the second and let you
assume the first.
And what this page does not claim
- Two-factor sign-in
-
Not available. The framework’s two-factor middleware is wired up and the
login flow has a branch for it — and that branch redirects to a page that
has not been built. Plumbing without a tap is not a feature, and this is the
largest single gap on this page.
- Certification
-
None. SOC 2 is in preparation and that is the whole of the status; it is
what the trust strip at the foot of every page says and this page does not
improve on it. Nobody has audited us against anything yet.
- Encryption beyond the platform
-
Records are held in Azure SQL in Canada Central, with the encryption that
platform applies at rest and in transit. There is no column-level or
application-layer encryption in the source, so there is none claimed here. If
that matters to your risk assessment, ask before you sign, not after.
- Anything you cannot check
-
Every number on this page — five, five minutes, fifteen, ten minutes, fifteen
minutes, thirty minutes, ten characters — is a constant in a file, not a
target. Ask us to show you the line.
Security on a clinic system is not a badge and it is not a page like this one. It is
whether the rule survives the afternoon somebody is in a hurry — which is why the
ones described here live in code that runs before anything renders, and not in a
setting anyone can be talked into changing.