Add MSP360 Backup and RMM integrations - #3559
Open
tonyzorin wants to merge 5 commits into
Open
Conversation
Split Provider Login (administrators, monitoring, restore tests) from the RMM Bearer token (fleet host/antivirus/summary/inventory) so the two secrets are never mixed.
Use the official BIMI logo, parse RMM header/data envelopes, and treat paused backups, missing restore tests, and Linux-without-AV as honest not-in-scope passes.
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 22 files
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
Stop treating Running/Unknown backups or failed restores as paused/N/A, fail encryption/screen-lock when RMM actually reports them off, and keep paging bare-array fleet stats instead of stopping after a full first page.
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 14 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
…e cap. A missing restore status is indeterminate, not out of scope. Truncation is only reported after a page beyond the cap still returns new hosts.
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 5 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
Custom maxPages tests were describing a 100-page/10k-host limit that was not in use. Also cover an unrecognized restore Status, not only a missing one.
Author
|
Hi, is security review manual? |
tonyzorin
force-pushed
the
feat/msp360-backup-rmm-integrations
branch
from
August 25, 2026 15:42
39577eb to
154c32b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integration: MSP360 Backup + MSP360 RMM
Overview
What This Integration Does
Two separate catalog providers so Backup Provider Login and the RMM API token are never mixed.
POST /api/Provider/Login, then readsGET /api/AdministratorsandGET /api/Monitoring.GET /api/Usersis backup customers and is not used as staff./api/v1/computers/stat/{host,antivirus,summary,hardware,software}/latest). Live payloads wrap each computer as{ header, data[] }; hid is normalized (braces/case) before joins.Honest pass/fail:
Catalog logo is MSP360’s public BIMI SVG:
https://images.msp360.com/bimi/msp360-logo.svg.Testing
bun test src/manifests/msp360-backup src/manifests/msp360-rmm)Task Mapping
Breaking Changes
None
Notes
Community Edition has no RMM API. Do not paste Backup Provider Login into the RMM connection or an RMM token into Backup.
Summary by cubic
Adds MSP360 Backup (
msp360-backup) and MSP360 RMM (msp360-rmm) as separate integrations with distinct auth, tightening backup/restore outcomes and RMM pagination to prevent false passes and missed hosts.Review focus
POST /api/Provider/Login) for/api/Administratorsand/api/Monitoring; RMM uses a Bearer token for/api/v1/computers/stat/{host,antivirus,summary,hardware,software}/latest. Do not mix credentials.{ header, data[] }, normalize hids, keep paging bare-array responses until a short/repeated page, and only report truncation after probing past the cap returns new hosts; truncation findings include the effective page cap. Windows without AV fails; Linux/Unix without AV is not applicable. If RMM reports encryption or screen lock off, fail; absent fields are marked unverified.Rollout
baseUrl, default https://api.mspbackups.com) and MSP360 RMM (RMM API token; optionalbaseUrl, default https://api.rmm.mspbackups.com). No breaking changes.Written for commit 39577eb. Summary will update on new commits.