Getting Started

library(dsROCrate)

# show all the lines in the RO-Crate
oopt <- options(max_lines = Inf)
on.exit(options(oopt), add = TRUE)

This tutorial assumes that you have an internet connection and can access OBiBa’s Opal demo server: https://opal-demo.obiba.org

Alternatively, if you want to test a local deployment, please check out the following vignette first:

vignette("deploy-local-datashield-server-with-opal", package = "dsROCrate")

1. Creating your first RO-Crate

1.1. Connect to an Opal server

Here we will use OBiBa’s Opal demo server: https://opal-demo.obiba.org/ which can be accessed with the following login credentials:

# define global variables
## Opal server access
USERNAME <- "administrator"
USERPASS <- "password"
SERVER <- "https://opal-demo.obiba.org"
## Credentials for `dsuser`
### NOTE: this is only used to simulate an analysis and generate logs
DSUSERPASS <- "P@ssw0rd"

Next, define global variables used in generating the RO-Crate, such as project name, asset (e.g., tables, resources, etc.) references (within the project) and user identifiers.

## Five safes variables
PEOPLE <- "dsuser"
PROJECT <- "CNSIM"
TABLES <- c("CNSIM1")

Open connection

Once the credentials and Five Safes variables are configured, we can start a new session on the Opal server with the following command:

# login to local server with `USERNAME` and `USERPASS`.
o <- opalr::opal.login(
  username = USERNAME,
  password = USERPASS,
  url = SERVER
)

print(o)
#> url: https://opal-demo.obiba.org 
#> name: opal-demo.obiba.org 
#> version: 5.6.3 
#> username: administrator

1.2. Create a basic RO-Crate

To create a basic RO-Crate, we will use the {rocrateR} package. This package can be installed with the following command:

# install.packages("pak")
pak::pak("rocrateR")

# for development version use
pak::pak("ResearchObject/ro-crate-r@dev")

Then, a basic RO-Crate can be created with the following command:

basic_rocrate <- rocrateR::rocrate_5s()

Note that this RO-Crate uses the 5s-crate profile.

print(basic_rocrate)
#> {
#>   "@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-04-27",
#>       "license": {
#>         "@id": "http://spdx.org/licenses/CC-BY-4.0"
#>       },
#>       "conformsTo": {
#>         "@id": "https://w3id.org/5s-crate/0.4"
#>       }
#>     },
#>     {
#>       "@id": "https://w3id.org/5s-crate/0.4",
#>       "@type": ["CreativeWork", "Profile"],
#>       "name": "Five Safes RO-Crate profile"
#>     }
#>   ]
#> }

1.3. Add the Five Safes Elements

Safe Data

To add details for Safe Data, use the function dsROCrate::safe_data().

basic_rocrate <- o |>
  dsROCrate::safe_data(rocrate = basic_rocrate,
                       project = PROJECT,
                       tables = TABLES)

print(basic_rocrate) # note that the output will be truncated
...
#>     {
#>       "@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": "#perm:4d2673da68a58c3bce23a61d97b6df51-dict-summary-read",
#>       "@type": "ReadAction",
#>       "agent": {
#>         "@id": "#person:cb809df1c2fb30b154f60b843e62b3d0"
#>       },
#>       "object": {
#>         "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>       },
#>       "actionStatus": "PotentialActionStatus",
#>       "description": "User may view table dictionary and summary statistics only; access to individual values is restricted."
#>     },
#>     {
#>       "@id": "#perm:1f09051d217d17c3e9b5ed92819ded26-admin-table",
#>       "@type": "ControlAction",
#>       "agent": {
#>         "@id": "#person:a3bc19cc9c1269320cf2847c63a66a92"
#>       },
#>       "object": {
#>         "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>       },
#>       "actionStatus": "PotentialActionStatus",
#>       "description": "User has full administrative rights: view/edit dictionary and view/edit individual values."
#>     },
#>     {
#>       "@id": "#asset:fad6faf661584d53e58f9730b14c5aae",
#>       "@type": "Dataset",
#>       "name": "CNSIM1",
#>       "description": "",
#>       "url": "/datasource/CNSIM/table/CNSIM1",
#>       "dateCreated": "2026-04-27T00:00:00Z",
#>       "dateModified": "2026-04-27T00:00:00Z",
#>       "isPartOf": {
#>         "@id": "#project:7ba189863f9f641196596cb28e04aa14"
#>       }
#>     }
#>   ]
#> }

Safe Project

To add details for Safe Project, use the function dsROCrate::safe_project().

