From 8935b0b2a4c2a843361fd3a7f9f284c0261fb7c5 Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Wed, 11 Mar 2026 13:22:54 +0100 Subject: [PATCH] feat: allow passing of global settings launching from R or running docker container. --- NEWS.md | 2 ++ R/launch_FreesearchR.R | 28 +++++++++++++++++++++++----- R/sysdata.rda | Bin 2838 -> 2661 bytes R/ui_elements.R | 8 ++++---- SESSION.md | 19 ------------------- 5 files changed, 29 insertions(+), 28 deletions(-) diff --git a/NEWS.md b/NEWS.md index 6f50a612..7c44be1a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,6 +6,8 @@ *NEW* New with_labels() function (and helpers) added to allow easy preservation of labels. +*NEW* option to pass global settings when running as docker or launching from R. Support for INCLUDE_GLOBALENV, DATA_LIMIT_DEFAULT, DATA_LIMIT_UPPER and DATA_LIMIT_LOWER. Docs will follow. + # FreesearchR 26.3.1 *FIX* ~~Include font files for static loading without dependency on Google.~~ Kept webfonts from google as local fonts are not working for now. diff --git a/R/launch_FreesearchR.R b/R/launch_FreesearchR.R index 504de474..469c443b 100644 --- a/R/launch_FreesearchR.R +++ b/R/launch_FreesearchR.R @@ -23,11 +23,11 @@ launch_FreesearchR <- function(inlcude_globalenv = TRUE, data_limit_upper = 100000, data_limit_lower = 1, ...) { - global_freesearchR <- list( - include_globalenv = include_globalenv, - data_limit_default = data_limit_default, - data_limit_upper = data_limit_upper, - data_limit_lower = data_limit_lower + Sys.setenv( + INCLUDE_GLOBALENV = include_globalenv, + DATA_LIMIT_DEFAULT = data_limit_default, + DATA_LIMIT_UPPER = data_limit_upper, + DATA_LIMIT_LOWER = data_limit_lower ) appDir <- system.file("apps", "FreesearchR", package = "FreesearchR") @@ -39,3 +39,21 @@ launch_FreesearchR <- function(inlcude_globalenv = TRUE, a <- shiny::runApp(appDir = paste0(appDir, "/app.R"), ...) return(invisible(a)) } + + +## Helper to set env variables +get_config <- function(var_name, default = NULL) { + # First check environment variables (set by Docker) + val <- Sys.getenv(var_name, unset = NA) + + if (!is.na(val) && nzchar(val)) { + return(val) + } + + # Fall back to default (can be overridden when launching from R) + if (!is.null(default)) { + return(default) + } + + stop(paste("Required config variable not set:", var_name)) +} diff --git a/R/sysdata.rda b/R/sysdata.rda index e7ce41066e6125ce50acf9792d07bde50c433502..f20ba2552a749586b3c5f0ce62e1446fd82b4b4c 100644 GIT binary patch literal 2661 zcmV-r3YzsoT4*^jL0KkKSwF8mp8y$Bf5iX)Xaz!l|KNXb-@w2B|L{Nn06+)<;0xay zldLxn4g#q(peO-+@Bjc0svI>j01yOZGEE8OBSM==`bfs00MU~XiLnN%r~XDl8frAv zKOsk>K`{+5Ljo`WMvV2fB*mh00001CXzy$nrJ}NMt}oA00000 z000o84^YvgMutFW4FJ#vfM@^)ng9V3i8UHD$&imxh%#bi0iXZ_6G4+qfXQ-Iz)U3! zv@jWz0?R0%rLjd#Omsk3n~Kt?pw^@^yu3R2W3u)F%dwbUo@do_8Pr5U zg*l$R#DOUP&rersQS3`#+L^l8**o6cJ8-vK@CcA8nUypoZ*>Jye)V$YZ&Q`QwNlN% ztyMEc2(LIb0SB041DLbfZOg^(L048E>ycb9!X%boJP9i5s_~(i^pjN>EL%*K${x~j z5`R75CvXM47X8Z zixd55`%E~knsrPiRqqsqRhxvcsA(cz4_dmt#@9}@3E=fP*!aE^eP-ufPP?If^JeR* z%qTfCZQa|d7HaCK%197mFBVo})_tWL9NU3qlZ1fMJKVQRSn1(K~2inS-lJ!<;p;iHK87 zvM&&KgLQVfnP?tPa_x)V;$q1vj$PSfY^r-=>0%1Cg$Z~mslUHVV#8*@_!i%vIp&F0LNQkM?PH)?_z2zp|Y(rXCOHWPchs^(1Fn|%hN?U-XFu(@rO zm8CPx;~uv)abvGvV^O1XLJ=<;yS( zEfxiqgFRaeoBF#Ncx0*5d!#R8vCFKC(Mr*crP>4wP)wE;lx0Lp(F7bCg2tFKv!Dh+ zCv=V2h8qJFXcok!;`9$_pc~LYH>$ae7){G1kfm8dL=piyR0|}9?7n{6NftrpVQnQ& zt2nNeEwZe+=W9?@aib8cX;_+L(X2Ym3_%(7Qu7f*hOX}n#mfqv_jkEB-JwmkxT7Re z8EO)&>+@OA!0G`4A)PvXe5~oENmHMt&RQ1HD+^?SP?dlRNXdkRCpN5_PctmXz)lld z5l$LfQi&ufLBPdW$o4(nw;S)|+;UMV!Ocrj%FwG+R~RLE+18et-{H>P>b#BlTTxnY zWQL}ZHDzx1ZEQO#mbGFdDkw;B_LXcoM4E60G?51=*?P)8GqCzzlW~{fcN|4~qlA^Bg^ZXxD{moZrdr%JYKF@1ReQ;kwCYbpBo$X|)B`@py z1W;ZJWu78d-&2gB&j8O==U=8DoVdt+&J$B1wO@3ZEXRr5P%baBsfh(TPny(WFB;=v zG6pPe=ojF^u>&yjAJ@0ixe|rmyf8O<=bCcMi#M7gby4-V$-E>mRAC%a3u3MQ+gFhV zltnDsR3s@CYF)T2)Ujt{zfF-62< zLhY+&MEyfh!IYe|LpHqw7Dp=D_q6EgR7-TijK>2Vw?Chm-&6o)tID{nfptyejl;Zs zQ%klJin%}#X;a_amA?TAm-Q}98GjPk?X|ZRLN}8@==!nNI9M4lVDN! z&(*{(sg2c1y?stPy8^_0=g|jUyhI6K4rUr2?O)0ft&jUic6l2`IO$z-F%GW)sw@z& zOcK3N7>6yYhk0FK*$x!Bmi!jin_V89*fazehANvoZZfyKdLLpE#gnC}1srEijKNA= z-8d5Ub$4^YtcCO#N{B|dH?QU9$PDM?LQrCa^DOGHsnA zR#B6Vv^EltZ7fhlnuuss6X-{?UZiHNN6jcEOeiFBJ_a)oR;VM4=pt!GY=%*ec2e>| ziy^7E-J7r7mgg4j*I23z*3BDfrdPie+XV~B1lVeK99}?{9bLf5!&@6&btkf#Wh0BT z8A(R~N*f7+gahL3S{T#{W=e4YPeB_PjH6SE>uW9yb8Txk@51?^wJ=vzir9M9cYTqs z0;2E6wL2*p5QS}i)O&4bv1-|Z=i$m;3cy~X25ifzW3XXYZqFRJdE-$F7@Mk|qdnUv zr%!Yj*9>KOWK^!FBUP)TReMCQCES`XX-ILdafO7al4!dg$D`OOB7&DuYw4VU_JM-S T3k0y)KjQ94rwS4W_2;wTDyY|i literal 2838 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 diff --git a/R/ui_elements.R b/R/ui_elements.R index 0aea99e8..cac844a0 100644 --- a/R/ui_elements.R +++ b/R/ui_elements.R @@ -83,9 +83,9 @@ ui_elements <- function(selection) { layout_params = "dropdown", # title = "Choose a datafile to upload", file_extensions = c(".csv", ".tsv", ".txt", ".xls", ".xlsx", ".rds", ".ods", ".dta"), - limit_default = global_freesearchR$data_limit_default, - limit_lower = global_freesearchR$data_limit_lower, - limit_upper = global_freesearchR$data_limit_upper + limit_default = DATA_LIMIT_DEFAULT, + limit_lower = DATA_LIMIT_LOWER, + limit_upper = DATA_LIMIT_UPPER ) ), @@ -107,7 +107,7 @@ ui_elements <- function(selection) { id = "env", title = NULL, packages = c("NHANES", "stRoke", "datasets", "MASS"), - globalenv = global_freesearchR$include_globalenv + globalenv = isTruthy(INCLUDE_GLOBALENV) ) ), # shiny::conditionalPanel( diff --git a/SESSION.md b/SESSION.md index 608dbe98..1193d865 100644 --- a/SESSION.md +++ b/SESSION.md @@ -26,8 +26,6 @@ |apexcharter |0.4.5 |2026-01-07 |CRAN (R 4.5.2) | |askpass |1.2.1 |2024-10-04 |CRAN (R 4.5.0) | |assertthat |0.2.1 |2019-03-21 |CRAN (R 4.5.0) | -|attachment |0.4.5 |2025-03-14 |CRAN (R 4.5.0) | -|attempt |0.3.1 |2020-05-03 |CRAN (R 4.5.0) | |backports |1.5.0 |2024-05-23 |CRAN (R 4.5.0) | |base64enc |0.1-6 |2026-02-02 |CRAN (R 4.5.2) | |bayestestR |0.17.0 |2025-08-29 |CRAN (R 4.5.0) | @@ -46,7 +44,6 @@ |cardx |0.3.2 |2026-02-05 |CRAN (R 4.5.2) | |caTools |1.18.3 |2024-09-04 |CRAN (R 4.5.0) | |cellranger |1.1.0 |2016-07-27 |CRAN (R 4.5.0) | -|cffr |1.2.1 |2026-01-12 |CRAN (R 4.5.2) | |checkmate |2.3.4 |2026-02-03 |CRAN (R 4.5.2) | |class |7.3-23 |2025-01-01 |CRAN (R 4.5.2) | |classInt |0.4-11 |2025-01-08 |CRAN (R 4.5.0) | @@ -56,8 +53,6 @@ |colorspace |2.1-2 |2025-09-22 |CRAN (R 4.5.0) | |commonmark |2.0.0 |2025-07-07 |CRAN (R 4.5.0) | |crayon |1.5.3 |2024-06-20 |CRAN (R 4.5.0) | -|credentials |2.0.3 |2025-09-12 |CRAN (R 4.5.0) | -|curl |7.0.0 |2025-08-19 |CRAN (R 4.5.0) | |data.table |1.18.2.1 |2026-01-27 |CRAN (R 4.5.2) | |datamods |1.5.3 |2024-10-02 |CRAN (R 4.5.0) | |datawizard |1.3.0 |2025-10-11 |CRAN (R 4.5.0) | @@ -66,7 +61,6 @@ |devtools |2.4.6 |2025-10-03 |CRAN (R 4.5.0) | |DHARMa |0.4.7 |2024-10-18 |CRAN (R 4.5.0) | |digest |0.6.39 |2025-11-19 |CRAN (R 4.5.2) | -|dockerfiler |0.2.5 |2025-05-07 |CRAN (R 4.5.0) | |doParallel |1.0.17 |2022-02-07 |CRAN (R 4.5.0) | |dplyr |1.2.0 |2026-02-03 |CRAN (R 4.5.2) | |DT |0.34.0 |2025-09-02 |CRAN (R 4.5.0) | @@ -93,15 +87,12 @@ |fs |1.6.6 |2025-04-12 |CRAN (R 4.5.0) | |gdtools |0.5.0 |2026-02-09 |CRAN (R 4.5.2) | |generics |0.1.4 |2025-05-09 |CRAN (R 4.5.0) | -|gert |2.3.1 |2026-01-11 |CRAN (R 4.5.2) | |ggalluvial |0.12.5 |2023-02-22 |CRAN (R 4.5.0) | |ggcorrplot |0.1.4.1 |2023-09-05 |CRAN (R 4.5.0) | |ggforce |0.5.0 |2025-06-18 |CRAN (R 4.5.0) | |ggplot2 |4.0.2 |2026-02-03 |CRAN (R 4.5.2) | |ggridges |0.5.7 |2025-08-27 |CRAN (R 4.5.0) | |ggstats |0.12.0 |2025-12-22 |CRAN (R 4.5.2) | -|gh |1.5.0 |2025-05-26 |CRAN (R 4.5.0) | -|gitcreds |0.1.2 |2022-09-08 |CRAN (R 4.5.0) | |glue |1.8.0 |2024-09-30 |CRAN (R 4.5.0) | |gridExtra |2.3 |2017-09-09 |CRAN (R 4.5.0) | |gt |1.3.0 |2026-01-22 |CRAN (R 4.5.2) | @@ -115,24 +106,20 @@ |htmltools |0.5.9 |2025-12-04 |CRAN (R 4.5.2) | |htmlwidgets |1.6.4 |2023-12-06 |CRAN (R 4.5.0) | |httpuv |1.6.16 |2025-04-16 |CRAN (R 4.5.0) | -|httr2 |1.2.2 |2025-12-08 |CRAN (R 4.5.2) | |IDEAFilter |0.2.1 |2025-07-29 |CRAN (R 4.5.0) | |insight |1.4.6 |2026-02-04 |CRAN (R 4.5.2) | |iterators |1.0.14 |2022-02-05 |CRAN (R 4.5.0) | |jquerylib |0.1.4 |2021-04-26 |CRAN (R 4.5.0) | |jsonlite |2.0.0 |2025-03-27 |CRAN (R 4.5.0) | -|jsonvalidate |1.5.0 |2025-02-07 |CRAN (R 4.5.0) | |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.5.2) | |keyring |1.4.1 |2025-06-15 |CRAN (R 4.5.0) | |knitr |1.51 |2025-12-20 |CRAN (R 4.5.2) | |later |1.4.6 |2026-02-13 |CRAN (R 4.5.2) | |lattice |0.22-7 |2025-04-02 |CRAN (R 4.5.2) | |lifecycle |1.0.5 |2026-01-08 |CRAN (R 4.5.2) | -|litedown |0.9 |2025-12-18 |CRAN (R 4.5.2) | |lme4 |1.1-38 |2025-12-02 |CRAN (R 4.5.2) | |lubridate |1.9.5 |2026-02-04 |CRAN (R 4.5.2) | |magrittr |2.0.4 |2025-09-12 |CRAN (R 4.5.0) | -|markdown |2.0 |2025-03-23 |CRAN (R 4.5.0) | |MASS |7.3-65 |2025-02-28 |CRAN (R 4.5.0) | |Matrix |1.7-4 |2025-08-28 |CRAN (R 4.5.2) | |memoise |2.0.1 |2021-11-26 |CRAN (R 4.5.0) | @@ -148,7 +135,6 @@ |openssl |2.3.4 |2025-09-30 |CRAN (R 4.5.0) | |openxlsx2 |1.23.1 |2026-01-19 |CRAN (R 4.5.2) | |otel |0.2.0 |2025-08-29 |CRAN (R 4.5.0) | -|pak |0.9.2 |2025-12-22 |CRAN (R 4.5.2) | |parameters |0.28.3 |2025-11-25 |CRAN (R 4.5.2) | |patchwork |1.3.2 |2025-08-25 |CRAN (R 4.5.0) | |pbmcapply |1.5.1 |2022-04-28 |CRAN (R 4.5.0) | @@ -172,7 +158,6 @@ |R6 |2.6.1 |2025-02-15 |CRAN (R 4.5.0) | |ragg |1.5.0 |2025-09-02 |CRAN (R 4.5.0) | |rankinPlot |1.1.0 |2023-01-30 |CRAN (R 4.5.0) | -|rappdirs |0.3.4 |2026-01-17 |CRAN (R 4.5.2) | |rbibutils |2.4.1 |2026-01-21 |CRAN (R 4.5.2) | |RColorBrewer |1.1-3 |2022-04-03 |CRAN (R 4.5.0) | |Rcpp |1.1.1 |2026-01-10 |CRAN (R 4.5.2) | @@ -205,7 +190,6 @@ |sessioninfo |1.2.3 |2025-02-05 |CRAN (R 4.5.0) | |shiny |1.13.0 |2026-02-20 |CRAN (R 4.5.2) | |shiny.i18n |0.3.0 |2023-01-16 |CRAN (R 4.5.0) | -|shiny2docker |0.0.3 |2025-06-28 |CRAN (R 4.5.0) | |shinybusy |0.3.3 |2024-03-09 |CRAN (R 4.5.0) | |shinyjs |2.1.1 |2026-01-15 |CRAN (R 4.5.2) | |shinyTime |1.0.3 |2022-08-19 |CRAN (R 4.5.0) | @@ -214,7 +198,6 @@ |stringi |1.8.7 |2025-03-27 |CRAN (R 4.5.0) | |stringr |1.6.0 |2025-11-04 |CRAN (R 4.5.0) | |stRoke |25.9.2 |2025-09-30 |CRAN (R 4.5.0) | -|sys |3.4.3 |2024-10-04 |CRAN (R 4.5.0) | |systemfonts |1.3.1 |2025-10-01 |CRAN (R 4.5.0) | |testthat |3.3.2 |2026-01-11 |CRAN (R 4.5.2) | |textshaping |1.0.4 |2025-10-10 |CRAN (R 4.5.0) | @@ -229,7 +212,6 @@ |tzdb |0.5.0 |2025-03-15 |CRAN (R 4.5.0) | |usethis |3.2.1 |2025-09-06 |CRAN (R 4.5.0) | |uuid |1.2-2 |2026-01-23 |CRAN (R 4.5.2) | -|V8 |8.0.1 |2025-10-10 |CRAN (R 4.5.0) | |vctrs |0.7.1 |2026-01-23 |CRAN (R 4.5.2) | |viridis |0.6.5 |2024-01-29 |CRAN (R 4.5.0) | |viridisLite |0.4.3 |2026-02-04 |CRAN (R 4.5.2) | @@ -240,5 +222,4 @@ |xml2 |1.5.2 |2026-01-17 |CRAN (R 4.5.2) | |xtable |1.8-4 |2019-04-21 |CRAN (R 4.5.0) | |yaml |2.3.12 |2025-12-10 |CRAN (R 4.5.2) | -|yesno |0.1.3 |2024-07-26 |CRAN (R 4.5.0) | |zip |2.3.3 |2025-05-13 |CRAN (R 4.5.0) |