Release Notes

This is the summary list of changes to Girder between each release. For full details, see the commit logs at https://github.com/girder/girder

Unreleased

Added Features

  • Added a new system setting that will allow admins to disable logging in via a password. If disabled, the login dialog in the web client will no longer show the password login form. (#2504)
  • Added a new system setting that will allow admins to disable the API key authentication functionality. (#2438)
  • API endpoint in the hashsum_download plugin that returns a list of files matching a given hash sum. (#2548)

Web Client

  • Support for writing server-side tests using pytest. (#2412)
    • Added the pytest-girder package for downstream packages.
    • Added support for the mongomock package in the new pytest suite.
  • New table_view plugin renders .csv and .tsv files as tables on the item page. (#2480)

Bug fixes

Server

  • Support range requests of S3 non-redirected data handling. This fixes seeking on S3 assetstore files in the file context handler.

Security Fixes

Changes

  • Exceptions are now all accessible in the exceptions module and are descended from the GirderBaseException class.

Deprecations

  • Server side tests should be written using the new pytest infrastructure.

Removals

Girder 2.4.0

Added Features

Server

  • Support for S3 buckets in regions other than us-east-1. (#2153)
  • Allow S3 credentials to be inferred by Boto. (#2229)
  • girder-shell console script which drops the user into a python repl with a configured webroot, giving the user the ability to import from any of the plugins specified. (#2141)
  • Support for configuration of pymongo client options as Girder config file options. (#2380)
  • Support for idiomatic use of Girder’s model classes. Rather than using ModelImporter.model with strings for the model and plugin names, you can now use python imports of the model classes and instantiate and use them directly. (#2376)
  • Support for mounting REST endpoints under a prefix. Useful for grouping related endpoints, such as those exposed by a plugin. (#2395)
  • Option in worker task input specs to use local file paths in the worker when available, to avoid downloading files. (#2356)
  • Core setting allowing the instance brand name to be set. (#2283)
  • Core setting allowing the instance contact email address to be set. (#2279)
  • Core setting allowing the GUI header color to be set. (#2334)
  • “terms” plugin, which provides the option to require users to agree to a “Terms of Use” before accessing a collection. (#2138)
  • Improve the “homepage” plugin’s capabilities for making in-place changes to the home page. (#2328)
  • API endpoint, “/user/details”, allowing site admins to list the total number of users. (#2262)
  • Job cancellation support to Girder Worker jobs. (#1983)
  • Accept metadata on item and folder creation via the REST API. (#2259)
  • Allow girder-install plugin to get dependencies from a setup.py file. (#2370)
  • Create a registry for adding new search modes. (#2363)

Web Client

Python Client

  • Support for turning off certificate checking with --no-ssl-verify. (#2433)
  • Support for specifying a custom certificate with --certificate. (#2267)
  • Support for downloading individual files. (#2429)

DevOps

  • Added a Terraform module for creating an S3 bucket compliant with Girder assetstore policies. (#2267)
  • Published a latest-py3 tag to Dockerhub for Girder images built with Python 3. (#2321)

Deprecations

Python Client

  • requests.HTTPError should be caught in places where girder_client.HttpError used to. (#2223)

Bug fixes

Server

  • Fixed an error where certain filenames could cause broken Content-Disposition header values. (#2330)
  • AccessControlledModel.load fields argument now works more reliably. (#2366, #2352)
  • Fixed an issue where the events daemon was failing to terminate correctly. (#2379)

Web Client

  • Remove Bootstrap re-styling of tooltips. (#2406)

DevOps

  • Fixed an issue which disallowed provisioning with the Girder Ansible module under Python 3. (#2449)

Girder 2.3.0

Bug fixes

  • Fix uploading into HDFS assetstore using new upload mode

Security Fixes

  • Ensure token scopes on API keys are valid
  • Add secure cookie setting
  • Upgrade swagger-ui version to fix XSS issues

Added Features

  • Add REST endpoint for creating job models
  • Add graphs for Jobs status history to Admin UI
  • Improvements to item_tasks job execution, task import, task lists, and permission flag UIs
  • Show plugin load failures on plugins page
  • Add Candela plugin
  • Compute missing hashes when files are uploaded, and allow for hashsum calculation for non-filesystem assetstore files
  • Add support for running Girder in AWS Elastic Beanstalk
  • Upgrade S3 assetstore to Boto3
  • Add LDAP authentication plugin
  • Send all http server errors to the error log
  • Added an event when the web client connection to the server is stopped or started
  • Support uploading small files in a single REST call
  • Improved GridFS support, including better sharding support and faster writes
  • Add a Description method to mark a route as deprecated
  • Many improvements to the web client test infrastructure including
    • A new CMake macro, add_standard_plugin_tests, to enable basic tests for a typical plugin layout
    • A new girderTest.importPlugin function, to load plugin JS and CSS in web client tests
    • A static analysis test for Stylus files
    • New rules for Javascript and Pug static analysis tests
  • A facility to initialize the database to a specific state for testing

Changes

  • Upgrade web client to use jQuery 3
  • Upgrade web client to use Backbone 1.3
  • Require Node.js 6.5+ and npm 3.10+ (with npm 5.3 strongly recommended) to build the web client

Deprecations

  • job Plugin: Python Job model listAll method
  • hashsum_download plugin: Python HashedFile.supportedAlgorithms symbol
  • item_tasks plugin: item_task_json_description and item_task_json_specs routes
  • module.loaders in webpack helper files, and the use of Webpack 1.0 syntax in plugins’ webpack helper files
  • restRequest.error in rest.js
  • npm-install in client side build
  • girderTest.addCoveredScript and girderTest.addCoveredScripts in testUtilities.js
  • access to file paths outside /static/built/ in the web client test environment

Removals

  • Remove the unmaintained external web client