basic_rocrate <- o |>
  dsROCrate::safe_project(rocrate = basic_rocrate,
                          project = PROJECT)

print(basic_rocrate) # note that the output will be truncated
...
#>       ]
#>     },
#>     {
#>       "@id": "#project:7ba189863f9f641196596cb28e04aa14",
#>       "@type": "Project",
#>       "name": "CNSIM",
#>       "dateCreated": "2026-04-27T06:29:48.216Z",
#>       "dateModified": "2026-04-27T06:29:52.944Z",
#>       "hasPart": [
#>         {
#>           "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>         }
#>       ]
#>     }
#>   ]
#> }

Safe People

To add details for Safe People, use the function dsROCrate::safe_people().

basic_rocrate <- o |>
  dsROCrate::safe_people(rocrate = basic_rocrate, user = PEOPLE)

print(basic_rocrate) # note that the output will be truncated
...
#>     {
#>       "@id": "#person:a0af2a94926db1b49ad7a812eef509d2",
#>   ❗ <file truncated, set `options(max_lines = Inf)` to display all>
#>   ]
#> }

Safe Setting

To add details for Safe Setting, use the function dsROCrate::safe_setting().

⚠️NOTE: The dsROCrate::safe_setting function requires administrator privileges, so here, we will have to log in with administrator credentials (if you used a non-administrator account previously).

# close previous connection
opalr::opal.logout(o)

# open new connection as administrator
o <- opalr::opal.login(
  username = "administrator",
  password = "password",
  url = SERVER
)

Then, we can proceed as per usual:

basic_rocrate <- o |>
  dsROCrate::safe_setting(rocrate = basic_rocrate)

print(basic_rocrate) # note that the output will be truncated
...

Safe Outputs

To add details for Safe Outputs, use the function dsROCrate::safe_output(). Currently, only log files from the operations executed by the user within a specific period. Set the period using logs_from and logs_to. Additionally, a list of functions executed by the user are extracted in a separate file/entity.

⚠️NOTE: Similar to dsROCrate::safe_setting, the dsROCrate::safe_output function requires of administrator rights, so here, we will have to log in with administrator credentials:

# close previous connection
opalr::opal.logout(o)

# open new connection as administrator
o <- opalr::opal.login(
  username = "administrator",
  password = "password",
  url = SERVER
)

DataSHIELD operations

⚠️NOTE: Before extracting logs, ensure there is recent activity on the server for testing purposes. This can be done using the following commands:

Setup

You will need the following packages:

pak::pak("DSI")
pak::pak("DSOpal")
pak::pak("dsBaseClient")
Open connection
# run some test commands with dsBaseClient
## needed to defined the OpalDriver class in the current environment
DSOpal::Opal()
#> An object of class "OpalDriver"
#> <S4 Type Object>
## create new login object, note that here we use the `dsuser`
builder <- DSI::newDSLoginBuilder()
builder$append(server = "study1",
               url = SERVER,
               user = "dsuser",
               password = DSUSERPASS,
               driver = "OpalDriver")
logindata <- builder$build()
conns <- DSI::datashield.login(logins = logindata)
#> 
#> Logging into the collaborating servers
Simulate some operations
## assign data
DSI::datashield.assign.table(conns["study1"], 
                             symbol = "dsROCrate_test",
                             table = paste0(PROJECT, ".", TABLES[1]),
                             errors.print = TRUE)

dsBaseClient::ds.ls(datasources = conns["study1"])
#> $study1
#> $study1$environment.searched
#> [1] "R_GlobalEnv"
#> 
#> $study1$objects.found
#> [1] "dsROCrate_test"
dsBaseClient::ds.summary("dsROCrate_test")
#> $study1
#> $study1$class
#> [1] "data.frame"
#> 
#> $study1$`number of rows`
#> [1] 2163
#> 
#> $study1$`number of columns`
#> [1] 11
#> 
#> $study1$`variables held`
#>  [1] "LAB_TSC"            "LAB_TRIG"           "LAB_HDL"           
#>  [4] "LAB_GLUC_ADJUSTED"  "PM_BMI_CONTINUOUS"  "DIS_CVA"           
#>  [7] "MEDI_LPD"           "DIS_DIAB"           "DIS_AMI"           
#> [10] "GENDER"             "PM_BMI_CATEGORICAL"

Then, we can proceed as per usual:

basic_rocrate <- o |>
  dsROCrate::safe_output(rocrate = basic_rocrate,
                         logs_from = Sys.time() - 60, # capture the last minute
                         logs_to = Sys.time())
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> Warning: No logs were found for the following configuration:
#>  User: dsuser
#>  Period: 2026-04-27 10:55:50 -- 2026-04-27 10:56:50
print(basic_rocrate) # note that the output will be truncated
...

