Plugin Marketplace
Sign in

Documentation

All articles

Building a plugin

Plugin ids and namespaces

Why a new plugin id needs a namespace, and how to get one with a domain or a GitHub account.

Every plugin has a reverse-DNS id, such as com.example.flow-tower. It never changes, and PrusaSlicer installs plugins by it. So that nobody can publish under a name that is not theirs, a new id must be in a namespace you hold. This is how Maven Central handles package names.

There are two ways to get a namespace. Both are under Namespaces in the author console.

A domain you own

  1. Enter the domain, e.g. example.com. A subdomain works too: plugins.example.com gives you com.example.plugins.*.
  2. Add the TXT record you are shown to the domain’s DNS.
  3. Press Verify. From then on com.example.* is yours, and nobody else can create ids in it.
Type   TXT
Name   _prusa-plugin-marketplace.example.com
Value  prusa-plugin-marketplace-verification=...

DNS changes can take a while to spread. If Verify does not find the record yet, try again later.

Your GitHub account

Use ids like io.github.<account>.<plugin>, for example io.github.your-account.flow-tower. There is nothing to verify by hand: the first release you publish from GitHub Actions in a repository of that account proves it, and the namespace then appears in your console.

Good to know

  • Ids that read “prusa” are reserved for Prusa Research, whoever owns the domain or the account.
  • The most specific namespace wins: if someone else verified team.example.com, you cannot create ids under com.example.team even though you hold com.example.
  • Plugins you published before namespaces existed keep their ids and keep publishing.
  • Need a namespace you cannot prove this way? Ask the marketplace team.