MDL Shield

Changelog

New features, improvements, and fixes. Follow along as MDL Shield gets better.

RSS
Get feature updates by email
Occasional emails when something new ships. Unsubscribe anytime.
FeatureImprovement

The Moodle Marketplace is here, and so are we

Moodle has launched the Moodle Marketplace, the new home for every plugin that used to live in the moodle.org plugins directory. It's a big step for the ecosystem: one place to find, buy, and install plugins, with proper support for commercial vendors for the first time.

We think that's worth celebrating. A healthier plugin economy means more plugins, more maintainers who can afford to keep maintaining, and more code running inside your Moodle sites. Which is exactly why we exist: a marketplace tells you what a plugin does. An independent security review tells you what its code actually does. MDL Shield tracks every plugin on the Marketplace, reviews the code line by line, and puts the result on a public grade badge, so "is it safe?" has an answer that doesn't depend on taking anyone's word for it.

Here's what the transition changes for you.

Free community reviews: unchanged

Non-commercial plugins listed on the Marketplace keep their free monthly reviews. Verify you're the maintainer, run reviews, publish them, embed the badge. Nothing about that flow changes.

Paid plugins: release reviews make way for Repository reviews

The Marketplace doesn't let us download paid plugins' released packages, so release reviews of paid plugins are no longer possible. We detect this automatically and tell you up front instead of failing halfway.

Any review that does get caught out by a Marketplace download refusal is cancelled and the charge refunded automatically.

If you maintain a paid plugin, your path is a Repository review: connect your Git repository (public or private, read-only deploy key) and we review the code directly. In many ways it's the stronger option, since you can review before you release, not after.

New: paid plugins can publish Repository reviews

Until now, publisher publication was reserved for plugins outside the directory. That rule made no sense once paid Marketplace plugins lost their release-review path, so we've changed it: if the Marketplace won't give us your released package, you can become a verified publisher and take your Repository reviews public, grade badge included. The published page states plainly that the review covers your source repository rather than the Marketplace package, so buyers know exactly what was reviewed.

You choose the disclosure level per review, which matters when your plugin is closed source:

  • Full report: the complete review, findings and all.
  • Grade summary: just the grade and a plain verdict. No findings, no code snippets, and for private repositories no repository location, branch, or commit either. Your code and your repo stay yours; only the grade goes public.

The small print

  • Your plugin page now shows whether the Marketplace lets us download your releases, with a one-click re-check if you think we've got it wrong.
  • Every link, page, and email now says Moodle Marketplace, and plugin links point at your plugin's Marketplace page. The directory served the community well for a long time; its name is retired with honours.

If you run into anything the migration broke that we haven't caught, tell us and we'll chase it.

Feature

Verified publishers: take your repository reviews public

Repository reviews have always been private to you, and by default they still are. But if your plugin lives outside the moodle.org directory (internal, closed source, or simply unlisted), there was no way to show anyone what your review found. Now there is: become a verified publisher and publish those reviews on a public page, under a publisher name you choose, whether that is you, your team, or your company.

Verified identity, per-plugin approval

Publication is a trust feature, so it is gated twice. First we verify who you are: request publication from any repository review, we check your details by hand, and you receive a public publisher handle. Then each repository and plugin combination needs a one-time publication approval; once granted, you can publish any review of that plugin, current and future, without asking again. Both gates exist to protect plugin authors: nobody can stand up public reviews of code they don't control, and everything that goes public is backed by an identity we have verified.

Full report, or just the grade

Every publication picks a disclosure level. Full report publishes the whole review, findings and fix guidance included, just like a community review. Summary publishes only the grade and whether any security issues were found, and nothing else: all findings stay private to you. That is the option for closed-source plugins that want credible proof of a security review without exposing any internals.

For public repositories, a summary still pins down exactly which code the review covered: branch or tag, commit, the commit's date, and the scope in files and lines, so a grade can never quietly refer to different code. Private repositories disclose even less: the reviewed-code details are left off the summary entirely, revealing nothing about your repository, branches, or commits.

A page and a badge for every plugin

Every verified publisher gets a public page listing their published plugins, and every published plugin gets its own page with the full history of published reviews. The security badge always shows the grade of your latest published review, ready to embed in your README, your website, or your sales page.

Publishing stays a deliberate act: nothing goes public without you clicking Publish, each new review is published on its own, and you can unpublish at any time.

To get started, open any repository review in your dashboard and hit Request publication. Plugins listed on moodle.org keep their existing community flow (verify ownership, publish free), and pre-release reviews remain private, always.

One more nicety shipping alongside: repository and pre-release reviews now show your plugin's real display name, read from its language strings at review time, instead of only the frankenstyle.

Feature

Export reviews as Markdown, or hand them to your AI assistant

Every completed review in your dashboard now has an Export menu. Copy the full report as clean Markdown or download it as a .md file, ready for your issue tracker, wiki, or release notes.

Each finding card carries the same menu scoped to just that finding, so every action below works for a single issue too, handy for lifting one finding into a ticket or a chat.

For AI help there are two routes. Copy AI prompt wraps the report in instructions to work through each issue, ready to paste into any AI assistant you like. And if you use Claude or Cursor, Open in skips the paste entirely and hands the report over in one click (those two can fetch it directly by link).

Export lives on your reviews in the dashboard. You won't find it on public published review pages: your plugin's report is yours to export and hand to an AI, not anyone else's.

Improvement

Better billing for businesses

A batch of improvements for anyone buying reviews on a company card:

  • Your saved business details (company name and tax ID) now show on the purchase page, with a link to update them. Once entered, the checkout itself never displays these again, so the purchase page is now the place to confirm they're right before you buy.
  • Want your billing address on the invoice? Tick Add my billing address to the invoice and the checkout will prompt for it. We remember whether you want that prompt; the address itself can't be pre-filled by the checkout yet, so it does need re-entering each time.
  • Purchase history now offers a proper invoice PDF download alongside the receipt.
Feature

Review plugins straight from your Git repository

You can now connect your plugin's Git repository and run reviews directly against it, no moodle.org release required. That unlocks two different things, depending on where your plugin lives:

Pre-release reviews

For plugins listed on the moodle.org plugins directory. Point us at a branch or tag and review the code before you publish the release, so what lands in the directory has already been audited. Free reviews apply to non-commercial community plugins, same as always.

Repository reviews

For plugins that are not in the directory: unlisted, internal, or closed source. Connect the repository and review any branch or tag on demand. These use a paid review credit.

Both work with private repositories (via read-only deploy keys) and monorepos (point the connection at the directory that holds your plugin), and every repository card shows its latest review grade at a glance.

Review results from repositories stay private to you.

Improvement

Refresh releases on demand

Just uploaded a new version to moodle.org? Hit Refresh releases on your plugin's page in the dashboard and we pull its latest versions immediately, no waiting for the background sync. Freshly pulled versions are marked with a NEW badge so they are easy to spot.

Feature

Paid reviews are here

Reviewing a commercial plugin? You can now buy review credits directly on the site.

  • Secure embedded checkout with cards, Apple Pay, and Google Pay
  • VAT handled automatically at checkout
  • Credits work across all your plugins

Non-commercial plugins listed in the Moodle plugins directory keep their free monthly reviews.

That's everything so far