Skip to main content

3.7.1 to 3.8.0

This document describes the upgrade instructions from 3.7.1 to 3.8.0.

Configuration changes

docker-compose changes

There are a few changes to our docker-compose.yml file for the aerie_action and aerie_workspace services. If you maintain your own docker-compose file, you'll need to make these changes:

  • Under the aerie_action container, in the environment section, add HASURA_GRAPHQL_JWT_SECRET: "${HASURA_GRAPHQL_JWT_SECRET}"
  • Under the aerie_action container, in the environment section, you can remove the HASURA_GRAPHQL_ADMIN_SECRET variable as it is no longer needed
  • Under the aerie_workspace container, add HASURA_GRAPHQL_URL: http://hasura:8080/v1/graphql (or your equivalent, if running on a different url/port)

See this file in the aerie repo for a full example: https://github.com/NASA-AMMOS/aerie/blob/develop/deployment/docker-compose.yml

Hasura metadata yaml file changes

If you maintain your own versions of Hasura metadata files for granular control of permissions (rare), you may need to update them to contain the latest values for Workspaces. This PR is a good reference demonstrating the changes to the yaml files in deployment/hasura/metadata

DB Migrations

A DB migration was added in this release to support workspace permissions.. If you are upgrading from a past version and want to preserve your data, follow the instructions in the Database Migrations Guide to apply migrations after upgrading. Make sure you are using the latest version of the migration script from the Deployment.zip.

Sequence Adaptation interface changes

This release contains breaking changes to our Sequence Adaptation interface. Most significantly, compiled adaptations are now expected to be CommonJS modules, which start with external require(...) statements for any CodeMirror dependencies, and end with exports.adaptation = ....

Users can either create these modules directly or compile them using rollup or similar. We recommend using our sequence adaptation template repo as a starting point, which demonstrates a Typescript adaptation which is compiled with rollup to a CommonJS module.

Actions API changes

A new version of the aerie-actions library, 1.1.0 has been released & published to NPM as a part of this release. These changes are non-breaking, but users writing custom actions should upgrade their aerie-actions dependency to take advantage of the latest features, which include:

  • Descriptions on actions parameters and settings. These can be hardcoded into the action eg. seqList: {type: "sequenceList", description: "a list of sequences"} and appear as a tooltip in the run action modal & action settings page
  • New action parameter/setting 'file' and 'fileList' types, which accept a single file path or list of file paths respectively. These are like the existing sequence and sequenceList types except that they can accept any types of files rather than just sequences. They also allow an optional pattern field which may specify a specific extension to match eg. *.json.
  • Ability to access the running user's JWT tokens in actions, accomplished by sending a secrets request with every action run request with the user's auth headers. Exposed to action code via actions.config.SECRETS.authorization (encoded) and actions.config.SECRETS.user (decoded). This allows users to send authenticated requests back to Hasura or to other services in their JWT auth ecosystem.
  • Accessing username and run ID in the action - in actions.config.USERNAME and actions.config.ACTION_RUN_ID
  • Support for "primary" flag on action parameters, & better default logic. When an action is "run on a file" (or list of files), via the editor dropdown menu or multi-select/right-click, we decide which action parameter is "primary" and pass the file path(s) to that param. Users can now set primary: true on file/fileList/sequence/sequenceList type parameters to specify which one to use. If this flag is not set, we do our best to determine which of the parameters for each action can be fulfilled by the selected file(s) and use that.

File multi-select in workspaces

This release adds the ability to multi-select (shift-click or ctrl-click) files in the SeqDev sequencing workspace, right click them, and run actions on the selected files.

This comes with some caveats: currently this is available on the workspace table view only, not the default hierarchy view. Also, bulk file operations, like moving/copying multiple files at once, are disabled. Both of these will be delivered in a future release.