Menu
Introduction
Getting Started
Developer guide
Release
Updates
News in 0.23.0
News in 0.22.0
News in 0.21.0
News in 0.20.0
News in 0.19.0
Architecture
CLI
Technical documentations
Version
Publication date

Mar 9, 2022

Confidentiality
Public
Reactions
1
Share

News in 0.23.0

Changelog — gws_core v0.23.0


Features


  • Custom domains for apps — Apps (Reflex/Streamlit dashboards) can now be published on a custom domain, with a choice between public and authenticated access modes, including a fallback to the system user for public apps and a dedicated action to configure the domain (bc491d32, 85c711cc)
    • F5 reload fix — Reloading (F5) on a sub-domain path of a Reflex app now works as intended (491d934c)
    • AI-assisted form templates — Form templates can now be created with the help of AI: new routes generate template specs, and generating returns a preview instead of saving directly so you can review before committing (ee463494, 2c0b79cc, 9bc939a3)
      • Duplicate a template version — New route to duplicate a version of a form template (ac80c599)
      • Bulk tagging — You can now add tags to multiple items at once via a bulk action (18b46ff5)

        Technical Breaking Changes


        • BoolParam no longer optional/typed looselyis_optional was removed from BoolParam and the value is now forced to a strict bool type; is_optional is forced to True for compatibility (33b2fd8c, 1311e1c7)
          • ExternalLab zip route renamed to compress — The new zip route was renamed to compress (d128e039)
            • Credentials decorator — New decorator to define credential types, with a converter from the old credential type to the new one to keep DB migrations working (16312e29, b4feec68)

              Technical Features


              • Reflex theming & internationalization — Reflex apps gain a new theme configuration and built-in internationalization support (d0ab80c0, 2976e7b4)
                • Parameter validation improvements — Regex validation for string parameters (8f679ff6); minimum number of rows and default rows for parameter sets (bf77bf43)
                  • Disk space check before upload — New route to verify available disk space before an upload (32c47f4f)
                    • Parquet support for dataframes — DataFrame RField now supports the Parquet format (63bb8a31)
                      • Resource list task — New task to produce a list of resources (ea5f665f)
                        • Configurable action buttons — Entity action buttons can now provide config specs, and app resource actions accept a domain regex (c060be0a, 85c711cc)
                          • Typed database fields — Introduced custom typed DB fields (typed/nullable char, datetime UTC, date, decimal, self-referencing foreign keys) replacing raw Peewee fields, enabling static type checking across the model layer (96b55a92, c1c7f749, d703711f, 5ba8d76c, 58025353)
                            • Project-wide type cleanup — Large pass to improve typing and fix Pylance errors across protocol, task, process, scenario, resource, RField, page, and lab model code, plus making several columns non-null (a1aee0cf, 4b351c7a, 92d57e20, 95afa2f9, 622f381b, 1055648c, bc5690dd, 057b70c6, 52217425)
                              • CLI: database query command — New db command to run read-only SELECT queries from the CLI (ffb626bd)
                                • CLI: scenario & resource inspection — New commands to inspect scenarios and navigate through resources (71bd4f95, b961a56c)
                                  • Async scenario run — The route that runs a scenario now uses the async runner (e7c7c0f8)
                                    • Lab model routes — New routes to manipulate the lab model (bc5690dd)
                                      • Migration 0.22.2 → 0.23 — Migration code moved into the 0.23 release, including non-null migration of created_by / last_modified_by columns (c4e7c424, d61f9067)
                                        • Pyright in dev envdev-env configure now sets up Pyright, and conftest loads gws_core from the .sys folder (3ebb3e09, 45a3ccf4)

                                          Other Changes


                                          • FormDialog improvements — Added a dismissable option (with a non-dismissable example), a max_height parameter with better scrolling, and removed outer dialog padding to prevent page scroll (a33dd353, 0661fbbb, c81d6375)
                                            • Logging to support — Logs sent to support now include the date and a stack trace; MessageDispatcher supports exception traces (d634dce1, 1607bbcf)
                                              • Skills & docs — Updated Reflex and main skills (incl. explicit CSS length-unit guideline and Reflex version doc link), referenced Streamlit/Reflex skills in main instructions, and moved docs to a sub-folder (894f7534, db6961f1, 82ee695a, 25a3fca2, 276f03ed)
                                                • Task marked RUNNING on start — Task model is now marked as RUNNING when it starts (14f0fd42)
                                                  • Protocol fixes — Fixed interface/outerface auto-propagation and handling of a missing protocol model (8784c0bb, a84931cd)
                                                    • FsNode protection — Prevent modifying a folder generated by a scenario; fixed export folder output name (9677cd3b, fb94c715)
                                                      • Misc fixes — python-multipart dependency conflict, Reflex translate check, ParamSet occurrence error message, DynamicParam invalid-key reading, system user creation robustness, CLI % handling in SQL and brick-doc push, app log level, Ruff config (5d57d185, fca06364, c41e9f27, f0441697, 932a5136, f04a7327, 087b2f6c, 51a15836, 8c30399c)
                                                        Shine Logo
                                                        Technical bricks to reuse or customize

                                                        Have you developed a brick?

                                                        Share it to accelerate projects for the entire community.