docs: Update migration documentation

This commit is contained in:
Joachim Van Herwegen 2023-10-11 09:38:29 +02:00
parent 9daeaf89ac
commit b65b72a25e
2 changed files with 33 additions and 2 deletions

View File

@ -35,6 +35,8 @@ these can be found in the `.internal` folder.
Only account data will be migrated,
other internal data such as OIDC sessions and notification subscriptions will be removed
as how they are stored has changed as well.
This means existing tokens and sessions will be invalidated and users will have to log in again.
Notifications will have to be resubscribed to for the same reason.
In case the prompt causes issues, it can be skipped automatically with the `--confirmMigration` CLI option.

View File

@ -1,6 +1,8 @@
# Migrating account data from v6 to v7
# Migrating data from v6 to v7
Below is a description of the changes that are necessary to migration account data from v6 to v7 of the server.
Below is a description of the changes that are necessary to migration data from v6 to v7 of the server.
## Account data
The format of the "Forgot passwords records was changed",
but seeing as those are not important and new ones can be created if necessary,
@ -32,3 +34,30 @@ In case you have an instance that made impactful changes to how storage is handl
that would be the class to investigate and replace.
Password data can be reused as the algorithm there was not changed.
Email addresses are now stored in lowercase, so these need to be converted during migration.
## Other internal data
The format of all other internal data was changed in the same way:
* Keys are no longer base64 encoded.
This means that if there were any slashes in the keys these will now result in containers.
Keys are URL encoded when necessary to prevent issues with file names when using the file system.
* Keys where the part of the key after the last slash is longer than 150 characters will be hashed.
* All values will be wrapped in a JSON object with 2 keys:
* **key**: Contains the original key. Relevant for when keys are hashed so the original key can be retrieved.
* **payload**: The original value.
All internal storage that is not account data as described in the previous section
will be removed to prevent issues with outdated formats.
This applies to the following stored data:
* The key used for signing OIDC tokens. A new one will be generated by the server.
* `.internal/idp/keys/`
* All OIDC related tokens/grants/sessions/etc. Users will have to authenticate again.
* `.internal/idp/adapter/`
* All notification subscriptions. Users will have to resubscribe.
* `.internal/notifications/`
* All setup values.
* These actually need to be migrated as some are important to prevent issues, such as the `rootInitialized` key,
which prevents initialized roots from being overwritten.
* `.internal/setup/`