Upgrading from Excalibur 0.6 to Excalibur 0.7
In this guide, you'll find steps to update your Excalibur app and server instances to version 0.7.
Please read this guide carefully and follow all steps.
This guide will assume that the 0.7.x version of the Excalibur server is installed. If you are using version 0.6.x, please upgrade to 0.7.x before proceeding.
Once you have upgraded the server to 0.7.x, it is also recommended to create a backup of the server files by running:
excalibur backup
You can optionally specify the output file name by using the --output flag. By default, a backup file named excalibur-files-backup.zip should have been created.
With the backup created, you can now proceed with the upgrade.
Removed Secure Remote Password (SRP) Authentication
As mentioned in the 0.5.x to 0.6.x upgrade guide, SRP will be deprecated. Thus, Excalibur 0.7 has removed the Secure Remote Password (SRP) authentication system in favour of OPAQUE-3DH.
Existing users who haven't migrated to OPAQUE-3DH yet will need to create new accounts. Alternatively:
- downgrade the server to
0.6.6; - migrate the users to OPAQUE-3DH; and then
- upgrade the server to
0.7.x.
Configuration File v6
Excalibur 0.7 modifies the configuration file from version 5 to version 6, with the following changes:
- The
security.srptable has been removed - A new field
security.jwt_keyhas been added to store a static JSON Web Token (JWT) key to sign tokens (instead of being created every time the server starts) - A new table
security.account_creationwas added to store the account creation key (ACK) in an asymmetric (i.e., public/private) key system, and thus has:security.account_creation.public_key: The public key used on the client to encrypt account creation requestssecurity.account_creation.private_key: The private key used on the server to decrypt account creation requests on the server
Existing configuration files can be upgraded by running
excalibur config update
on the server. Verify that the updated configuration is valid by running the command
excalibur config validate
You should see Config is valid! appear in the terminal.
Database Changes
The database schema has been updated, with the following changes:
- Secure Remote Password (SRP) fields have been removed
- New user ID and key generation function fields have been added to the
Usertable - The
additional_infofield in theUsertable has been renamed tovault_info
As such, existing databases need to be upgraded. This can be done by running
excalibur db upgrade
on the server.
Updated Filesystem
Excalibur 0.6 migrated the filesystem to be based on the database. In Excalibur 0.7, we have further collapsed the filesystem structure to improve performance and storage of the vault files.
Begin the migration to the new filesystem by running:
excalibur db migrate-files-v7
You should see a confirmation message like Please ensure that the database revision is up-to-date. If you have upgraded the database, you can press Enter/Return to start the migration.
Server API Changes
This update introduces some breaking changes to the server API. Please read the changelog for more information about what changed.
Conclusion
These are the steps to upgrade your Excalibur app and server instances to version 0.7. After following these steps, your Excalibur instance should be running on version 0.7.