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… 2024-12-13 13:30:46 NA NA 2024-12-13 NA
#> 2 example input s1 2024-12-13 13:30:46 id NA 2024-12-13 NA
#> 3 example input s1 2024-12-13 13:30:46 id2 32 2024-12-13 NA
#> 4 example test_eve… sessio… 2024-12-10 00:00:00 NA NA 2024-12-10 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… 2024-12-13 13:30:46 NA NA 2024-12-13 NA
#> 2 example input s1 2024-12-13 13:30:46 id NA 2024-12-13 NA
#> 3 example input s1 2024-12-13 13:30:46 id2 32 2024-12-13 NA
file.remove(log_file_path)
#> [1] TRUE