Migrate data management for a Nextstrain Group from S3 to nextstrain.org

Hint

This guide only applies to Nextstrain Groups created before March 2022.

What

We’ve improved the way to manage datasets and narratives in Nextstrain Groups. Now the Nextstrain CLI will directly interact with nextstrain.org instead of interacting with a group-associated AWS S3 bucket (e.g. s3://nextstrain-${GROUPNAME}/).

For comparison, here’s an example of the old way vs. the new way to upload a dataset to a Nextstrain Group:

# Old way
nextstrain remote upload \
  s3://nextstrain-${GROUPNAME}/ \
    auspice/ncov_${YOUR_BUILD_NAME}.json \
    auspice/ncov_${YOUR_BUILD_NAME}_tip-frequencies.json \
    auspice/ncov_${YOUR_BUILD_NAME}_root-sequence.json

# New way
nextstrain remote upload \
  nextstrain.org/groups/${GROUPNAME}/ncov/${YOUR_BUILD_NAME} \
    auspice/ncov_${YOUR_BUILD_NAME}.json \
    auspice/ncov_${YOUR_BUILD_NAME}_tip-frequencies.json \
    auspice/ncov_${YOUR_BUILD_NAME}_root-sequence.json

Each group must undergo a short migration (performed by us) in order to use the new way. Groups which haven’t been migrated will continue to use the old way.

With the new way, group data is still stored in S3 with access controlled by Nextstrain, but now you no longer need to setup or pass around AWS credentials provided to you by Nextstrain. Instead, you will login using the same nextstrain.org username and password you use to login to the website.

Why

This change simplifies the management of Nextstrain Groups for both users and ourselves, primarily by removing the need to setup and keep track of a separate set of AWS credentials for each group. It also makes it easier for us to provision new groups, which is an important step in making Nextstrain Groups more widely available.

The new membership roles are made possible by the change, including the possibility of finer-grained roles/permissions as necessary in the future.

Actions requested

Each group is migrated independently of any others. To make your group’s migration as smooth as possible, we’re requesting some help from you.

Before migration

  1. Pick a date and/or time of day you’d like the migration to happen.

    During the brief migration period (less than an hour), you won’t be able to manage your group’s data. However, you’ll be able to view the datasets and narratives in your group on nextstrain.org the whole time, without any downtime.

    If you have no preference, you may leave it up to us to pick a date and time.

  2. Decide on roles for existing group members.

    Groups now support three membership roles (viewers, editors, and owners) which determine who can manage data.

    By default, all existing members will be viewers unless you tell us otherwise.

  3. Request that we migrate your group by emailing us.

    Include your preferred date and/or time of day and the list of roles for existing members. We’ll confirm the date and time of your migration in advance of performing it.

    Note

    If you frequently update your group’s overview or logo files, please email us to let us know and wait to migrate until we’ve added support for updating these files yourself when not using a separate S3 bucket.

  4. Upgrade the version of the Nextstrain CLI you’re using to at least 3.2.3.

    It’s best to do this in advance of the migration so you’re set to keep using your group afterwards without having to upgrade later, but you may choose to wait.

    Check the version you have by running:

    $ nextstrain version
    nextstrain.cli 3.2.3
    

    If you see a version older than 3.2.3, please upgrade your copy of the Nextstrain CLI.

After migration

We’ll email you when your group’s migration is complete. From that point forward, everyone managing your group’s datasets and narratives will need to use “nextstrain remote” commands which reference your group’s nextstrain.org URL instead of your previous S3 bucket URL.

It’s a good idea to give these new commands a try shortly after the migration to make sure everything works as expected for you. For example, you might try logging in and listing your group’s datasets. Here’s what that looks like for the user trs and the group blab:

$ nextstrain login
Logging into Nextstrain.org…

Username: trs
Password:

Credentials saved to /home/tom/.nextstrain/secrets.

Logged into nextstrain.org as trs.
Log out with `nextstrain logout`.

$ nextstrain remote list groups/blab
https://nextstrain.org/groups/blab/Pf/K13
https://nextstrain.org/groups/blab/Pf/chr13
https://nextstrain.org/groups/blab/beta-cov
https://nextstrain.org/groups/blab/ncov/19B

You’ll of course have to login as yourself, and be sure to replace blab with your group’s name when you try it!

If you need to make changes to the roles of any group members or update your group’s overview or logo file, email us and we’ll take care of it. In the future, group owners will be able to make these changes themselves.

Timeline

March 2022

New groups created after this point manage their data through nextstrain.org instead of S3.

TBD

Notification sent to groups created prior to March.

TBD

Groups migrated one-by-one in coordination with group owners.

TBD

Nextstrain team’s desired deadline for migrating all groups.

Notification

Note

Notifications have not yet been sent out.

In [TBD] 2022, we emailed the contacts for all groups created before March 2022 to inform them of these changes. A copy of the email is below.

Subject: Action requested: Improvements to how you manage your Nextstrain Group

Hello!

It’s the Nextstrain team. We’re writing to let you know about improvements we’ve made to how you manage your data in Nextstrain Groups. You’re receiving this email because you’re a contact for one or more Nextstrain Groups:

We’ve put together a documentation page with information about the changes, including the actions requested of you. Please review the details there and reply to this email with the information requested.

Thank you for being an early adopter of Nextstrain Groups! We’re excited to keep improving the functionality of Groups. If you have any feedback, please don’t hesitate to email us or post to discussions.nextstrain.org.

—the Nextstrain team