1.4. Close connection

opalr::opal.logout(o)

1.5. Bag/Save RO-Crate

The resulting RO-Crate can be stored into an RO-Crate bag/archive with the function rocrateR::bag_rocrate:

# create temp directory
tmp_path_bag <- file.path(tempdir(), "dsROCrate-getting-started")
dir.create(tmp_path_bag, showWarnings = FALSE)

# create RO-Crate bag
path_to_rocrate_bag <- basic_rocrate |>
  rocrateR::bag_rocrate(path = tmp_path_bag, overwrite = TRUE)
#> RO-Crate successfully 'bagged'!
#> For details, see: /var/folders/59/4_l6kbyj2qsczmk2b52qg_f40000gn/T//RtmporvfWA/dsROCrate-getting-started/rocrate-769e9477a01cd163a71aa80ca87513dd.zip

We can explore the contents with the following commands:

# extract files in temporary directory
path_to_rocrate_bag |>
  # extract contents inside /tmp_path_bag/ROC
  rocrateR::unbag_rocrate(output = file.path(tmp_path_bag, "ROC"), quiet = TRUE) |>
  # create tree with the files
  fs::dir_tree()
#> /private/var/folders/59/4_l6kbyj2qsczmk2b52qg_f40000gn/T/RtmporvfWA/dsROCrate-getting-started/ROC
#> ├── bag-info.txt
#> ├── bagit.txt
#> ├── data
#> │   └── ro-crate-metadata.json
#> ├── manifest-sha512.txt
#> └── tagmanifest-sha512.txt

1.6. Clean working directory

unlink(tmp_path_bag, recursive = TRUE, force = TRUE)


2. Auditing RO-Crates and servers

2.1. Audit People

List accessible tables within a project for an user
safe_people_crate_v1 <- opalr::opal.login(
  username = USERNAME,
  password = USERPASS,
  url = SERVER
) |>
  dsROCrate::audit(user = "dsuser", project = "CNSIM")
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.

print(safe_people_crate_v1)
#> {
#>   "@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-04-27",
#>       "license": {
#>         "@id": "http://spdx.org/licenses/CC-BY-4.0"
#>       },
#>       "conformsTo": {
#>         "@id": "https://w3id.org/5s-crate/0.4"
#>       },
#>       "hasPart": [
#>         {
#>           "@id": "20260427T105652-dslogs-dsuser.log"
#>         },
#>         {
#>           "@id": "20260427T105652-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-04-27T06:29:48.216Z",
#>       "dateModified": "2026-04-27T06:29:52.944Z",
#>       "hasPart": [
#>         {
#>           "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>         },
#>         {
#>           "@id": "#asset:b6721026564c746f604df7ba785931fa"
#>         },
#>         {
#>           "@id": "#asset:14fbb8de0021e6d237a2ed7779f9625d"
#>         }
#>       ]
#>     },
#>     {
#>       "@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": "#perm:363eb627d1e49c08933f2e26142e6d56-dict-summary-read",
#>       "@type": "ReadAction",
#>       "agent": {
#>         "@id": "#person:a0af2a94926db1b49ad7a812eef509d2"
#>       },
#>       "object": {
#>         "@id": "#asset:b6721026564c746f604df7ba785931fa"
#>       },
#>       "actionStatus": "PotentialActionStatus",
#>       "description": "User may view table dictionary and summary statistics only; access to individual values is restricted."
#>     },
#>     {
#>       "@id": "#perm:63b8097908f682bff1760e48d28c5855-dict-summary-read",
#>       "@type": "ReadAction",
#>       "agent": {
#>         "@id": "#person:a0af2a94926db1b49ad7a812eef509d2"
#>       },
#>       "object": {
#>         "@id": "#asset:14fbb8de0021e6d237a2ed7779f9625d"
#>       },
#>       "actionStatus": "PotentialActionStatus",
#>       "description": "User may view table dictionary and summary statistics only; access to individual values is restricted."
#>     },
#>   ❗ <file truncated, set `options(max_lines = Inf)` to display all>
#>   ]
#> }
Markdown report

A markdown report can be created with an overview and details for an RO-Crate, using the dsROCrate::report:

Only generate .Rmd file

safe_people_crate_v1_rmd <- tempfile(fileext = ".Rmd") # temporary file

safe_people_crate_contents <- safe_people_crate_v1 |>
  dsROCrate::report(filepath = safe_people_crate_v1_rmd, render = FALSE)
