VOR keeps getting better, and we are excited to announce the latest new features, enhancements, and changes: 

VOR Workbench 

View Scenarios

The View Scenario page on the VOR Workbench has a new design for easier selection of scenarios and risk factors, and to allow for comparing scenarios and risk factors in the same graph and data table. 

Model Reservoir

Model Reservoir and the Model page on the VOR Workbench now also features unit testing of SAS models as well as improved consistency checks of model parameters and added fields for model descriptions.

Waterways

The Waterways page on the VOR Workbench has been enhanced with the capability of applying conditional run output, using custom tags for both naming and searching runs, and identifying run names for download.

Studies

Study pages (Run and Build) only display streams that are runnable.

Custom Themes

With this release, it is possible to apply custom themes and logos to the VOR Workbench.

Playpen Help 

A detailed playpen documentation has been added in the Help Center on the VOR Workbench

Configurable Selections  

The Run Studies page on the VOR Workbench can now be configured to make object selections optional or required.  

Whether the selection of an object is required or optional can be specified in the playpen configuration. Detailed instructions on how to do this can be found on the Playpen Configuration page on the Admin Panel 

Example configuration: 

Configured results on the Run Studies page: 

Feature Flags 

It is now possible to configure the Build Study page with feature flags. The feature flags can be used to require certain selections or hide them entirely. The feature flags can be configured on the Playpen Configuration page on the Admin Panel 

The available feature flags are: 

  • required_comment—A flag that determines whether the playpen requires user comments for each action. 
  • required_upload_approval—Setting this flag to true will only allow uploads to be selected once they have been approved 
  • require_methodology_selection—Setting this flag to true will require users to select a methodology before saving a study. 
  • require_scenario_selection—Setting this flag to true will require users to select scenarios before saving a study. 
  • hide_scenario_selection—Setting this flag to true will remove the scenarios tab from the build study screen. 
  • disable_scenario_weighting—Setting this flag to true will hide the scenario weighting graphic and weight input. Unlike hide_scenario_selection this option will still allow users to select scenarios, just not enter weights. 
  • disable_model_unit_test—Setting this to true will remove the model run section from the model screen. 

Switching Playpens

It is now easier to switch playpens. Users click the playpen name in the toolbar to show the list of playpens for selection.

Streams

Dynamic Facts 

When building streams, it is now possible to pass on dynamic facts to whole subprocesses for better abstraction and reusability.  

Select Statement 

It is now simpler to specify the SELECT= statement in an input node when reading from a database. With this release, the SELECT= option can be used with any select statement and a variable list is no longer required.  

However, if a variable list is specified, it can contain variables that are not in the queue (these will be ignored) and does not have to list variables in the queue. The log will note if any variables are missing in the list or in the queue.  

SQL Functions

SQL functions in SQL nodes have expanded capabilities for numbers, integers, and dates.

Zero values for input and output files

Input and output nodes now use the following zero/missing values:

  • DATETIME-type variables use 1970-01-01T00:00:00Z instead of 1677-09-21T00:12:43Z.
  • INT-type variables use 0 instead of -99999999.

SDK Functions

Runtime Options

Simple runtime options are now supported through SDK functions. This allows for runtime options to be retrieved in the language of the computational node in which they are used.

For Golang use sdk.GetRunOptions() and for Python use run.get_run_options(). Further details can be found in the online User Guide.

Runtime Upload Selection

To accommodate the multiple upload tabs on the Run Studies page on the VOR Workbench the MapUpload object has been replaced by the SDK functions sdk.GetRunUploads() (Golang) and run.get_run_uploads (Python). Both return maps of the list of uploads (binary file included) selected on the Run Studies page.

Filter Retrieval

To accommodate that multiple filters can be configured on the Run Studies page on the VOR Workbench, the Filter object has been replaced with the SDK functions sdk.GetRunFilters() (Golang) and run.get_run_filters() (Python). Both return maps of the list of filters selected on the Run Studies page.

Configuration Group retrieval

Multiple configuration group tabs can now be configured on the Run Studies page on the VOR Workbench. In addition to setting a playpen-level active config group, the playpen can now be configured to present the user with one or more tabs to select configuration groups.

In this release, the Python function get_active_config_group() to retrieve the configuration group has been improved to return a dict of tables as Pandas DataFrames.

To retrieve the configuration groups selected at runtime, a new run.get_run_config_groups() function has been added to the SDK. This returns a map of the list of config groups selected.

For Golang, the gRPC methods can still be used to retrieve the raw JSON of the configuration group.

Release Details

 

✨ Features

