fix(element): Feature toggle for user controlled updates of their Element display name; new default for generating MatrixID, check docs/migrations.md for details.

This commit is contained in:
Thorsten Roßner
2024-08-28 08:08:01 +02:00
parent 370c7cd836
commit efc41cb3aa
4 changed files with 59 additions and 8 deletions

View File

@@ -8,7 +8,8 @@ SPDX-License-Identifier: Apache-2.0
* [Disclaimer](#disclaimer)
* [Releases upgrades](#releases-upgrades)
* [From v0.9.0](#from-v090)
* [Manual interaction](#manual-interaction)
* [Changed openDesk defaults](#changed-opendesk-defaults)
* [MatrixID localpart update](#matrixid-localpart-update)
* [Fileshare configurability](#fileshare-configurability)
* [Automated migrations](#automated-migrations)
* [Local Postfix as Relay](#local-postfix-as-relay)
@@ -34,7 +35,40 @@ Limitations:
## From v0.9.0
### Manual interaction
### Changed openDesk defaults
#### MatrixID localpart update
Until 0.9.0 openDesk used the LDAP entryUUID of a user to generate the user's MatrixID. Due to restrictions of the
Matrix protocol an update of a MatrixID is not possible, therefore it was technically convenient to use the UUID
as it is immutable (see https://de.wikipedia.org/wiki/Universally_Unique_Identifier for more details on UUIDs.)
From the user experience perspective that was a bad approach, so from now on by default the username, that
is also used for logging into openDesk, is used to define the localpart of the MatrixID.
For existing installations: The changed setting only affects users that login to Element the first time. Existing
user accounts will not be harmed. If you want existing users to get new MatrixIDs based on the new setting, you
need to update their external ID in Synapse and deactivate the old user afterwards. The user will get a new
Matrix account from the scratch, losing the existing contacts, chats and rooms.
The following Admin API calls are helpful:
- GET /_synapse/admin/v2/users/@<entryuuid>:<matrixdomain> get the user's existing external_id (auth_provider: "oidc")
- PUT /_synapse/admin/v2/users/@<entryuuid>:<matrixdomain> update user's external_id with JSON payload:
`{ "external_ids": [ { "auth_provider": "oidc", "external_id": "<old_id>+deprecated" } ] }`
- POST /_synapse/admin/v1/deactivate/@<entryuuid>:<matrixdomain> deactivate old user with JSON payload:
`{ "erase": true }`
For more details check the Admin API documentation:
https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html
You can enforce the old standard with the following setting:
```
functional:
chat:
matrix:
profile:
useImmutableIdentifierForLocalpart: true
```
#### Fileshare configurability

View File

@@ -53,6 +53,9 @@ configuration:
presence:
enabled: {{ .Values.functional.dataProtection.matrixPresence.enabled }}
profile:
allowUsersToUpdateDisplayname: {{ .Values.functional.chat.matrix.profile.allowUsersToUpdateDisplayname }}
smtp:
senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
@@ -66,6 +69,7 @@ configuration:
clientId: "opendesk-matrix"
clientSecret: {{ .Values.secrets.keycloak.clientSecret.matrix | quote }}
issuer: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
matrixIdLocalpart: {{ if .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }}"opendesk_useruuid"{{ else }}"opendesk_username"{{ end }}
scopes:
- "openid"
- "opendesk-matrix-scope"

View File

@@ -90,7 +90,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-element"
version: "3.3.2"
version: "3.4.0"
verify: true
elementWellKnown:
# providerCategory: "Platform"
@@ -100,7 +100,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-well-known"
version: "3.3.2"
version: "3.4.0"
verify: true
home:
# providerCategory: "Platform"
@@ -192,7 +192,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-matrix-user-verification-service"
version: "3.3.2"
version: "3.4.0"
verify: true
memcached:
# providerCategory: "Community"
@@ -380,7 +380,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-synapse"
version: "3.3.2"
version: "3.4.0"
verify: true
synapseCreateAccount:
# providerCategory: "Platform"
@@ -390,7 +390,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-synapse-create-account"
version: "3.3.2"
version: "3.4.0"
verify: true
synapseWeb:
# providerCategory: "Platform"
@@ -400,7 +400,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-synapse-web"
version: "3.3.2"
version: "3.4.0"
verify: true
xwiki:
# providerCategory: "Supplier"

View File

@@ -59,4 +59,17 @@ functional:
# Ref.: https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#presence
enabled: false
chat:
matrix:
profile:
# Once connected with a user that user's MatrixID is rarely checked by their communication partners, as the
# display name is used to see whom they are communicating with. Not allowing users to change their
# own display name reduces the risk of identity fraud.
# To get the display name updated from the central identity and access management you have to have the Synapse
# enterprise feature "groupsync" configured.
allowUsersToUpdateDisplayname: true
# If the LDAP entryUUID should be used for the localpart of user's MatrixIDs following setting must be `true`.
useImmutableIdentifierForLocalpart: false
...