#> 1 'Author' entity was found!
#> 3 asset entities were found!
#> 1 'Project' entity was found!
#> 22 'CreativeWork', 'PropertyValue' OR 'SoftwareApplication' entities were found!
#> 2 'File' entities were found!

# display Overview diagram
safe_people_crate_contents$overview_diagram

# display Overview data (Safe People, Safe Projects and Safe Data)
safe_people_crate_contents$overview_data |>
  knitr::kable()
Project Data Access Level People Function Timestamp
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T06:59:58
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T06:59:59
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:00
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:00:00
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:00:01
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:00:01
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:00:02
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:02
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:02
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:03
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:00:03
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:00:04
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:04
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:04
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:05
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:00:05
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:06
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:06
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:06
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:00:07
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:00:07
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:01:38
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:39
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:40
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:01:40
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:01:40
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:01:41
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:01:41
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:42
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:42
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:01:43
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:01:43
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:43
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:44
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:44
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:01:45
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:45
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:45
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:46
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:01:46
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:01:47
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:02:46
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:48
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:02:49
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:02:49
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:02:50
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:02:50
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:50
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:51
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:51
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:02:52
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:02:52
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:52
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:53
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:53
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:02:54
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:54
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:54
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:55
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:02:55
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:02:56
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:03:28
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:30
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:03:30
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:03:31
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:03:31
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:03:31
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:32
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:32
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:33
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:03:33
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:03:33
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:34
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:34
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:34
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:03:35
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:35
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:36
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:36
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:03:37
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:03:37
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:13
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:14
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:15
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:16
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:16
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:17
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:17
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:17
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:19
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:04:19
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:19
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:20
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:20
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:20
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:21
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:04:21
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:21
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:23
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:23
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:23
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:27
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:27
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:27
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:29
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:29
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:30
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:30
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:27:50
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T07:27:51
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T07:27:52
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:27:52
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:27:52
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:27:53
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:27:54
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:22:54
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:22:55
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:22:55
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:48:09
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:48:11
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:51:55
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:53:05
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:53:06
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:53:06
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:59:21
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:59:23
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:01:09
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:01:10
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:01:11
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:01:11
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:01:12
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:01:12
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:01:12
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:05
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:06
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:06
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:08
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:08
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:09
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:09
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:10
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:10
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:13
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:15
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:15
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:16
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:16
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:17
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:17
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:53
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:55
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:55
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:56
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:56
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:57
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:58
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:03:08
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:03:09
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:03:10
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:03:11
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:03:11
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:03:11
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:03:12
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:04:13
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:04:15
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:04:15
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:04:16
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:04:16
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:04:17
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:04:18
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:13:26
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:13:27
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:13:27
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:13:27
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:13:28
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:13:28
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:13:28
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:29:22
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:29:23
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:29:24
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:29:24
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:29:25
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:29:25
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:29:26
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:30:20
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:30:22
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:30:22
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:30:23
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:30:23
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:30:24
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:30:24
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:37:12
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:37:14
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:37:14
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:39:10
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:39:11
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:39:37
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:41:11
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:41:12
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:41:15
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:56:50
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:56:51
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:56:51
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:56:52
CNSIM CNSIM2 read dsuser
CNSIM CNSIM3 read dsuser

Render and display report (HTML)

safe_people_crate_v1 |>
  dsROCrate::report(filepath = safe_people_crate_v1_rmd,
                            title = "DataSHIELD Safe People - Audit Report",
                            render = TRUE, 
                            overwrite = TRUE)

2.2. Audit Project

List users and dataset/table level permissions within a project
safe_project_crate_v1 <- opalr::opal.login(
  username = USERNAME,
  password = USERPASS,
  url = SERVER
) |>
  dsROCrate::audit(project = "CNSIM")
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.

