Permission catalog
Access in X7 Insight is built from atomic permissions of the form “object.action” (for example,
data.update). Roles are simply named sets of such permissions,
issued to a principal within a particular scope. Below is a catalog of what
can be permitted at all, grouped by work area, and the principles by which the system makes its
decision.
Study design and build
Section titled “Study design and build”| Permission | What it allows |
|---|---|
study.create / study.read / study.configure |
create, view, and configure a study |
study.lifecycle.change |
move a study through its statuses (draft → UAT → active → …) |
studyversion.create / studyversion.update |
create and edit a design version (edits only in a draft) |
studyversion.submit_review / .approve / .publish / .retire |
move a version through its cycle: submit for review, approve, publish, retire; return a version from review to draft (same submit_review or approve) |
mdr.read |
read study metadata (forms, code lists, edit checks) |
designcomment.read / designcomment.write |
view and leave/resolve design-review comments (ADR‑054; read comes with mdr.read) |
translation.manage / translation.approve |
manage and approve translations |
site.activate / site.deactivate |
activate a site on a published design; close and reopen it |
designtemplate.read / designtemplate.manage |
view and manage the tenant’s design template library |
Subjects and data
Section titled “Subjects and data”| Permission | What it allows |
|---|---|
subject.create / subject.read |
enroll and view subjects |
subject.status.change |
change a subject’s status (enrollment, withdrawal, etc.) |
subject.status.correct |
correct a mistakenly set status outside the state machine (with a reason) |
subject.randomize |
randomize a subject (number and blinded arm code) |
subject.migrate_version |
migrate subjects to a new design version |
visit.create / visit.update |
create visits (incl. unscheduled); date them or mark missed |
form.instance.create / form.instance.read / form.mark_complete |
create and view forms and mark them complete |
data.read |
read values |
data.enter |
initial entry of a value (no reason needed) |
data.update |
editing a saved value (a reason, RfC, is required) |
data.mark_not_done |
mark “not done” / “unavailable” |
data.unblinded.read |
view unblinded blinded values (reads are audited) |
form.entry.<tag> |
enter data into forms with an entry restriction |
Monitoring and cleaning
Section titled “Monitoring and cleaning”| Permission | What it allows |
|---|---|
query.read / query.open / query.answer |
view, open, and answer queries |
query.close / query.reopen / query.cancel |
close, reopen, and cancel queries |
query.assign |
assign queries to a handler (queue label) |
data.sdv.verify / data.sdv.unverify |
set and remove the source data verification (SDV) mark |
data.review.medical |
perform medical review of data |
data.coding.write |
set the medical coding status |
Signatures, locks, export
Section titled “Signatures, locks, export”| Permission | What it allows |
|---|---|
signature.apply / signature.read |
apply an electronic signature and view signatures |
lock.read |
view locks and their history |
lock.apply.soft / lock.apply.hard |
apply a soft and a hard lock |
lock.release.soft / lock.release.hard |
release a soft lock / reopen a hard-locked DB |
export.run / export.read |
run exports and view their history |
Administration and access
Section titled “Administration and access”| Permission | What it allows |
|---|---|
access.grant |
issue and revoke grants, assign roles |
access.delegate |
delegate your own permissions (depth 1, within your own permissions and time window) |
access.read |
view issued grants and roles (admin and inspector) |
role.manage |
create and edit custom roles |
principal.manage |
create and deactivate the tenant’s accounts |
audit.read |
read the audit trail |
audit.verify |
run hash-chain verification |
settings.read / settings.write |
read and change platform settings within a scope |
platform.administer |
exceptional installation-level operations |
Modules
Section titled “Modules”| Permission | What it allows |
|---|---|
module.register |
register a module manifest (at the platform level) |
module.enable / module.disable |
enable and disable a module within a scope |
module.configure |
configure a module |
mod.<module>.<object>.<action> |
a module’s own permissions from its manifest |
Access principles
Section titled “Access principles”How exactly the system decides whether an action is allowed. Understanding these four principles explains almost any “why can’t I”:
- Default deny. No matching grant means no access. Nothing is allowed “by default.”
- Deny-wins. If there is even one denying grant (deny) on the resource’s path, there is no access — even when allowing grants exist. An explicit deny is stronger than any allow.
- Scope. A permission is granted on the path
study → site → subject → form → fieldand applies to that path and everything beneath it. A permission on a site does not grant rights over the whole study; the hierarchy is itself the mechanism for breadth — there are no wildcard “asterisks” (*). - Time-boxed. A grant may have a “from… to…” window. Outside the window it has no effect. Revocation and expiry take effect immediately; for example, an inspector’s access is issued with the inspection’s end date.
Roles & accessHow roles are assembled from permissions and where your access comes from.
GlossaryPermission, grant, scope, role, SoD, principal — in plain language.
Status lifecycles and axesWhich permissions each transition requires.
Blinding and privacyHow data.unblinded.read controls the visibility of blinded values.