Release
This version, 2024.05.06.01, was released on May 6, 2024.
🎆 Key Highlights
✏️ Management of tables.csv in the UI
With this release, VOR Stream implementations can now import their table metadata for management in the VOR Stream UI:
- vor update dictionary –file src/dictionary.csv
- vor update tables –file src/tables.csv
In this release, the playpen still uses the tables.csv and dictionary.csv definitions in the playpen, so changes from the UI need to be manually synced down to the playpen. To sync changes made from the UI, run the following commands from the playpen root:
- vor show dictionary -f src/dictionary.csv
- vor show tables -f src/tables.csv
[!TIP] To see effective queue definitions after accounting for inheritance, execute vor show queue.
🧪 vor test enhancements
The vor test command is useful for benchmarking and testing process flows. A number of enhancements were made to the command in this release: Add a test summary report Provide a clear summary of all tests that were executed and their results:
🖥️ Process CLI Changes
In addition to refactoring the process API behind the scenes, a number of process CLI commands were added or enhanced:
Use the vor show process command:
$ vor show process
NAME │ TYPE │ RUNNABLE │ PROCESSID
────────────────────┼──────┼──────────┼────────────
NullPythonProcess │ │ true │ 4
firstprocess │ │ true │ 1
testpy │ │ true │ 2
testpy2 │ │ true │ 3
NOTE: The replayed process definition may differ slightly in formatting and syntax from the definition used.
$ vor show process firstprocess
INFO Process code:
name firstprocess
in first -> input name=input_input_firstprocess
out output -> output name=output_output_firstprocess
node usernode (input)(output)
- The –getmap and –setmap flags for vor craete process were deprecated. This functionality is still available via a strm file.
- Support for piping of process definitions to vor create process added. All of the following are valid ways to create a process:
# Create a process from a file
vor create process first_process.strm
# create a process from output piped from another command
cat first_process.strm | vor create process
# read from standard input to create a process (terminate with Ctrl+D)
vor create process –
🏎️ vor create queue performance enhancements
vor create queue should be significantly faster. Deployments with a large amount of tables will notice this change when setting up playpens for the first time and running vor create queue or vor create process (creates queues automatically) for the first time.
🌈 UI theme selection
On first login, a user’s theme setting will default to system, which means it will follow the system setting of light or dark mode. Existing accounts will not have their theme setting changed.
📖 Documentation Highlights
The reference architecture page was updated for the following: [!NOTE] Some of this content is still a work-in-progress.
- Add a section for supported databases for Django.
- Add a System Requirements section. Specifically, add the following:
- Service mappings to nodes (cloud instances/VMs).
- Initial sizing recommendations for deployments. This includes mappings to cloud-provider instance types.
- Further details on the rationale for the sizing recommendations, e.g., if a node is typically compute or memory intensive.
Additionally, an Authentication page that details configuration options and has sample steps to register a Microsoft Entra ID app registration for use with VOR Stream was added.
Details
✨ Features
- Specify job options for End-to-End tests [VS-473] (#463)
- (process) Display stats + drill down for processes with repeated subprocesses and queue loops [VS-304] (#256)
- (tables) Managing tables.csv on the UI [VS-25] (#361)
- (engine) Add the ability to limit queue sizes to reduce resource consumption [VS-459] (#446)
- (scenarioweight) Add feature flag to disable weights for scenario selection [VS-432] (#378)
- (configuration) Add parameter (column) delete functionality [VS-402] (#352)
🐛 Bug Fixes
- (waterways) Add _ to job_cancelled in enumeration [VS-365] (#537)
- (engine) Address panics from sending on a closed channel encountered when canceling a process [VS-501] (#540)
- (engine) Job labeled as canceled when it finished with errors [VS-430], [VS-365] (#536)
- Resolve data race when flushing node logs [VS-502] (#531)
- Missing error message when job fails to initialize [VS-500] (#528)
- (tables) Add loading animation at start of import [VS-25] (#514)
- (waterways) Make sure both refresh buttons on waterways demonstrate the same behavior [VS-365] (#513)
- Group key information missing from table import [VS-489] (#505)
- (engine) Wait for node stat updates to complete before writing node summary stats [VS-472] (#455)
- (sql) Restrict the number of into keywords in a SQL query [VS-142] (#460)
- (sql) Group By clause with an aliased/computed group key assigned to old value [VS-421] (#376)
- (logging) Fix reversed logic on waterways status check [VS-365] (#386)
- (sql) Enable expressions in SQL ON clause [VS-55] (#213)
- (engine) Drop and Keeps in new table format cause errors [VS-463] (#451)
- (sql) Remove extra argument in parsedate function [VS-426] (#447)
- (ui) Ensure all Django API requests include a trailing slash [VS-449] (#413)
- (engine) Resolve panic on healthcheck GET and playpen list, GET, and DELETE calls [VS-451] (#420)
- (study) Fix missing author on run study tooltip [VS-422] (#377)
- (modelrun) Refresh model run history when model run completes + add refresh button [VS-396] (#342)
- Ensure correct version tag is embedded in vor version [VS-281] (#375)
- (sas) Use nosource option to make SAS log bench-able [VS-303]
- (engine) Avoid race condition in accessing dynamic facts [VS-387] (#364)
- (runstudy) Fix [object Object] on comments and blank methodology label on run study tooltip [VS-406] (#356)
- Add permission to view on screen help for PCF group [PCF-90] (#357)
- (configuration) Improved scroll area and UI for config tables (#348)
- (sas) Force output formats of numeric variables returned from SAS [VS-386] (#346)
- (theme) Fix theming issues with ag-grid menus in dark mode [VS-401] (#350)
- Correct permissions of generated files [VS-371] (#344)
- (sas) Unconditionaly delete Pipe before using (#335)
- Reset consul server age to rejoin cluster during deployment (#301)
- (engine) Reading excel files with formatted columns failures (#262)
📖 Documentation
- Expand documentation on architectural considerations [VS-15] (#445)
- Fix typo in reference_architecture.md (#369)
- Add documentation for setting up SSO [VS-409] (#358)
- Add documentation on publishing of releases (#296)
✏️ Refactor
- (tables) Fix initial loading performance of tables.csv on UI [VS-25] (#542)
- (tables) Enhance UX of tables.csv [VS-25] (#499)
- (engine) Speed up execution time for vor create queue [VS-474] (#459)
- (engine) Move storage of tables and data dictionary to Django [VS-383] (#298)
- (sql) Use constants and enumeration for sql functions [VS-428] (#442)
- (sql) Use cast package for type conversions [VS-427] (#432)
- (sql) Move sql code to a separate package [VS-426] (#393)
- (engine) Create process API [VS-219],[VS-220],[VS-34] (#155)
- Vor test: add summary report, add structured logging, and improve error handling and feedback [VS-450] (#394)
- (engine) Remove –getmap and –setmap flags from vor create process, support piping [VS-52] (#354)
- (reporting) Support CRUD operations on /run-study/report-types/ endpoint [VS-397] (#336)
- (pcf) Update permissions for VOR PCF Users group (#337)
↩️ Revert
- “Ci: reorganize the sequence of engine builds to run playwright execution before goveralls [VS-274] (#387)”
💅 Styling
- (lint) Enable auto-fixable gocritic checks [VS-371] (#373)
- (lint) Add gocritic linting [VS-371] (#372)
🧪 Testing
- (ui) Add conditional playpen selection on test reruns [VS-481] (#480)
- Add end-to-end test suite to automation [VS-450] (#448)
- (sql) Increase test coverage for sql package [VS-429] (#415)
- (engine) Add missing test files [VS-412]
- (engine) Include test suites in the repository [VS-412] (#363)
- (engine) Ensure unit tests are run on all pushes [VS-435] (#384)
- (engine) Add coveralls Go test coverage reporting [VS-435] (#383)
- (ui) Temporarily back out Playwright automation [VS-274] (#379)
- (ui) Implementation of Automated Playwright Tests for VOR Functionalities [VS-274] (#271)