print(safe_project_crate_v1)
#> {
#>   "@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-04-27",
#>       "license": {
#>         "@id": "http://spdx.org/licenses/CC-BY-4.0"
#>       },
#>       "conformsTo": {
#>         "@id": "https://w3id.org/5s-crate/0.4"
#>       },
#>       "hasPart": [
#>         {
#>           "@id": "20260427T105654-dslogs-dsuser.log"
#>         },
#>         {
#>           "@id": "20260427T105654-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": "#person:cb809df1c2fb30b154f60b843e62b3d0",
#>       "@type": "Person",
#>       "name": "dsuser1"
#>     },
#>     {
#>       "@id": "#person:a3cd7ce7818436c83b1eadaa5ba47411",
#>       "@type": "Person",
#>       "name": "dsuser2"
#>     },
#>     {
#>       "@id": "#person:5657241505661473308ae9aa9a378293",
#>       "@type": "Person",
#>       "name": "dsuser3"
#>     },
#>     {
#>       "@id": "#project:7ba189863f9f641196596cb28e04aa14",
#>       "@type": "Project",
#>       "name": "CNSIM",
#>       "dateCreated": "2026-04-27T06:29:48.216Z",
#>       "dateModified": "2026-04-27T06:29:52.944Z",
#>       "hasPart": [
#>         {
#>           "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>         },
#>         {
#>           "@id": "#asset:b6721026564c746f604df7ba785931fa"
#>         },
#>         {
#>           "@id": "#asset:14fbb8de0021e6d237a2ed7779f9625d"
#>         }
#>       ]
#>     },
#>     {
#>       "@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": "#perm:4d2673da68a58c3bce23a61d97b6df51-dict-summary-read",
#>       "@type": "ReadAction",
#>       "agent": {
#>         "@id": "#person:cb809df1c2fb30b154f60b843e62b3d0"
#>       },
#>       "object": {
#>         "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>       },
#>   ❗ <file truncated, set `options(max_lines = Inf)` to display all>
#>   ]
#> }
Markdown report

A markdown report can be created with an overview and details for an RO-Crate, using the dsROCrate::report:

Only generate .Rmd file

safe_project_crate_v1_rmd <- tempfile(fileext = ".Rmd") # temporary file

safe_project_crate_contents <- safe_project_crate_v1 |>
  dsROCrate::report(filepath = safe_project_crate_v1_rmd, render = FALSE)
#> 4 'Author' entities were found!
#> 3 asset entities were found!
#> 1 'Project' entity was found!
#> 22 'CreativeWork', 'PropertyValue' OR 'SoftwareApplication' entities were found!
#> 2 'File' entities were found!

# display Overview diagram
safe_project_crate_contents$overview_diagram

# display Overview data (Safe People, Safe Projects and Safe Data)
safe_project_crate_contents$overview_data |>
  knitr::kable()
Project Data Access Level People Function Timestamp
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T06:59:58
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T06:59:59
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:00
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:00:00
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:00:01
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:00:01
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:00:02
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:02
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:02
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:03
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:00:03
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:00:04
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:04
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:04
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:05
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:00:05
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:06
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:06
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:06
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:00:07
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:00:07
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:01:38
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:39
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:40
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:01:40
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:01:40
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:01:41
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:01:41
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:42
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:42
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:01:43
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:01:43
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:43
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:44
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:44
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:01:45
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:45
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:45
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:46
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:01:46
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:01:47
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:02:46
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:48
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:02:49
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:02:49
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:02:50
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:02:50
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:50
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:51
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:51
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:02:52
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:02:52
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:52
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:53
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:53
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:02:54
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:54
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:54
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:55
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:02:55
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:02:56
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:03:28
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:30
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:03:30
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:03:31
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:03:31
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:03:31
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:32
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:32
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:33
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:03:33
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:03:33
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:34
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:34
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:34
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:03:35
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:35
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:36
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:36
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:03:37
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:03:37
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:13
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:14
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:15
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:16
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:16
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:17
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:17
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:17
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:18
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:19
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:04:19
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:19
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:20
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:20
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:20
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:21
CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:04:21
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:21
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:22
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:23
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:23
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:23
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:24
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:25
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:26
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:27
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:27
CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:27
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:28
CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:29
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:29
CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:30
CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:30
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:27:50
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T07:27:51
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T07:27:52
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:27:52
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:27:52
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:27:53
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:27:54
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:22:54
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:22:55
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:22:55
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:22:56
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:48:09
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:48:10
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:48:11
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:51:55
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:51:56
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:53:05
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:53:06
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:53:06
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:53:07
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:59:21
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:59:22
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:59:23
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:01:09
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:01:10
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:01:11
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:01:11
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:01:12
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:01:12
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:01:12
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:05
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:06
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:06
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:07
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:08
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:08
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:09
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:09
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:10
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:10
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:13
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:15
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:15
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:16
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:16
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:17
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:17
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:53
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:55
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:55
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:56
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:56
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:57
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:58
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:03:08
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:03:09
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:03:10
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:03:11
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:03:11
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:03:11
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:03:12
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:04:13
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:04:15
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:04:15
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:04:16
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:04:16
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:04:17
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:04:18
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:13:26
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:13:27
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:13:27
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:13:27
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:13:28
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:13:28
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:13:28
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:29:22
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:29:23
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:29:24
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:29:24
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:29:25
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:29:25
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:29:26
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:30:20
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:30:22
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:30:22
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:30:23
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:30:23
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:30:24
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:30:24
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:37:12
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:37:13
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:37:14
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:37:14
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:39:10
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:39:11
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:39:37
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:39:38
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:41:11
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:41:12
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:41:14
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:41:15
CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:56:50
CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:56:51
CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:56:51
CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:56:52
CNSIM CNSIM1 read dsuser1
CNSIM CNSIM2 read dsuser
CNSIM CNSIM2 read dsuser2
CNSIM CNSIM3 read dsuser
CNSIM CNSIM3 read dsuser3

