Inspector access
A regulatory inspector or auditor needs access to data and the audit trail — but strictly read-only and for a limited term. X7 Insight solves this without any special “inspector mode” in the code: an inspector is an ordinary principal with time-limited read-only grants. The same access rules that apply to everyone are in effect: default deny and “a deny always wins.”
How to grant inspector access
Section titled “How to grant inspector access”-
Create (or connect via SSO) an inspector principal in Admin → Users.
-
In Admin → Access, assign a copy of the Inspector role to the relevant study, setting a term (“from — to”) — this is the key point: access must expire on its own.
-
Make sure the permission set is read-only:
study.read,subject.read,data.read,query.read,audit.read, andaudit.verify(independent hash-chain verification). No*.update, no export, no unblinding.
What the inspector sees
Section titled “What the inspector sees”On sign-in, the inspector lands in the workspace in an explicit read-only mode (a banner with the access term). Navigation is like an ordinary user’s, but without a single write action.
- Study data — subjects’ casebooks, forms, values. In read mode, without the ability to change anything.
- The history of every value — all versions of a field: what it was, what it became, who changed it and when, with the stated Reason for Change (RfC).
- The audit trail — the full chain of events with filters by subject, form, period, and actor; for each event you can see “before/after” and the causal link.
- Independent integrity verification — the inspector can click “Verify trail integrity” for a selected period: the system recomputes the cryptographic audit chain and returns a verdict of “chain is intact” or “chain is BROKEN at record …”.
What the inspector cannot do
Section titled “What the inspector cannot do”The restrictions are not UI cosmetics: they follow from the fact that the corresponding permissions simply were not granted to the inspector. Even bypassing the interface directly will hit a server denial.
| Action | Why it is unavailable |
|---|---|
| Any editing of data, statuses, or queries | no *.update permissions — read-only access |
| Exporting data | no export.run permission; there is no button, and a direct call is denied |
| Unblinding | no data.unblinded.read permission; blinded values are masked (•••) everywhere, including the audit |
| Extending one’s own access | the term is changed only by a new grant; backdating is not allowed |