Skip to content

v0.4.0

Latest
Compare
Choose a tag to compare
@ml-evs ml-evs released this 06 Jun 22:42
· 18 commits to main since this release
43764fb

This release of datalab contains significant new functionality whilst broadly maintaining compatibility with the 0.3.x series.

It is also accompanied by the first release of the datalab Python API package (https://github.com/datalab-org/datalab-api), as well as the first release of the Ansible playbooks and Terraform rules (Azure only, for now) to automated datalab deployments (https://github.com/datalab-org/datalab-ansible-terraform).

Special thanks go to @vrajpatel9988 and especially @BenjaminCharmes who both made their first contributions to datalab in this release!

Highlights

  • User accounts: users can now update their name and contact info, as well as connect external accounts and regenerate API keys directly from the web UI. The ability to login via ORCID is now enabled by default (but must be configured at the instance level).
  • Admin dashboard: adds the ability for admins to do user management from the UI directly.
  • Electrochemistry block: support for Neware file formats, MPR files written by ECLab > 11.50 and cyclic voltammetry data.
  • Equipment: A new entry type has been added to record the equipment in the lab used for certain operations
  • Better default permissions on inventories: users can now create and edit inventory entries without requiring an admin.
  • Automatic random IDs: The ability to generate random IDs for new samples was added, allowing datalab to be used as the source of IDs.
  • Enhanced block-level documentation in the UI, and dynamic syncing of block-type metadata for improved extensibility.
  • Added the admin ability to verify all user accounts before they can use datalab.
  • General improvements to block error reporting and reactivity, as well as several bug fixes.

Notes for upgrading to v0.4.0

  • Users now have an "unverified" status by default. For some deployments, this may require an admin to first self-verify their account directly with a database update ("account_status" -> "active"), after which they can verify all other users in the UI.
  • The data mount point of the database container in the default ./docker-compose.yml has changed to use /data/db on the host system. Deployments using this configuration should be careful to backup and restore from their existing database, or continue to use the docker volume approach (feel free to raise an issue with any questions).
  • Similarly, the development set up has changed slightly and may need to be remade after upgrading.

What's Changed

  • Dynamically set production app container config in entrypoint by @ml-evs in #605
  • Visual style improvements, test updates and improved block UI by @jdbocarsly in #608
  • Refactor mail config settings by @ml-evs in #614
  • Add Neware support and fix MPR issue by @ml-evs in #617
  • Hotfix for block errors and warnings UI that arise over multiple renderings by @ml-evs in #615
  • Use newly released galvani and NewareNDA packages by @ml-evs in #625
  • Update xrdml parser so it works with v2.0 by @jdbocarsly in #631
  • Restrict relationship types in UI synthesis and constituents tables by @ml-evs in #630
  • Update copyright year in LICENSE by @ml-evs in #622
  • Allow browser context menu in tinymce fields by @jdbocarsly in #635
  • Allow any authenticated user to generate an API key by @ml-evs in #641
  • Serve the identifier prefix in the /info response by @ml-evs in #638
  • Return user role from /get-current-user endpoint by @ml-evs in #644
  • Created component for editing account settings by @BenjaminCharmes in #627
  • User registration: default display name to GitHub username when no profile name is set by @ml-evs in #655
  • Fix typo where CI tests were never run in chrome by @ml-evs in #656
  • Temporarily disable Firefox tests by @ml-evs in #659
  • Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /webapp by @dependabot in #660
  • Bump follow-redirects from 1.15.4 to 1.15.6 in /webapp by @dependabot in #647
  • Allow echem block to plot non-cyclic data by @ml-evs in #665
  • Add optional functionality to add starting materials from within the webapp by @jdbocarsly in #642
  • Added validation for the user update route/UI by @BenjaminCharmes in #646
  • Improve block warning/error reactivity in the UI by @ml-evs in #666
  • Add ability to generate .csv files within block callbacks by @ml-evs in #621
  • Debug flaky e2e tests by @jdbocarsly in #670
  • Add option to generate ID automatically when creating items by @jdbocarsly in #668
  • Add default config for VUE_APP_EDITABLE_INVENTORY by @ml-evs in #673
  • Add codecov upload to CI by @ml-evs in #677
  • Disable codecov PR annotations by @ml-evs in #681
  • Add "equipment" item type by @jdbocarsly in #531
  • Convert Whinchat to use langchain by @vrajpatel9988 in #661
  • Bump langchain-core from 0.1.33 to 0.1.35 in /pydatalab by @dependabot in #686
  • Bump prettier, pre-commit hooks and some other deps by @ml-evs in #685
  • Allow starting materials and equipment to be edited by normal users by @ml-evs in #672
  • Bump pymongo from 4.6.2 to 4.6.3 in /pydatalab by @dependabot in #689
  • Use mocked API keys in API tests to fake different authentication scenarios by @ml-evs in #676
  • Significant refactor of deployment docs by @ml-evs in #690
  • Enable ORCID connection by default by @ml-evs in #693
  • Only fix PRs with pre-commit CI when asked by @ml-evs in #697
  • Upgrade cypress and other testing deps to allow Firefox testing by @ml-evs in #699
  • Update README with links to Python API by @ml-evs in #701
  • Add public deployment badge in README by @ml-evs in #702
  • Separate each browser test into separate run and temporarily disable Firefox by @ml-evs in #703
  • Add admin dashboard with user management controls by @BenjaminCharmes in #674
  • Added a way to refresh API Key from Account Settings UI by @BenjaminCharmes in #700
  • Recreate user index with new settings if already existing by @ml-evs in #707
  • Fix for saving collection blocks and error handling for excessively large blocks by @ml-evs in #709
  • Add account_status field (active, unverified or deactivated) to People model by @BenjaminCharmes in #687
  • Update deployment instructions wrt. new datalab-ansible-terraform repo by @ml-evs in #712
  • Add UI for email registration/login by @ml-evs in #528
  • Serve data about available block types in API by @ml-evs in #667
  • Add upper pin to rosettasciio by @ml-evs in #720
  • Update tests for current user by @ml-evs in #723
  • Add ability to select between different chat models in the whinchat by @vrajpatel9988 in #680
  • Bump Flask and Werkzeug to the latest releases on the v3 series by @ml-evs in #722
  • Added HelpBubble component to display inline documentation in the UI by @BenjaminCharmes in #706
  • Fix API key help message by @ml-evs in #725
  • Fix README badges by @ml-evs in #730
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #728
  • Revert pre-commit autoupdate for prettier by @ml-evs in #734
  • Populating dynamic block-level documentation as UI tooltips by @BenjaminCharmes in #719
  • Make account status on registration be configurable by provider by @ml-evs in #733
  • Add notification-dot for user with unverified account_status by @BenjaminCharmes in #724
  • Consider account status during auth and refactor API around blueprints by @ml-evs in #727
  • Add gravatar instructions and tweak account settings modal by @ml-evs in #744
  • Add block help to block title by @ml-evs in #737
  • Fix NMR block layout issue by @ml-evs in #745
  • Fix issue with landing page and tweak default docker-compose deployment by @ml-evs in #746
  • Improve admin dashboard styling and functionality by @BenjaminCharmes in #748
  • Add API_URL as a meta tag in HTML header of all UI responses by @ml-evs in #750
  • Add CONFIG.APP_URL to allow for customisable redirects on login/registration by @ml-evs in #749
  • Fix StyledInput component (v2) by @jdbocarsly in #751
  • Bump version numbers by @ml-evs in #753
  • Add a Tabular data block that can handle simple CSVs and text files by @ml-evs in #592
  • Remove GET-out of route permissions by @ml-evs in #754
  • Tweak mount points, production Docker entrypoint and development environment by @ml-evs in #763
  • Default to ORCID ID as display name when ORCID user's name is private by @ml-evs in #769
  • Add process lock for remote filesystem scraper by @ml-evs in #562
  • Bump version number to v0.4.0 by @ml-evs in #770
  • Follow new auth requirements in UI tables by @ml-evs in #771
  • Add CHANGELOG to repo and docs by @ml-evs in #772
  • Update a few (midly) insecure deps by @ml-evs in #774

New Contributors

Full Changelog: v0.3.2...v0.4.0