Render and display report (HTML)

safe_project_crate_v1 |>
  dsROCrate::report(filepath = safe_project_crate_v1_rmd, 
                            title = "DataSHIELD Safe Project - Audit Report",
                            render = TRUE, 
                            overwrite = TRUE)


2.3. Audit Study

List users and dataset/table level permissions within a study (i.e., multiple servers)
study_crate_v1 <- 
  list(
    "opal_test" = opalr::opal.login(
      username = USERNAME,
      password = USERPASS,
      url = "https://opal-test.obiba.org"
    ),
    "opal_demo" = opalr::opal.login(
      username = USERNAME,
      password = USERPASS,
      url = "https://opal-demo.obiba.org"
    )
  ) |>
  dsROCrate::audit(project = "CNSIM")
#> opening file input connection.
#>  Found 6 records... Imported 6 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 6 records... Imported 6 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 6 records... Imported 6 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 6 records... Imported 6 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 6 records... Imported 6 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 6 records... Imported 6 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.
#> opening file input connection.
#>  Found 500 records... Found 627 records... Imported 627 records. Simplifying...
#> closing file input connection.

print(study_crate_v1)
#> $opal_test
#> {
#>   "@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-04-27",
#>       "license": {
#>         "@id": "http://spdx.org/licenses/CC-BY-4.0"
#>       },
#>       "conformsTo": {
#>         "@id": "https://w3id.org/5s-crate/0.4"
#>       }
#>     },
#>     {
#>       "@id": "https://w3id.org/5s-crate/0.4",
#>       "@type": ["CreativeWork", "Profile"],
#>       "name": "Five Safes RO-Crate profile"
#>     },
#>     {
#>       "@id": "#person:8ab380609ec94312fa958741d1f0f0b1",
#>       "@type": "Person",
#>       "name": "user1"
#>     },
#>     {
#>       "@id": "#person:89bba9a8875a3a16196372b4c087edbd",
#>       "@type": "Person",
#>       "name": "ds"
#>     },
#>     {
#>       "@id": "#person:ab761662ca15f3f7658a0b3adeaae564",
#>       "@type": "Person",
#>       "name": "bthillo@gmail.com",
#>       "sub": "109004362127439404576",
#>       "email_verified": true,
#>       "given_name": "Roberto",
#>       "family_name": "Villegas-Diaz",
#>       "picture": "https://lh3.googleusercontent.com/a/ACg8ocK8GIJLuuDRjfevJjXSZ8Ymw_Y67r8_bsud8eLGClA92MS-GLhd8Q=s96-c",
#>       "email": "bthillo@gmail.com"
#>     },
#>     {
#>       "@id": "#person:f53ed7aa4ab05429c9d20f360d451a98",
#>       "@type": "Person",
#>       "name": "i.w.farr@googlemail.com",
#>       "sub": "106174335072326132292",
#>       "email_verified": true,
#>       "given_name": "ian",
#>       "family_name": "farr",
#>       "picture": "https://lh3.googleusercontent.com/a/ACg8ocKBagSKWdPGazh5CWkffgXleyPaSqn66IlAOMm0voLm-79S1A=s96-c",
#>       "email": "i.w.farr@googlemail.com"
#>     },
#>     {
#>       "@id": "#person:a0af2a94926db1b49ad7a812eef509d2",
#>       "@type": "Person",
#>       "name": "dsuser"
#>     },
#>     {
#>       "@id": "#person:315ba97bcf520312d32e7f1e4f5e8575",
#>       "@type": "Person",
#>       "name": "yannick.marcon@obiba.org",
#>       "sub": "112183318969537221630",
#>       "email_verified": true,
#>       "given_name": "Yannick",
#>       "hd": "obiba.org",
#>       "family_name": "Marcon",
#>       "picture": "https://lh3.googleusercontent.com/a/ACg8ocJFG4mQ2lz80itm91vEUX3jnj12IRv1tF_OaVBDf2Ear6pUsA=s96-c",
#>       "email": "yannick.marcon@obiba.org"
#>     },
#>     {
#>       "@id": "#project:7ba189863f9f641196596cb28e04aa14",
#>       "@type": "Project",
#>       "name": "CNSIM",
#>       "dateCreated": "2026-01-08T17:40:46.773Z",
#>       "dateModified": "2026-01-17T10:53:52.663Z",
#>       "hasPart": [
#>         {
#>           "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>         },
#>         {
#>           "@id": "#asset:b6721026564c746f604df7ba785931fa"
#>         },
#>         {
#>           "@id": "#asset:14fbb8de0021e6d237a2ed7779f9625d"
#>         }
#>       ]
#>     },
#>   ❗ <file truncated, set `options(max_lines = Inf)` to display all>
#>   ]
#> }
#> 
#> $opal_demo
#> {
#>   "@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-04-27",
#>       "license": {
#>         "@id": "http://spdx.org/licenses/CC-BY-4.0"
#>       },
#>       "conformsTo": {
#>         "@id": "https://w3id.org/5s-crate/0.4"
#>       },
#>       "hasPart": [
#>         {
#>           "@id": "20260427T105658-dslogs-dsuser.log"
#>         },
#>         {
#>           "@id": "20260427T105658-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": "#person:cb809df1c2fb30b154f60b843e62b3d0",
#>       "@type": "Person",
#>       "name": "dsuser1"
#>     },
#>     {
#>       "@id": "#person:a3cd7ce7818436c83b1eadaa5ba47411",
#>       "@type": "Person",
#>       "name": "dsuser2"
#>     },
#>     {
#>       "@id": "#person:5657241505661473308ae9aa9a378293",
#>       "@type": "Person",
#>       "name": "dsuser3"
#>     },
#>     {
#>       "@id": "#project:7ba189863f9f641196596cb28e04aa14",
#>       "@type": "Project",
#>       "name": "CNSIM",
#>       "dateCreated": "2026-04-27T06:29:48.216Z",
#>       "dateModified": "2026-04-27T06:29:52.944Z",
#>       "hasPart": [
#>         {
#>           "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>         },
#>         {
#>           "@id": "#asset:b6721026564c746f604df7ba785931fa"
#>         },
#>         {
#>           "@id": "#asset:14fbb8de0021e6d237a2ed7779f9625d"
#>         }
#>       ]
#>     },
#>     {
#>       "@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": "#perm:4d2673da68a58c3bce23a61d97b6df51-dict-summary-read",
#>       "@type": "ReadAction",
#>       "agent": {
#>         "@id": "#person:cb809df1c2fb30b154f60b843e62b3d0"
#>       },
#>       "object": {
#>         "@id": "#asset:fad6faf661584d53e58f9730b14c5aae"
#>       },
#>   ❗ <file truncated, set `options(max_lines = Inf)` to display all>
#>   ]
#> }
Markdown report