(sdk) Add functions to retrieve runtime configuration groups [VS-615] (#755)

(engine) Control the order of variables in an output CSV file [VS-609] (#731)

(sdk) Add functions to retrieve runtime filters [VS-614] (#752)

(waterways) Add button to wrap text in logs viewer [VS-613] (#756)

(sdk) Add retrieval of run options via the SDK; support retrieval of upload objects [VS-590] (#730)

(engine) Add data dictionary to the generated documentation [VS-494] (#722)

(ui) Add filtering to archives, run study tabs [VS-553] (#662)

(engine) Mark running jobs as cancelled on server restart [VS-575] (#674)

Make VOR token time-to-live configurable via Ansible [VS-580] (#682)

(runstudy) Allow for configuration of risk object selections on Run Study via playpen config [VS-272] (#664)

(engine) Simplify specifying a select statement on an INPUT statement [VS-527] (#603)

(ui) Add syntax column to framework model selection [VS-571] (#672)

(models) Remove prompt when changing script syntax if the script is empty or is the template [VS-180] (#648)

Support run execution conditions when running from the UI [VS-496] (#534)

(study) Allow for steps on study screen to be set to required via playpen config [VS-487] (#511)

(waterways) Ability to add tags to run results & filter by tags [VS-226] (#613)

(models) Allow for the viewing and editing of model descriptions [VS-506] (#630)

(scenario) Design rehaul of View Scenario Screen [VS-545] (#625)

(sql) Add integer and date support for min and max functions [VS-215] (#508)

(methodology) Allow users to update existing methodologies via import [VS-349] (#610)

(engine) Allow specifying constant dynamic facts as arguments to subprocesses [VS-331] (#265)

(docs) Add links to playpen documentation on UI [VS-484] (#478)

(ui) Show Run Name in Run Outputs download modal [VS-353] (#523)

(ansible) Update Ansible deployment to enable website logo and color customization [VS-460] (#609)

(model) Allow SAS models to be run on the model screen [VS-520] (#573)

(waterways) Hide processes that have never been executed [VS-482] (#482)

(ha) Automatically refresh django and vault clients upon service address change [VS-483] (#486)

🐛 Fixes

(ansible) Set 0600 permissions on super.ini configuration file [VS-619] (#759)

(packaging) Ensure the correct version of the grpcio Python package is shipped [VS-618] (#758)

(packaging) New pika-stubs requirement causes Python packaging to fail (#754)

(django) Allow null playpen report types to be surfaced when filtering by playpen [VS-611] (#751)

(engine) Problems with arrays and update and show dictionary [VS-599] (#719)

(engine) Allow keywords to be used as queue names and node names [VS-610] (#733)

(engine) Trap panics in I/O nodes to avoid process hangs [VS-602] (#734)

(ui) Remove redundant option value in option name [VS-597] (#716)

(ui) Updated variable reference in ui to reflect golang changes in waterway screen [VS-343] (#283)

(uploads) Fixing styling for upload files button [VS-553] (#720)

(sas) Remove temporary files created in TMPDIR [VS-601] (#723)

(ui) Change reduce function to properly filter statistics for waterways graph [VS-598] (#718)

(engine) Remove race condition for constant dynamic facts [VS-578] (#721)

(engine) Race conditions in Golang nodes that make expected count calculations noisy [VS-592] (#701)

(engine) Remove race condition for dynamic facts for multi-threaded nodes [VS-578] (#711)

(docs) Fix repeating docs in user guide [VS-593] (#704)

Improve joboptions format + fix expandable run details on waterways [VS-589] (#699)

(test) Fix node test implementation (#687)

(scenario) Group scenario groups by ID instead of name [VS-579] (#680)

(study) Remove scenario from study info tree when scenarios are hidden [VS-562] (#676)

(ui) Fix uploading new methodology hanging upon save [VS-349] (#665)

(engine) Recognize logging.critical/fatal from python nodes as errors [VS-512] (#657)

(engine) Date handling in WHERE= option in input and output nodes [VS-490] (#503)

(ui) Change ui request parameter for reports on run study menu [VS-497] (#655)

(ui) Remove lines that rename save button on user settings menu to playpen [VS-551] (#653)

(models) Disallow save with duplicate model parameters & allow 0 as a parameter value [VS-491] (#646)

(ui) Remove update playpen button in user settings [VS-552] (#656)

(ui) Reduce the amount of calls to tags list [VS-559] (#659)

(ui) Enforce case-insensitive tags in django and ui [VS-558] (#660)

(ui) Clear search field upon job refresh [VS-560] (#661)

(docs) Fix computational go node docs page with duplicate sections and code block issue [VS-536] (#658)

(engine) Remove the word “queue” from log when showing output name on vor test [VS-488] (#654)

(waterways) Change tags to be scoped by playpen & minor renaming/adjustments [VS-548] (#642)

(study) Ensure scenarios are shown properly when weighting is disabled [VS-432] (#645)

(engine) Queuelimit is causing a hang with SAS nodes [VS-533] (#644)

(runstudy) Remove factors from study definition to improve load times on run study [VS-555] (#643)

(scenario) Enable Scroll, Icon Updates, and Graph Style Adjustments [VS-545] (#639)

Allow for testing and debugging nodes with dynamic facts [VS-479] (#469)

Improve tables.csv error messaging [VS-463], [VS-539] (#624)

(cli) Display csv file suffix in vor show process [VS-524] (#632)

(processviewer) Fix number at the end of queue name being replaced with percent complete [VS-544] (#631)

(back-end) Observation count propagation and calculation fixes and improvements [VS-537] (#629)

Make log names unique and resolve issue where three level processes do not render [VS-471] (#474)

(ui) Processes are rendered incorrectly (missing labels, unexpected graph shapes, styling, etc.) [VS-212] (#628)

(engine) Remove deadlock potential for SAS nodes when Queue Limits are used [VS-533] (#614)

Add null counter to process view to handle initial null stat value (#623)

(engine) Missing queues from input/output selector in nodes in the UI and incorrect queue counts between subprocesses [VS-228], [VS-499] (#258)

(django) Wait for database to be ready before starting up [VS-515] (#563)

Drilling into processes freezes process viewer [VS-509] (#561)

Supress command line output from which command in docker_pull.sh [VS-535] (#618)

(test) Disable grpc request duration log [VS-378] (#476)

Improve tables.csv error messaging (#507)

(sas) Mixed queue name case disables output data formatting [VS-525] (#600)

(uploadtype) Handle run_study_display querystring correctly on /upload-type [VS-424] (#366)

Update to latest viz.js library and adapt codebase to new viz version [VS-528] (#604)

(ui) Addressed long text in owner field for user info dialog, added truncate for long texts [VS-529] (#608)

(sdk) Case insensitive excel column retrieval [VS-505] (#533)

(ui) Prevent text overflow in user settings dialog [VS-529] (#606)

(engine) Golang GOBs as dynamic facts (#280)

Display human readable error messages for process errors [VS-516] (#562)

(ui) Added trailing backslash to avoid unnecessary 302 redirect [VS-518] (#565)

Allow for empty parentheses in subprocess declare and vor show process fixes [VS-220] (#501)

(sas) Reused subprocesses overwriting input and output files [VS-239] (#475)

(sql) Types missing for created variables in a nested SELECT [VS-476] (#465)

(sql) Disallow repeated definitions of the same variable in a select statement [VS-314] (#461)

(waterways) Add warning for the case when a process graph does not match the stats structure [VS-237] (#477)

(cloudwatch) Update CloudWatch Ansible playbook to update agent config (#481)

(sql) Code generation error for nested Right and Full joins [VS-475] (#464)

(ui) Scroll issues on waterways output download modal at low resolutions [VS-373] (#470)

📖 Documentation

Fix typo on playpen-config documentation [VS-561] (#663)

(ansible) Clarify Ansible versions required for deployment [VS-550] (#640)

Updated container install documentation & Improved docker_pull.sh [VS-535] (#607)

Update authentication documentation to reflect Microsoft Entra ID name change [VS-526] (#611)

Enrich CLI help for vor show process [VS-522] (#590)

Fix document rendering issues [VS-507] (#539)

⚡️Performance

(django) Improve scenario retrieval speed in create study screen [VS-549] (#641)

✏️ Refactor

(sdk) Remove gRPC service clients from SDK client (#737)

(sdk) Make management of authenticated endpoints easier [VS-600] (#717)

Do not remove engineOptions from processoptions [VS-368] (#707)

(engine) Use queue/types package for type conversions in more places; add stream type definitions to queues [VS-527], [VS-588] (#695)

(engine) Provide package for handling type conversions [VS-426], [VS-427], [VS-527] (#651)

(ansible) Compile GraphViz 11 during deployment [VS-538] (#617)

(theme) Implement mixin-based theming and enable custom theme configuration [VS-460] (#538)

↩️ Revert

“Chore(Ignore): peg Python grpcio package < 1.65 to remove excessive logging (#705)” (#747)

“Chore(Ignore): peg protoc-gen-go-grpc to v1.4 (#728)” (#736)

“Fix: Improve tables.csv error messaging (#507)”

📝Styling

Enforce formatting on proto files (#741)

Gofumpt project [VS-371] (#569)

🧪 Testing

Rebench log files for SAS end-to-end test suite [VS-348] (#714)

Add more SQL join tests and add exact diff functionality to test suite [VS-352] (#597)

(ui) Add test coverage for framework and methodology screens (#412)

(ui) Add conditional playpen selection on test reruns [VS-481] (#480)

You can request a demo of the new VOR release here.