Contributing to MSP Align
Thanks for helping. MSP Align is built by MSPs for MSPs, and bug reports, ideas, docs fixes and code are all welcome.
Where things go
| You have | Go to |
|---|---|
| A question, or want to share how you use it | GitHub Discussions |
| A bug | Issues → Bug report |
| An idea or feature request | Issues → Feature request (or Discussions to talk it through first) |
| A security problem | Privately, never in a public issue: see Reporting a vulnerability |
Please never paste client data, API keys, passwords or backup files into an issue or discussion. Screenshots are fine once client names are blurred.
Changing the code
- Talk first for anything big. Open an issue or discussion so we can agree on the approach before you spend time on it. Small fixes can go straight to a pull request.
- Work from
develop. Fork the repository, branch fromdevelop, and open your pull request againstdevelop.mainonly receives releases. - Set up as in Development: PHP 8.4, MariaDB, and the mock server for ITFlow, NinjaOne and the rest, so you never need real client data.
- Test. Add or extend an end-to-end suite in
tests/e2e/suites/for what you change, and run the suites it touches (tests/e2e/run.sh your_suite). GitHub Actions runs everything on your pull request, as five groups at once. See tests/README.md. - Keep to the house style:
- Plain PHP 8.4 with no framework and no Composer packages; views are plain PHP templates. Anything bundled goes
in
public/vendor/with its license file. - Database changes are new numbered files indb/migrations/, never edits to old ones. - Every change a person makes is written to the audit log; secrets are encrypted withapp_key; outside URLs arehttps://only. The existing code shows how. - Words on screen are short and plain. Staff and clients read them, not developers. - Sign off every commit (below), then open the pull request and fill in its checklist.
Adding a connector for a tool? Start with php bin/align make:connector and follow
Writing a connector; the pull request is reviewed against the
connector review checklist.
Sign-off (Developer Certificate of Origin)
MSP Align uses the Developer Certificate of Origin (DCO) instead of a contributor
license agreement. By adding a Signed-off-by line to a commit you state that you wrote the change, or otherwise have
the right to submit it, under the project's license. There is nothing to sign or send.
git commit -s -m "Fix the renewal date on the licensing page"
-s adds Signed-off-by: Your Name <you@example.com> using your Git name and email; use your real name. Forgot it?
git commit --amend -s fixes the last commit, and git rebase --signoff develop fixes all of them on your branch.
A check on each pull request from a fork looks for the line.
License
MSP Align is licensed under the GNU Affero General Public License v3.0 or later. Contributions are accepted under the same license (inbound = outbound): the copyright in your change stays yours, shared as part of "Mountaineer IT Inc. and MSP Align contributors". Code you didn't write must come with a compatible license (MIT, BSD, Apache-2.0, LGPL, GPL-3.0 or AGPL-3.0) and keep its notices.
Conduct
Everyone taking part agrees to the Code of conduct.

Suggest