The configuration YML file provides the wiring instructions for generating the shinyapp R files. Hence, it is important for the app developer to pay attention and understand this file . By default the file is named config.yml you can change this name to suit to your needs.

The information below describes the config.yml structure and defaults.

Top Level

Property and default value Details
dashboard_template: bs4_dash At this time on bs4_dash is only supported
template_file: !expr system.file(“bs4/bs4_standard.mst” , package = “shinyspring”)

Supports

  1. bs4_minimal.mst
  2. bs4_standard.mst
code_gen_location: ‘.’ where will the code be created
dummy_test.mod_name: dummy_mod dummy_test.weird_param: dummy Leave this as it is. It is there to overcome a bug
shinyspring_config : config.yml Recommendation to keep config.yml . If you change take care to change all defaults downstream in build chain
preload_dataset: true At this only only true works. Future support will give option to turn this off
source_file_onstartup: on_startup.R names the the file that needs to be sourced before shinyapp launches. If you change take care to change all defaults downstream in build chain

Dataset Configuration

Shown below is a basic example of loading 3 datasets into the shinyspring environment

  • all datasets follow the convention of ds.[ds_name].[ds_param]

  • all datasets need to atleast have the ds_params of a type and connection defined.

    • For type We currently support csv , rds , feather , parque , custom

    • custom calls the functions you specify. This provides an approach to load any dataset. In example below read_product_map() will be called at startup time.

      ds.product_map.type: custom
      ds.product_map.connection: read_product_map()
  • ds_info (optional) is a neat way of providing meta information for dataset. You can change colnames , change data types for columns , provide readable colnames (pretty names) , validate NA threshholds via ds_info . ds_info as two ds_params

    • ds_info_type options can be csv , google and excel. Refer Sample for defining ds_info .

    • ds_info_url connection info for CSV(local) , googlesheet(URL https) , excel (local) Sample here [TODO]

  • Other optional ds_params :

    • subset limit the dataset to a subset number of rows. Eg: 1000

    • pretty_names provide readable colnames that can be used in UI

      ds.mexico.subset: 100
      ds.mexico.pretty_names: !expr c("plaintiff" , "type" , "y96", "y97")

Modules

Modules are defined with the pattern [module name].[module property]: value . Structure sample below

  custom_mod.mod_name: dummy_mod
  custom_mod.ui_function: dummy_mod_ui
  custom_mod.server_function: dummy_mod_server
  custom_mod.onload_function: dummy_mod_onLoad
  custom_mod.param1: param 1
  custom_mod.param2: param 2
  • [module name] can be tab name in menus (typically) , or any module you want (rare). You can reference the module properties in code by calling mod_registry$params_for_mod(mod_name) in your code

  • Modules are two types

    • Published : Formal package based modules published on github and registered in module registry . For these modules most of the default properties are already set and as app developer you need to wire the mandatory and maybe the optional params. Refer Mod Registry concepts here

    • Custom : This is the module you are writing this

Authentication

Authentication support is based on shinymanager package It is not fully developed. You can try the preview version with the following in configuration file

basic_auth: true

Scheduling

targets package