The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
A federated study usually spans several DataSHIELD servers (sites).
Both audit() and report() accept a
named list of connections, one per site, and return one
audit per element plus a combined report.
If you have not used audit() and report()
before, start with
vignette("getting-started", package = "dsROCrate").
In a real study, each connection points to a different server. To
keep this example self-contained, we open two connections to the same
demo server and name them as if they were two sites. Use an
administrator or Audit system account at every site.
The arguments of audit() are applied to every site, so
the project (and, if given, the user and tables) must exist in each of
them.
study_audit <- cons |>
audit(project = "CNSIM", tables = "CNSIM1", user = "dsuser")
#> Found 179 records... Imported 179 records. Simplifying...
#> Found 179 records... Imported 179 records. Simplifying...
# one RO-Crate per site
names(study_audit)
#> [1] "site_a" "site_b"
print(study_audit$site_a)
#> {
#> "@context": "https://w3id.org/ro/crate/1.2/context",
#> "@graph": [
#> {
#> "@id": "ro-crate-metadata.json",
#> "@type": "CreativeWork",
#> "about": {
#> "@id": "./"
#> },
#> "conformsTo": {
#> "@id": "https://w3id.org/ro/crate/1.2"
#> }
#> },
#> {
#> "@id": "./",
#> "@type": "Dataset",
#> "name": "",
#> "description": "",
#> "datePublished": "2026-10-15",
#> "license": {
#> "@id": "http://spdx.org/licenses/CC-BY-4.0"
#> },
#> "conformsTo": {
#> "@id": "https://w3id.org/5s-crate/0.4"
#> },
#> "hasPart": [
#> {
#> "@id": "20261015T061348-dslogs-dsuser.log"
#> },
#> {
#> "@id": "20261015T061349-dslogs-dsuser_mappings.csv"
#> }
#> ]
#> },
#> {
#> "@id": "https://w3id.org/5s-crate/0.4",
#> "@type": ["CreativeWork", "Profile"],
#> "name": "Five Safes RO-Crate profile"
#> },
#> {
#> "@id": "#person:a0af2a94926db1b49ad7a812eef509d2",
#> "@type": "Person",
#> "name": "dsuser"
#> },
#> {
#> "@id": "#project:7ba189863f9f641196596cb28e04aa14",
#> "@type": "Project",
#> "name": "CNSIM",
#> "dateCreated": "2026-10-15T04:36:56.200Z",
#> "dateModified": "2026-10-15T04:37:01.258Z",
#> "hasPart": [
#> {
#> "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#> }
#> ]
#> },
#> {
#> "@id": "#perm:9bf7f75b6c5b07d02830b95652cd39a0-dict-summary-read",
#> "@type": "ReadAction",
#> "agent": {
#> "@id": "#person:a0af2a94926db1b49ad7a812eef509d2"
#> },
#> "object": {
#> "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#> },
#> "actionStatus": "PotentialActionStatus",
#> "description": "User may view table dictionary and summary statistics only; access to individual values is restricted."
#> },
#> {
#> "@id": "#asset:fad6faf661584d53e58f9730b14c5aae",
#> "@type": "Dataset",
#> "name": "CNSIM1",
#> "description": "",
#> "url": "/datasource/CNSIM/table/CNSIM1",
#> "dateCreated": "2026-10-15T04:00:00Z",
#> "dateModified": "2026-10-15T04:00:00Z",
#> "isPartOf": {
#> "@id": "#project:7ba189863f9f641196596cb28e04aa14"
#> }
#> },
#> {
#> "@id": "#disc:27d8c1d2233ecb654a24b635fd4dbd78",
#> "@type": "PropertyValue",
#> "name": "datashield.privacyLevel",
#> "value": "5"
#> },
#> {
#> "@id": "#disc:46b65707a6b998f3b1364bc10e6d9b4b",
#> "@type": "PropertyValue",
#> "name": "default.datashield.privacyControlLevel",
#> "value": "banana"
#> },
#> {
#> "@id": "#disc:7769282e7b0a1cb8887f60886c7b56ae",
#> "@type": "PropertyValue",
#> "name": "default.nfilter.glm",
#> "value": "0.33"
#> },
#> ❗ <file truncated, set `options(max_lines = Inf)` to display all>
#> ]
#> }As for a single crate, we can first generate only the contents of the report:
report_file <- tempfile(fileext = ".Rmd")
study_parts <- study_audit |>
report(filepath = report_file, render = FALSE)
#> 1 'Author' entity was found!
#> 1 asset entity was found!
#> 1 'Project' entity was found!
#> 22 'CreativeWork', 'PropertyValue' OR 'SoftwareApplication' entities were found!
#> 2 'File' entities were found!
#> 1 'Author' entity was found!
#> 1 asset entity was found!
#> 1 'Project' entity was found!
#> 22 'CreativeWork', 'PropertyValue' OR 'SoftwareApplication' entities were found!
#> 2 'File' entities were found!
# overview diagram
study_parts$overview_diagram| Server | Project | Data | Access Level | People | Function | Timestamp |
|---|---|---|---|---|---|---|
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T08:51:51Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T08:51:52Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T08:51:54Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T08:51:54Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T08:51:54Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T08:51:55Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T08:51:55Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T08:53:43Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T08:53:43Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T08:56:16Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T08:56:16Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T08:56:18Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T08:56:18Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T08:56:18Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T08:56:18Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T08:56:18Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:32:39Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:32:40Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:32:41Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:32:41Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:32:41Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:32:42Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:32:42Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:34:37Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:34:38Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:36:43Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:36:44Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:36:45Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:36:45Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:36:45Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:36:45Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:36:46Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:39:33Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:39:34Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:39:35Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:39:35Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:39:35Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:39:36Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:39:36Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:43:10Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:43:11Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:43:12Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:43:13Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:43:13Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:43:13Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:43:13Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:45:36Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:45:36Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:47:38Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:47:38Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:47:39Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:47:39Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:47:39Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:47:40Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:47:40Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:49:05Z | |
| site_a | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:49:05Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:49:07Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:49:07Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:49:07Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:49:07Z |
| site_a | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:49:07Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T08:51:51Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T08:51:52Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T08:51:54Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T08:51:54Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T08:51:54Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T08:51:55Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T08:51:55Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T08:53:43Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T08:53:43Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T08:56:16Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T08:56:16Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T08:56:18Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T08:56:18Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T08:56:18Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T08:56:18Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T08:56:18Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:32:39Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:32:40Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:32:41Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:32:41Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:32:41Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:32:42Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:32:42Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:34:37Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:34:38Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:36:43Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:36:44Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:36:45Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:36:45Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:36:45Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:36:45Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:36:46Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:39:33Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:39:34Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:39:35Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:39:35Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:39:35Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:39:36Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:39:36Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:43:10Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:43:11Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:43:12Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:43:13Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:43:13Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:43:13Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:43:13Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:45:36Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:45:36Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:47:38Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:47:38Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:47:39Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:47:39Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:47:39Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:47:40Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:47:40Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | 2026-10-15T09:49:05Z | |
| site_b | CNSIM | CNSIM1 | read | dsuser | DSI::datashield.assign.table | 2026-10-15T09:49:05Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | base::exists | 2026-10-15T09:49:07Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::classDS | 2026-10-15T09:49:07Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::isValidDS | 2026-10-15T09:49:07Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::dimDS | 2026-10-15T09:49:07Z |
| site_b | CNSIM | CNSIM1 | read | dsuser | dsBase::colnamesDS | 2026-10-15T09:49:07Z |
and render the full report (HTML) with:
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.