{dsROCrate} audits a DataSHIELD server by reading
information that ordinary analyst accounts cannot see. This vignette
explains:
{dsROCrate} checks that your account is
suitable,| Backend | Status | Required account |
|---|---|---|
| OBiBa Opal | Supported (Opal 5.7.2 or later) | Administrator, or a user with the Audit system
permission |
| MOLGENIS Armadillo | In development | – |
An audit reads (and never changes) the following:
Standard user accounts cannot access most of this, so without
suitable permissions {dsROCrate} cannot build the Safe
People, Safe Setting and Safe Output parts of the RO-Crate.
Every init(), safe_*() and
audit() call first runs check_permissions(),
which you can also call yourself:
con <- opalr::opal.login(
username = "audit_user",
password = "secret",
url = "https://opal-demo.obiba.org"
)
dsROCrate::check_permissions(con, verbose = TRUE)
#> You are ready to audit this system!For Opal, the check tries two harmless requests with your account:
Audit system permission are allowed to do.The account is accepted when both succeed (an administrator) or when the second succeeds and the first is refused (an auditor). Anything else is rejected with the error:
The supplied backend connection does not have sufficient permissions.
{dsROCrate} requires elevated permissions to perform audit operations.
...
Other checks run at the same time: the connection must still be
valid, and the server must be Opal 5.7.2 or later (the
Audit system permission was introduced in Opal 5.7).
Note: menu labels may differ slightly between Opal versions.
Log in to the Opal web interface with an administrator account.
If a dedicated audit user does not exist yet:
We recommend a dedicated account, separate from the analysts’ accounts, so the audit user has no more access than it needs.
Log in as the audit user and run check_permissions(), as
shown in the previous section. You can now use this connection with
audit(), see
vignette("getting-started", package = "dsROCrate").
| Message | Likely cause and fix |
|---|---|
The supplied backend connection does not have sufficient permissions. |
The account is neither an administrator nor an auditor. Check that the user was granted Audit system (step 3) and, if you were already logged in when the permission was granted, log in again. |
Opal >= 5.7.2 is required, but server version is X.Y.Z. |
The server is too old. Upgrade Opal. |
The given connection is not valid! |
The connection object is no longer usable (e.g., it was saved and
reloaded, or the session was closed). Create it again with
opalr::opal.login(). |
The `project = 'NAME'` was not found in the given Opal connection! |
The project name is misspelled, or it does not exist on this server. |
If the message is not listed here, please open an issue.