A markdown report can be created with an overview and details for an RO-Crate, using the dsROCrate::report:

Only generate .Rmd file

study_crate_v1_rmd <- tempfile(fileext = ".Rmd") # temporary file

safe_project_crate_contents <- study_crate_v1 |>
  dsROCrate::report(filepath = study_crate_v1_rmd, render = FALSE)
#> 6 'Author' entities were found!
#> 3 asset entities were found!
#> 1 'Project' entity was found!
#> 22 'CreativeWork', 'PropertyValue' OR 'SoftwareApplication' entities were found!
#> 4 'Author' entities were found!
#> 3 asset entities were found!
#> 1 'Project' entity was found!
#> 22 'CreativeWork', 'PropertyValue' OR 'SoftwareApplication' entities were found!
#> 2 'File' entities were found!

# display Overview diagram
safe_project_crate_contents$overview_diagram

# display Overview data (Safe People, Safe Projects and Safe Data)
safe_project_crate_contents$overview_data |>
  knitr::kable()
Server Project Data Access Level People Function Timestamp
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T06:59:58
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T06:59:59
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:00
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:00:00
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:00:01
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:00:01
opal_demo CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:00:02
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:02
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:02
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:03
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:00:03
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:00:04
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:04
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:04
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:05
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:00:05
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:00:06
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:00:06
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:00:06
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:00:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:00:07
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:01:38
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:39
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:40
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:01:40
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:01:40
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:01:41
opal_demo CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:01:41
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:42
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:42
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:01:43
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:01:43
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:43
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:44
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:44
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:01:45
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:01:45
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:01:45
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:01:46
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:01:46
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:01:47
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:02:46
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:48
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:02:49
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:02:49
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:02:50
opal_demo CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:02:50
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:50
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:51
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:51
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:02:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:02:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:53
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:53
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:02:54
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:02:54
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:02:54
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:02:55
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:02:55
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:02:56
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:03:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:30
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:03:30
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:03:31
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:03:31
opal_demo CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:03:31
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:32
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:32
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:33
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:03:33
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:03:33
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:34
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:34
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:34
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:03:35
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:03:35
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:03:36
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:03:36
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:03:37
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:03:37
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:13
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:14
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:15
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:16
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:04:16
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:17
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:17
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:17
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:18
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:18
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:18
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:18
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:19
opal_demo CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:04:19
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:19
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:20
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:20
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:20
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:21
opal_demo CNSIM CNSIM1 read dsuser dsBase::meanDS 2026-04-27T07:04:21
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:21
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:23
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:23
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:23
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:04:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:04:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:25
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:25
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:25
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:25
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:26
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:26
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:26
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:26
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:27
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:27
opal_demo CNSIM CNSIM1 read dsuser dsBase::quantileMeanDS 2026-04-27T07:04:27
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:04:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:04:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::lengthDS 2026-04-27T07:04:29
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:29
opal_demo CNSIM CNSIM1 read dsuser dsBase::levelsDS 2026-04-27T07:04:30
opal_demo CNSIM CNSIM1 read dsuser dsBase::table1DDS 2026-04-27T07:04:30
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T07:27:50
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T07:27:51
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T07:27:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T07:27:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T07:27:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T07:27:53
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T07:27:54
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:22:54
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:22:55
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:22:55
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:22:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:22:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:22:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:22:56
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:48:09
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:48:10
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:48:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:48:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:48:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:48:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:48:11
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:51:55
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:51:56
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:51:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:51:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:51:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:51:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:51:56
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:53:05
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:53:06
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:53:06
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:53:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:53:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:53:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:53:07
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T08:59:21
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T08:59:22
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T08:59:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T08:59:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T08:59:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T08:59:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T08:59:23
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:01:09
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:01:10
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:01:11
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:01:11
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:01:12
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:01:12
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:01:12
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:05
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:06
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:06
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:07
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:08
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:08
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:09
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:09
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:10
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:13
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:15
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:15
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:16
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:16
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:17
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:17
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:02:53
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:02:55
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:02:55
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:02:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:02:56
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:02:57
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:02:58
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:03:08
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:03:09
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:03:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:03:11
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:03:11
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:03:11
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:03:12
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:04:13
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:04:15
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:04:15
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:04:16
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:04:16
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:04:17
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:04:18
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:13:26
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:13:27
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:13:27
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:13:27
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:13:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:13:28
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:13:28
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:29:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:29:23
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:29:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:29:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:29:25
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:29:25
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:29:26
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:30:20
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:30:22
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:30:22
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:30:23
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:30:23
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:30:24
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:30:24
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:37:12
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:37:13
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:37:13
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:37:13
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:37:13
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:37:14
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:37:14
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:39:10
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:39:11
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:39:37
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:39:38
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:39:38
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:39:38
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:39:38
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:39:38
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:39:38
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:41:11
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:41:12
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:41:14
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:41:14
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:41:14
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:41:14
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:41:15
opal_demo CNSIM CNSIM1 read dsuser base::assign 2026-04-27T09:56:50
opal_demo CNSIM CNSIM1 read dsuser dsBase::lsDS 2026-04-27T09:56:51
opal_demo CNSIM CNSIM1 read dsuser base::exists 2026-04-27T09:56:51
opal_demo CNSIM CNSIM1 read dsuser dsBase::classDS 2026-04-27T09:56:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::isValidDS 2026-04-27T09:56:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::dimDS 2026-04-27T09:56:52
opal_demo CNSIM CNSIM1 read dsuser dsBase::colnamesDS 2026-04-27T09:56:52
opal_demo CNSIM CNSIM1 read dsuser1
opal_demo CNSIM CNSIM2 read dsuser
opal_demo CNSIM CNSIM2 read dsuser2
opal_demo CNSIM CNSIM3 read dsuser
opal_demo CNSIM CNSIM3 read dsuser3
opal_test CNSIM CNSIM1 read dsuser

Render and display report (HTML)

study_crate_v1 |>
  dsROCrate::report(filepath = study_crate_v1_rmd, 
                            title = "DataSHIELD Study audit",
                            render = TRUE, 
                            overwrite = TRUE)