feat(rmm): add admin UI for RMM connections, device mappings, alert rules #211
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/mapps-199-rmm-admin-ui"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds the missing frontend for the RMM integration subsystem whose backend shipped under PMS-102/103/104/105 but had no UI. Three admin-gated surfaces live under the Settings hub in a new "Integrations" group, each wired to the existing server CRUD routes:
GET/POST /rmm/connections,GET/PUT/DELETE /rmm/connections/{id},POST /rmm/connections/{id}/test). The provider dropdown is limited to the supportedRmmProvidervariants (tactical_rmm, mesh_central, datto, connectwise, ninja_rmm) and is immutable on edit to match the serverUpdateRmmConnectionRequest, which has no provider field.GET/POST /rmm/device-mappings,DELETE /rmm/device-mappings/{id}), linking a monitored device to an optional asset and company via the shared pickers.GET/POST /rmm/alert-rules,DELETE /rmm/alert-rules/{id}).Provider credentials (api_key / api_secret) are write-only: the server
RmmConnectionResponsenever echoes them, so the form only ever sends them and leaving them blank on edit keeps the stored values (mirrors the PMS-342 credential-vault pattern). Every page re-checksuse_is_admin()and renders the AdminOnlyNotice for non-admins, matching the serverRequireAdminon these routes. Reuses the existing settings CRUD conventions (page-local Deserialize rows,active_tenant_generation()re-fetch, SettingFormModal chrome, shared opt_str / delete_lookup helpers).#MAPPS-199
Adds the missing frontend for the RMM integration subsystem whose backend shipped under PMS-102/103/104/105 but had no UI. Three admin-gated surfaces live under the Settings hub in a new "Integrations" group, each wired to the existing server CRUD routes: - Connections: list / create / edit / delete plus a "Test connection" action (`GET/POST /rmm/connections`, `GET/PUT/DELETE /rmm/connections/{id}`, `POST /rmm/connections/{id}/test`). The provider dropdown is limited to the supported `RmmProvider` variants (tactical_rmm, mesh_central, datto, connectwise, ninja_rmm) and is immutable on edit to match the server `UpdateRmmConnectionRequest`, which has no provider field. - Device mappings: list / create / delete (`GET/POST /rmm/device-mappings`, `DELETE /rmm/device-mappings/{id}`), linking a monitored device to an optional asset and company via the shared pickers. - Alert rules: list / create / delete (`GET/POST /rmm/alert-rules`, `DELETE /rmm/alert-rules/{id}`). Provider credentials (api_key / api_secret) are write-only: the server `RmmConnectionResponse` never echoes them, so the form only ever sends them and leaving them blank on edit keeps the stored values (mirrors the PMS-342 credential-vault pattern). Every page re-checks `use_is_admin()` and renders the AdminOnlyNotice for non-admins, matching the server `RequireAdmin` on these routes. Reuses the existing settings CRUD conventions (page-local Deserialize rows, `active_tenant_generation()` re-fetch, SettingFormModal chrome, shared opt_str / delete_lookup helpers). #MAPPS-199