-
Notifications
You must be signed in to change notification settings - Fork 473
Description
This issue has been migrated from #15273.
We have an undocumented and unspec'd Account Validity feature currently implemented in Synapse. This was originally written for DINUM. Since then, all of the functionality has been moved into the module API (matrix-org/synapse#9884). https://github.com/matrix-org/synapse-email-account-validity is the only known implementation of this API.
Synapse still has an internal implementation of account validity however, gated behind an undocumented account_validity config option. This implementation was originally written for DINUM, and at this point I don't think they make use of Synapse's internal implementation anymore; instead relying on the module instead. I think we should remove it.
However, even after removing Synapse's internal implementation of this feature and leaving behind the account validity module API, we're still left with unspec'd functionality.
- Part of the feature works by returning an unspec'd
ORG_MATRIX_EXPIRED_ACCOUNTerror code to clients when their account expires. Modules shouldn't be returning undocumented error codes to clients on spec'd C-S endpoints. - In addition, MSC3720 (Synapse implementation) defines a new endpoint to allow clients to query certain metadata about other local and remote users. Part of that implementation included returning a
org.matrix.expiredfield in the response, which lets clients know whether another user's account is no longer valid. MSC3720 does not mention this field.
This is clearly a feature that people want; but I think more spec work is needed to allow this functionality in mainline Synapse, even in module form.
This issue is really two in one, and latter probably belongs in matrix-spec:
- Remove the internal account validity implementation gated behind the undocumented
account_validityconfig option. - Spec account validity (or something like it) so that we can comfortably have modules that implement it without breaking spec compliance.