docs(msp): add Prowler for MSPs and MSSPs documentation#12101
Conversation
Add first-party documentation for Prowler for MSPs and MSSPs, the console at partners.prowler.com used by MSPs, MSSPs, resellers and consultants to onboard customers and operate their Prowler Cloud tenants. Eight pages, all written against the current product: - Overview, with the four core objects and a console tour - Sign up and sign in, including the full password policy and session lifetimes - Managing your partner organization: lifecycle, settings, Partner Code, ownership and deletion requests - Managing your team: the seven-flag permission matrix for both seed roles - Organizing customers into workspaces - Onboarding customers and accessing their tenants - Billing and customer plans - Branding The documentation distinguishes a workspace, which groups customers inside the partner organization, from a customer's Prowler Cloud tenant. Both were previously called a "customer workspace", which collides with the workspace object the product actually exposes. Screenshots are marked with placeholder comments and are added separately.
|
✅ All required changelog fragments are present. |
|
✅ No Conflicts No conflict markers, and the branch merges cleanly into its base. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdded a Prowler for MSPs and MSSPs product overview, six operational tutorials, and navigation entries in both Getting Started and Guides. ChangesProwler for MSPs and MSSPs documentation
Estimated code review effort: 2 (Simple) | ~15 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
There was a problem hiding this comment.
Actionable comments posted: 8
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/getting-started/products/prowler-for-msps.mdx`:
- Around line 66-68: Update the “Getting Access” section to document the initial
Pending email verification state and instruct users to verify their email before
approval review. Preserve the existing Pending approval transition and explain
the sequence from registration, through email verification, to team invitations
and customer onboarding.
In `@docs/user-guide/tutorials/prowler-for-msps-billing.mdx`:
- Line 61: Update the Monthly-plan sentence in the billing tutorial to
explicitly state that it does not require an upfront provider-account count,
replacing the vague “no upfront count” wording while preserving the surrounding
Annual-plan details.
- Line 14: The billing documentation incorrectly states that unavailable billing
redirects to Dashboard. Update the sentence describing the `/billing` behavior
to identify `/profile` as the redirect destination, while preserving the
existing conditions and sidebar visibility description.
In `@docs/user-guide/tutorials/prowler-for-msps-customers.mdx`:
- Line 35: Update the tenant-provisioning outcome sentence in the tutorial to
call the $0 plan “Trial” and clearly state that paid-plan subscription may fail
to report, using wording consistent with the billing page’s documented plan
states.
In `@docs/user-guide/tutorials/prowler-for-msps-organization.mdx`:
- Line 42: Update the sentence around “Change your own password” to replace the
vague “administrators” reference with the exact role or permission that grants
access to the Danger zone, consistent with the documented Manage settings
requirement and Organization Admin limitations.
In `@docs/user-guide/tutorials/prowler-for-msps-team.mdx`:
- Around line 40-43: Update the “Send the invitation” step to explicitly state
how the invitation’s target workspace is determined—whether the administrator
selects it in the dialog or the current workspace context is used—so the invited
member’s workspace-scoped access is unambiguous.
In `@docs/user-guide/tutorials/prowler-for-msps-workspaces.mdx`:
- Line 16: Update the workspace description to replace “book of business” with
“customers assigned to that workspace,” keeping the explanation of an
Organization Admin’s visibility scope unchanged.
- Around line 52-57: Update the workspace deletion rule in the table to
consistently refer to assigned customers, using “assigned customers” or
“customer organizations” instead of “assigned organizations”; keep the
surrounding deletion guidance unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 9ee4c3e8-e516-4c93-9a60-8b9344710fa6
📒 Files selected for processing (9)
docs/docs.jsondocs/getting-started/products/prowler-for-msps.mdxdocs/user-guide/tutorials/prowler-for-msps-billing.mdxdocs/user-guide/tutorials/prowler-for-msps-branding.mdxdocs/user-guide/tutorials/prowler-for-msps-customers.mdxdocs/user-guide/tutorials/prowler-for-msps-organization.mdxdocs/user-guide/tutorials/prowler-for-msps-sign-up.mdxdocs/user-guide/tutorials/prowler-for-msps-team.mdxdocs/user-guide/tutorials/prowler-for-msps-workspaces.mdx
|
|
||
| ## The Billing Page | ||
|
|
||
| The **Billing** entry appears in the sidebar only when billing has been enabled for your account and your role carries **Manage billing**. If either is missing, the entry is hidden and `/billing` redirects to the Dashboard. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Document the actual /billing redirect destination.
The supplied ui/proxy.ts behavior redirects /billing to /profile when billing is unavailable or the user lacks manage_billing, not to Dashboard. Update this sentence or change the route behavior if Dashboard is intended.
Proposed documentation fix
-If either is missing, the entry is hidden and `/billing` redirects to the Dashboard.
+If either is missing, the entry is hidden and `/billing` redirects to the **Profile** page.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| The **Billing** entry appears in the sidebar only when billing has been enabled for your account and your role carries **Manage billing**. If either is missing, the entry is hidden and `/billing` redirects to the Dashboard. | |
| The **Billing** entry appears in the sidebar only when billing has been enabled for your account and your role carries **Manage billing**. If either is missing, the entry is hidden and `/billing` redirects to the **Profile** page. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/user-guide/tutorials/prowler-for-msps-billing.mdx` at line 14, The
billing documentation incorrectly states that unavailable billing redirects to
Dashboard. Update the sentence describing the `/billing` behavior to identify
`/profile` as the redirect destination, while preserving the existing conditions
and sidebar visibility description.
| </Step> | ||
|
|
||
| <Step title="Launch Their Customer Workspace"> | ||
| Prowler provisions the tenant in Prowler Cloud. The final step confirms the outcome — created on the free plan, subscribed to a paid plan, or subscribed with a failure to report. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use the documented plan name and clarify the failure outcome.
The billing page names the $0 plan Trial. Replace “free plan” and clarify “subscribed with a failure to report” so users can map this confirmation to the documented plan states.
Proposed wording
- Prowler provisions the tenant in Prowler Cloud. The final step confirms the outcome — created on the free plan, subscribed to a paid plan, or subscribed with a failure to report.
+ Prowler provisions the tenant in Prowler Cloud. The final step confirms the outcome: the customer was created on the **Trial** plan, subscribed to a paid plan, or the subscription failed.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Prowler provisions the tenant in Prowler Cloud. The final step confirms the outcome — created on the free plan, subscribed to a paid plan, or subscribed with a failure to report. | |
| Prowler provisions the tenant in Prowler Cloud. The final step confirms the outcome: the customer was created on the Trial plan, subscribed to a paid plan, or the subscription failed. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/user-guide/tutorials/prowler-for-msps-customers.mdx` at line 35, Update
the tenant-provisioning outcome sentence in the tutorial to call the $0 plan
“Trial” and clearly state that paid-plan subscription may fail to report, using
wording consistent with the billing page’s documented plan states.
| <Step title="Send the invitation"> | ||
| Click **Invite User**, enter the **Email**, pick a **User Role**, and send. Each role option carries a one-line description of what it grants. | ||
|
|
||
| {/* IMAGE (pending): /images/prowler-for-msps/invite-user-dialog.png — Invite User dialog with the Email field and the User Role selector expanded to show both roles */} |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
Make the workspace grant explicit in the invitation procedure.
Line [41] only tells readers to enter Email and User Role, while line [54] says invitations are workspace-scoped. State how the target workspace is selected, or whether the current workspace context determines it; otherwise administrators cannot reliably predict the member’s access boundary.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/user-guide/tutorials/prowler-for-msps-team.mdx` around lines 40 - 43,
Update the “Send the invitation” step to explicitly state how the invitation’s
target workspace is determined—whether the administrator selects it in the
dialog or the current workspace context is used—so the invited member’s
workspace-scoped access is unambiguous.
|
|
||
| If your whole team works across every customer, you can ignore workspaces entirely — everything lands in the default workspace and Superadmins reach all of it. | ||
|
|
||
| Workspaces earn their keep when you need separation: a team per region, per practice, or per customer segment, where an Organization Admin should only see their own book of business. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Replace the unexplained “book of business” jargon.
Use “customers assigned to that workspace” instead so the access scope is explicit and searchable. As per coding guidelines, documentation should avoid unnecessary jargon and define unfamiliar terms on first use.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/user-guide/tutorials/prowler-for-msps-workspaces.mdx` at line 16, Update
the workspace description to replace “book of business” with “customers assigned
to that workspace,” keeping the explanation of an Organization Admin’s
visibility scope unchanged.
Source: Coding guidelines
| | Condition | Result | | ||
| |---|---| | ||
| | The workspace is the **Default** one | Cannot delete the default workspace. | | ||
| | The workspace still holds customers | Cannot delete a workspace with assigned organizations. | | ||
|
|
||
| Move or remove the customers first, then delete. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use “customers” consistently in the deletion rule.
Line [55] says “assigned organizations,” while this page and the overview define workspaces as containing customers and treat the partner organization as a separate top-level object. Change this to “assigned customers” or explicitly “customer organizations.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/user-guide/tutorials/prowler-for-msps-workspaces.mdx` around lines 52 -
57, Update the workspace deletion rule in the table to consistently refer to
assigned customers, using “assigned customers” or “customer organizations”
instead of “assigned organizations”; keep the surrounding deletion guidance
unchanged.
Wire up five screenshots: dashboard, sign-up, sign-in, Settings Profile and Settings Branding. Capturing them surfaced details the pages had wrong or missing: - Dashboard: the insight row is titled Partner Insights, and each card carries a breakdown. Billing Overview reports monthly expenses against last month and splits revenue into annual, monthly and overage, rather than a year-to-date figure. - Sign-in: the button is Login and the link is Forgot Password?. - Settings Profile: document the PRW-00000 Partner Code format and the editable Company Name field with Save Changes. - Branding: the buttons are Upload Logo and Remove Logo. The 200x60 px guidance is presented on screen as a recommendation but is enforced as a hard maximum for PNG and skipped entirely for SVG. Document the Logo Placement Preview, and note that it renders locally rather than pushing the logo to Prowler Cloud.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/user-guide/tutorials/prowler-for-msps-branding.mdx`:
- Line 10: In the branding tutorial instruction near “Settings → Branding,”
capitalize the interaction verb “click” to “Click,” leaving the rest of the
sentence unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: d6f48d55-95f0-429a-8404-9d88fb366a37
⛔ Files ignored due to path filters (5)
docs/images/prowler-for-msps/dashboard.pngis excluded by!**/*.pngdocs/images/prowler-for-msps/settings-branding.pngis excluded by!**/*.pngdocs/images/prowler-for-msps/settings-profile.pngis excluded by!**/*.pngdocs/images/prowler-for-msps/sign-in-form.pngis excluded by!**/*.pngdocs/images/prowler-for-msps/sign-up-form.pngis excluded by!**/*.png
📒 Files selected for processing (5)
docs/docs.jsondocs/getting-started/products/prowler-for-msps.mdxdocs/user-guide/tutorials/prowler-for-msps-branding.mdxdocs/user-guide/tutorials/prowler-for-msps-organization.mdxdocs/user-guide/tutorials/prowler-for-msps-sign-up.mdx
|
|
||
| ## Upload a Logo | ||
|
|
||
| Open **Settings → Branding**, click **Upload Logo**, and pick your file. The logo replaces the placeholder immediately and a confirmation appears. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use the documented interaction verb “Click”.
Change lowercase “click” to “Click” to follow the documentation interaction-verb guideline.
Proposed fix
-Open **Settings → Branding**, click **Upload Logo**, and pick your file.
+Open **Settings → Branding**, Click **Upload Logo**, and pick your file.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Open **Settings → Branding**, click **Upload Logo**, and pick your file. The logo replaces the placeholder immediately and a confirmation appears. | |
| Open **Settings → Branding**, Click **Upload Logo**, and pick your file. The logo replaces the placeholder immediately and a confirmation appears. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/user-guide/tutorials/prowler-for-msps-branding.mdx` at line 10, In the
branding tutorial instruction near “Settings → Branding,” capitalize the
interaction verb “click” to “Click,” leaving the rest of the sentence unchanged.
Source: Coding guidelines
Every partner organization currently holds a single default workspace, the Workspaces page is not linked from the sidebar, and nothing in the console tells a user that more than one workspace can exist. Documenting the concept teaches a model the product does not yet surface. Remove the dedicated page and the nav entries, and rewrite the places that leaned on the concept: - Overview: Core Concepts drops to three objects, and the warning separating a workspace from a customer tenant is no longer needed. - Team: the permission matrix drops Manage workspaces and Access all workspaces, and the role summaries describe reach in terms of customers. Invitations are described without workspace scoping. - Customers: adding a customer is described as Superadmin-only by role rather than by the underlying flag, and the Edit panel is documented as a rename. The wizard step title "Launch Their Customer Workspace" stays as-is; it is on-screen text.
Filing a deletion request notifies the Prowler team and confirms back to the requester; the closure itself is handled by Prowler, not by the partner. Replace the instruction to arrange tenant disposal with each customer directly, in both the organization and customer pages, and add the offboarding step to the closure walkthrough.
Drop the explanation that the Billing entry appears only once billing is enabled for the account and that /billing otherwise redirects, and stop describing the customer billing stat cards as hidden. Describe the surfaces as they are used instead.
Wire up two more captures and correct the labels they show: the wizard field is Customer Business Name and the step ends on Next; the invite dialog is confirmed with Send Invite. Drop the pending screenshot slot for the Billing payment method card.
Replace the plan table with a pointer to prowler.com/pricing. Prices, included usage and overage rates change, and a table here would drift from the single source without anyone noticing. The upfront provider account range for the annual plan stays, since it is a form constraint rather than a price.
Wire up the plan-selection and confirmation steps of the Add Customer wizard, plus the My Customers page, and refresh the step-one capture. Details the captures settled: - Step two is headed Choose your plan and carries a Monthly/Annual toggle; the wizard is completed with Create Customer. - Step three confirms with Go To Organization or Close. - The Billing Type column reads Trial, Pro Monthly or Pro Annual. - The customers list has search, provider and status filters, and an export button. The My Customers capture also shows the Billing active and Total MTD cards, so the billing page reuses it rather than carrying a second, narrower capture of the same cards.
Wire up the customer row actions menu and the Change Plan dialog, the last two pending captures. The Billing page is not reachable today, so stop documenting it. The billing guide now covers only what a provider can actually do: set a plan when creating a customer, change it later from the customer row, and read the resulting revenue. Remove the payment method walkthrough, the sidebar entry from the console tour, and the payment method from the Manage billing permission description.
Three of the review comments still applied after the pages were cut down: - The overview jumped straight to Pending approval, so a reader could wait for review without ever verifying their email. Document the Pending email verification state and the transition. - "The monthly plan carries no upfront count" did not say what was counted. - The Security tab said the Danger zone is for "administrators", which reads as though Organization Admin qualifies. It is gated on Manage settings, so name the permission. Also replace "book of business", which is jargon the docs style guide asks to avoid.
Context
Adds first-party documentation for Prowler for MSPs and MSSPs — the console at
partners.prowler.comused by MSPs, MSSPs, resellers and consultants to onboard customers and operate their Prowler Cloud tenants on their behalf. There is no documentation for it ondocs.prowler.comtoday.This replaces #10999 and #11261, which are closed in favour of this PR. Those two were written against an earlier state of the product and had drifted; every claim here was re-verified against the current code before being written.
Description
Eight new MDX pages plus a
docs/docs.jsonupdate.Getting Started gains a Prowler for MSPs and MSSPs group; Guides gains a top-level group of the same name, sibling to Prowler Cloud.
docs/getting-started/products/prowler-for-msps.mdxdocs/user-guide/tutorials/prowler-for-msps-sign-up.mdxdocs/user-guide/tutorials/prowler-for-msps-organization.mdxdocs/user-guide/tutorials/prowler-for-msps-team.mdxdocs/user-guide/tutorials/prowler-for-msps-workspaces.mdxdocs/user-guide/tutorials/prowler-for-msps-customers.mdxdocs/user-guide/tutorials/prowler-for-msps-billing.mdxdocs/user-guide/tutorials/prowler-for-msps-branding.mdxThe terminology fix
The earlier drafts used "customer workspace" for the customer's Prowler Cloud tenant. That name collides with a real object the product exposes:
The documentation now keeps those separate and says so explicitly, since the distinction is what makes team scoping legible.
What is newly documented
access_all_workspaces— the flag that actually separates Superadmin from Organization Admin.Corrections against the current product
Surfaces that are built but not yet wired — the Workspaces stat slots, invoice history, per-customer billing — are called out as such rather than described as shipping.
Screenshots
Screenshot slots are marked in-page with
{/* IMAGE (pending): ... */}comments so the build stays green. They are added in a follow-up once captured. Twelve slots across the eight pages.Steps to review
cd docs && npm install -g mint && mint dev.http://localhost:3000and confirm:Checklist
Community Checklist
SDK/CLI
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Summary by CodeRabbit