--- title: "Users" description: "Manage users in MCPHub." --- import { Card, Cards } from 'mintlify'; Get a list of all users. Get details of a specific user. Create a new user. Update an existing user. Delete a user. Get statistics about users and their server access. --- ### Get All Users Retrieves a list of all users in the system. - **Endpoint**: `/api/users` - **Method**: `GET` - **Authentication**: Required (Admin only) - **Response**: ```json { "success": true, "data": [ { "username": "admin", "role": "admin", "servers": ["server1", "server2"], "groups": ["group1"] }, { "username": "user1", "role": "user", "servers": ["server1"], "groups": [] } ] } ``` --- ### Get a User Retrieves details of a specific user. - **Endpoint**: `/api/users/:username` - **Method**: `GET` - **Authentication**: Required (Admin only) - **Parameters**: - `:username` (string, required): The username of the user. - **Response**: ```json { "success": true, "data": { "username": "user1", "role": "user", "servers": ["server1", "server2"], "groups": ["group1"] } } ``` --- ### Create a User Creates a new user in the system. - **Endpoint**: `/api/users` - **Method**: `POST` - **Authentication**: Required (Admin only) - **Body**: ```json { "username": "newuser", "password": "securepassword", "role": "user", "servers": ["server1"], "groups": ["group1"] } ``` - `username` (string, required): The username for the new user. - `password` (string, required): The password for the new user. Must be at least 6 characters. - `role` (string, optional): The role of the user. Either `"admin"` or `"user"`. Defaults to `"user"`. - `servers` (array of strings, optional): List of server names the user has access to. - `groups` (array of strings, optional): List of group IDs the user belongs to. --- ### Update a User Updates an existing user's information. - **Endpoint**: `/api/users/:username` - **Method**: `PUT` - **Authentication**: Required (Admin only) - **Parameters**: - `:username` (string, required): The username of the user to update. - **Body**: ```json { "password": "newpassword", "role": "admin", "servers": ["server1", "server2", "server3"], "groups": ["group1", "group2"] } ``` - `password` (string, optional): New password for the user. - `role` (string, optional): New role for the user. - `servers` (array of strings, optional): Updated list of accessible servers. - `groups` (array of strings, optional): Updated list of groups. --- ### Delete a User Removes a user from the system. - **Endpoint**: `/api/users/:username` - **Method**: `DELETE` - **Authentication**: Required (Admin only) - **Parameters**: - `:username` (string, required): The username of the user to delete. --- ### Get User Statistics Retrieves statistics about users and their access to servers and groups. - **Endpoint**: `/api/users-stats` - **Method**: `GET` - **Authentication**: Required (Admin only) - **Response**: ```json { "success": true, "data": { "totalUsers": 5, "adminUsers": 1, "regularUsers": 4, "usersPerServer": { "server1": 3, "server2": 2 }, "usersPerGroup": { "group1": 2, "group2": 1 } } } ``` **Note**: All user management endpoints require admin authentication.