Skip to content

Feature Request: Implement Hierarchical/Nested Room View for Matrix Spaces in Room Management and Room Directory #944

@ekimminau

Description

@ekimminau

Description:
The current flat list view for rooms in Synapse Admin is fundamentally inadequate for large deployments that utilize Matrix Spaces (MSC2946) to enforce a structured, nested room hierarchy (e.g., Country $\rightarrow$ Support Spaces $\rightarrow$ Rooms).

This proposal requests a new administrative view for the Rooms section, and mirrored in the Room Directory management interface, that correctly interprets the m.space.child state events to display rooms in a collapsible, tree-like structure, similar to a file system explorer.


Is Your Feature Request Related to a Problem? Please Describe.

Yes. The primary problem is that the flat room list fails to convey the necessary administrative and organizational context provided by Matrix Spaces. It is impossible to quickly discern structure (e.g., which country Space a room belongs to), which significantly hinders administrative efficiency for auditing, bulk management, and debugging room visibility issues in large, structured deployments.

Why Do You Think This Feature Is Needed?

  1. Improved O&M: Allows administrators to instantly visualize and navigate complex organizational structures.
  2. Native Standard Support: Provides proper administrative tooling for a core modern Matrix feature (Spaces).
  3. Enhanced Auditing: Facilitates easy auditing of public/published rooms and their hierarchical context in the Room Directory.

Describe the Solution You'd Like

I want a new administrative view that displays rooms and Spaces in a collapsible hierarchy. The structure should be built by parsing the m.space.child state events. Users must be able to:

  1. Visualize/Navigate: Display Spaces as collapsible parent nodes (e.g., clicking 'Country' hides/shows its children).
  2. Functionality: Apply global Search, Filter, and Sort operations that correctly traverse the entire structure, highlighting matching rooms/Spaces regardless of the current collapse state.

Describe Alternatives You've Considered

The only alternative is manually cross-referencing the flat room list against external documentation or using a Matrix client (like Element) for visualization, which is extremely inefficient and unsuitable for administrative tasks. Direct database querying is also not a viable alternative due to security and maintenance concerns.

Provide Related Synapse Admin API Endpoints

The implementation requires integrating the existing Synapse Admin room list endpoint with the official Matrix Client-Server API for hierarchy data.

Endpoint Type Purpose
GET /_synapse/admin/v1/rooms Synapse Admin API Provides base list of all
                                                                                                                                   | rooms for initial data           |
                                                                                                                                   |fetching, filtering, and sort.  | 

| GET /_matrix/client/v3/rooms/{spaceId}/hierarchy | Matrix Client-Server API |Crucial for recursive query |
| of children and structure of |
| any given Space (spaceId) |
| to build nested tree view. |

Additional Context

Our deployment uses strict nesting (e.g., Country $\rightarrow$ CC-SUPPORT/CC-GROUP/CC-PRIVATE $\rightarrow$ Sub-Rooms). A flat list is functionally unusable for daily Operational Management. Implementing this feature is crucial for effective administrative control over large, global structured homeservers.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions