mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
35 lines
1.9 KiB
Markdown
35 lines
1.9 KiB
Markdown
# Migrating account 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.
|
|
|
|
The format of the "Forgot passwords records was changed",
|
|
but seeing as those are not important and new ones can be created if necessary,
|
|
these can just be removed when migrating.
|
|
By default, these were located in the `.internal/forgot-password/` folder so this entire folder can be removed.
|
|
|
|
For existing accounts, the data was stored in the following format and location.
|
|
Additionally to the details below, the tail of all resource identifiers were base64 encoded.
|
|
|
|
* **Account data**
|
|
* Storage location: `.internal/accounts/`
|
|
* Resource identifiers: `"account/" + encodeURIComponent(email)`
|
|
* Data format: `{ webId, email, password, verified }`
|
|
* **Account settings**
|
|
* Storage location: `.internal/accounts/`, so same location as the account data
|
|
* Resource identifiers: `webId`
|
|
* Data format: `{ useIdp, podBaseUrl?, clientCredentials? }`
|
|
* `useIdp` indicates if the WebID is linked to the account for identification.
|
|
* `podBaseUrl` is defined if the account was created with a pod.
|
|
* `clientCredentials` is an array containing the labels of all client credentials tokens created by the account.
|
|
* **Client credentials tokens**
|
|
* Storage location: `.internal/accounts/credentials/`
|
|
* Resource identifiers: the token label
|
|
* Data format: `{ webId, secret }`
|
|
|
|
The `V6MigrationInitializer` class is responsible for migrating from this format to the new one
|
|
and does so by reading in the old data and creating new instances in the `IndexedStorage`.
|
|
In case you have an instance that made impactful changes to how storage is handled
|
|
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.
|