Skip to content

Feature Request: Enhanced Invite System for Matrix Synapse #19757

@ThesiiNCey

Description

@ThesiiNCey

Feature Request: Enhanced Invite System for Matrix Synapse

Summary

An enhanced invitation system is proposed for Matrix Synapse that allows invite links to be configured more flexibly. The goal is to improve control over the usage and validity of invitation links.

Motivation

Currently, invite links offer only limited configuration options. In larger communities or public rooms, there is often a need to limit invitations by time or control their usage in order to prevent abuse and simplify administration.

Proposal

The invitation system should be extended with the following options:

1. Maximum Number of Uses

  • Ability to define how many times an invite link can be used.
  • Example: A link is valid for only 5 successful room joins.

2. Time-Based Expiration

  • Ability to define an expiration time for invite links.
  • Example: A link is valid for 24 hours only.

3. Combination of Both Options

  • It should be possible to set both usage limits and expiration time simultaneously.

4. UI Integration

  • A pop-up or dialog when creating an invite link where these parameters can be configured.
  • Default values should be optionally configurable.

Technical Considerations

  • Extension of current invite tokens in the Synapse backend.
  • Storage of additional metadata (max_uses, expires_at).
  • Validation when accepting an invitation.
  • Ensure backward compatibility with existing invite links.

Benefits

  • Increased security for public rooms.
  • Better control over community growth.
  • Reduced abuse from shared or leaked links.

Possible Extensions

  • Custom domains for invite links.
  • Password-protected invitations.
  • Usage tracking (optionally anonymized).

Conclusion

A more flexible invite system would make Matrix Synapse significantly more modern and administratively efficient, especially for larger or public instances.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions