0e3c5f5e84
Wails + React + Mantine v7 admin panel for Matrix/Synapse. Replaces the removed synapse-admin container. MAS OIDC PKCE login (loopback :8766) + Synapse Admin API (users/rooms/sessions). - MAS client: XSFD2SWA394DXRVJFTREAMY6J6 (public PKCE, no auth method). - Backend: AdminService (Go) with Login/SetAdminToken/ListUsers/ DeactivateUser/ResetUserPassword/ListRooms/DeleteRoom/GetUserDevices. - Vendored helpers in internal/infra/ from registry: mas_oidc_loopback_go_infra, keyring_token_store_go_infra, synapse_admin_client_go_infra. - Frontend: AppShell + sidebar tabs (Users/Rooms/Sessions). Sessions placeholder pending MAS admin API. - Build verified: Linux + Windows.
2.8 KiB
2.8 KiB
name, lang, domain, version, description, tags, uses_functions, uses_types, framework, entry_point, dir_path, repo_url, icon
| name | lang | domain | version | description | tags | uses_functions | uses_types | framework | entry_point | dir_path | repo_url | icon | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| matrix_admin_panel | go | infra | 0.1.0 | Panel admin Matrix propio (Wails + React + Mantine). Sustituye synapse-admin. MAS OIDC login + Synapse Admin API. |
|
|
wails | main.go | projects/element_agents/apps/matrix_admin_panel | https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/dataforge/matrix_admin_panel.git |
|
Goal
Panel admin Matrix propio que sustituye el contenedor synapse-admin eliminado (issue 0162). Wails (Go) + React+Mantine. Login MAS OIDC PKCE (loopback puerto 8766) + Synapse Admin API.
Ejecutar
cd projects/element_agents/apps/matrix_admin_panel
wails dev # hot-reload
wails build # binario Linux
wails build -platform windows/amd64 # binario Windows
Flow
- Login MAS OIDC (PKCE public client, mismo issuer que matrix_client_pc, distinto client_id).
- Tras login, modal
AdminTokenModalpide elaccess_tokenSynapse de un user conadmin: true(MAS no expone scope admin todavia). - Validacion: GET
/_synapse/admin/v2/users/{self}con el token. 200 = OK, se persiste en keyring con prefijoadmin_token:. - UI con AppShell.Navbar tabs: Users / Rooms / Sessions.
- Acciones row: Deactivate user (purge opcional), Reset password, Delete room (purge + block opcionales).
Arquitectura
main.go entry: wails.Run + bind AdminService
admin_service.go bindings (Login/SetAdminToken/ListUsers/...)
helpers.go whoami helper
internal/infra/ vendored helpers del registry
mas_oidc_loopback.go
keyring_token_store.go
synapse_admin_client.go
frontend/ React+Vite+TS+Mantine v7
src/
main.tsx MantineProvider violet dark
App.tsx router (Login | Home)
LoginScreen.tsx boton "Sign in with MAS"
AdminTokenModal.tsx pide admin_token Synapse
HomeScreen.tsx AppShell + sidebar tabs
UsersTab.tsx tabla users + acciones
RoomsTab.tsx tabla rooms + acciones
SessionsTab.tsx placeholder TBD
MAS client (registrado en production)
client_id:XSFD2SWA394DXRVJFTREAMY6J6client_auth_method:none(PKCE public)- redirect URIs:
http://127.0.0.1:8766/callback,http://localhost:8766/callback,https://admin-mas.organic-machine.com/callback,http://localhost:8090/callback
Capability growth log
- v0.1.0 (2026-05-25) — baseline scaffold (issue 0163): Wails skeleton + login MAS OIDC + admin token modal + Users/Rooms/Sessions tabs (Sessions placeholder).