Implementation of the DataStorage R6 class to a JSON log file backend using a unified
API for read/write operations
Super class
shiny.telemetry::DataStorage -> DataStorageLogFile
Active bindings
- event_bucket
- string that identifies the file path to store user related and action data 
Methods
Examples
log_file_path <- tempfile(fileext = ".txt")
data_storage <- DataStorageLogFile$new(log_file_path = log_file_path)
data_storage$insert("example", "test_event", "session1")
data_storage$insert("example", "input", "s1", list(id = "id"))
data_storage$insert("example", "input", "s1", list(id = "id2", value = 32))
data_storage$insert(
  "example", "test_event_3_days_ago", "session1",
  time = lubridate::as_datetime(lubridate::today() - 3)
)
data_storage$read_event_data()
#> # A tibble: 4 × 8
#>   app_name type      session time                id    value date       username
#>   <chr>    <chr>     <chr>   <dttm>              <chr> <chr> <date>     <chr>   
#> 1 example  test_eve… sessio… 2025-07-14 09:13:25 NA    NA    2025-07-14 NA      
#> 2 example  input     s1      2025-07-14 09:13:25 id    NA    2025-07-14 NA      
#> 3 example  input     s1      2025-07-14 09:13:25 id2   32    2025-07-14 NA      
#> 4 example  test_eve… sessio… 2025-07-11 00:00:00 NA    NA    2025-07-11 NA      
data_storage$read_event_data(Sys.Date() - 1, Sys.Date() + 1)
#> # A tibble: 3 × 8
#>   app_name type      session time                id    value date       username
#>   <chr>    <chr>     <chr>   <dttm>              <chr> <chr> <date>     <chr>   
#> 1 example  test_eve… sessio… 2025-07-14 09:13:25 NA    NA    2025-07-14 NA      
#> 2 example  input     s1      2025-07-14 09:13:25 id    NA    2025-07-14 NA      
#> 3 example  input     s1      2025-07-14 09:13:25 id2   32    2025-07-14 NA      
file.remove(log_file_path)
#> [1] TRUE