This document describes the behavior of MDM (Mobile Device Management) parameters in the context of a Threema app.
MDM parameters always override a user setting. The wording "this parameter overrides user setting X" implies that the affected user setting is forcefully set to the parameter value and cannot be modified by the user until the parameter value has been unset.
There are two ways how MDM parameters can be defined and updated:
If an external MDM and Threema App Configuration are enabled simultaneously, then both parameter sets are merged. If the same parameter is defined by both systems, then only one of them is selected. The precedence can be configured through the Threema Work cockpit.
A total set of three parameter lists need to be stored by the app:
The following steps are defined as MDM Filter Steps:
parameters be the MDM parameters that have been provided and source
be the source of that provider (i.e. either external for an external MDM or
threema for the Threema App Configuration).parameters:
parameters.parameters.source is threema and the parameter name is any of the following,
log a warning and remove it from parameters:
th_id_backupth_id_backup_passwordth_license_usernameth_license_passwordth_safe_passwordparameters.The following steps are defined as MDM Update Steps and apply whenever the parameters of the external MDM or the Threema App Configuration have been refreshed:
parameters be the MDM parameters that have been provided.parameters and overwrite parameters with
the result.parameters is identical to the currently stored filtered set of
parameters of this source, abort these steps.MDM_PARAMETER_SYNC, precondition: MDM
parameters have not been updated by another device in the meantime, otherwise
restart these steps from the beginning).MdmParameterSync message and commit the transaction.parameters and the current
parameters of the respective other source.The following steps are defined as MDM Merge And Apply Steps.
threema-parameters be the provided set of parameters source from
Threema App Configuration.external-parameters be the provided set of parameters sourced from the
external MDM.precedence define the source parameter precedence.¹threema-parameters and overwrite
threema-parameters with the result.external-parameters and overwrite
external-parameters with the result.merged-parameters be the union of threema-parameters and
external-parameters. If a parameter is defined in both sets, then
precedence defines which source takes precedence.merged-parameters is identical to the currently stored set of merged and
applied parameters, abort these steps.threema-parameters, external-parameters and merged-parameters,
overwriting the previous parameter sets.parameter of merged-parameters, run the associated steps defined
for the parameter.¹: When running these steps as part of a Work Sync, the precedence is defined by
the most recently received override parameter with true mapping to threema
and false mapping to external. For reflected md-d2d-sync.MdmParameters,
the precedence is defined as part of the message.
[//]: # TODO(SE-307): Document steps for all parameters.
When this parameter is set:
true and storage is currently not protected by the Remote Secret feature
and no task is scheduled to run the Remote Secret Activate Steps, schedule
a persistent task bound to the application to run the Remote Secret Activate
Steps.false and storage is currently protected by the Remote Secret feature
and no task is scheduled to run the Remote Secret Deactivate Steps,
schedule a persistent task bound to the application to run the Remote Secret
Deactivate Steps.When this parameter is unset:
When this parameter is set:
true
or enabled if false.¹When this parameter is unset:
¹: Contacts can still be added implicitly, e.g. through contact import or when receiving a message from an unknown contact.
When this parameter is set:
false, ensure that entrypoints for enabling multi-device and adding new
devices are enabled.true:
When this parameter is unset: