Announcements
Xentium can reach your admin panel directly. Once a day the worker asks the marketplace whether there is anything to pass on, and anything that comes back opens a dialog in the ACP. Once an admin clicks OK it is gone from the site, for every admin: your instance keeps no copy and no record of who read it.
The check is anonymous. It sends no site id, no account, no version and no plugin list, and it works whether or not you’ve connected a marketplace account — a site that never linked one is exactly the site that most needs to hear about a security problem. There are no read receipts, deliberately: a channel that knows who read it is a tracking channel.
Every announcement is signed (RS256, the same key that signs entitlements) and your
instance throws away anything that doesn’t verify, has been altered in transit, or has
expired. Without that, anyone who could answer for your LICENSE_SERVER_URL would get to put
arbitrary text in a modal in front of every administrator. There’s no HTML in the channel at
all — plain text, plus at most one https:// link that’s shown in full and never opened for
you.
We write them in English and translate where we can; each admin sees their own language if we have it, then the site’s, then English. They can’t be muted: a channel you can turn off isn’t one we can rely on when it matters.
There is one marketplace, plugins.xentium.org, and an announcement is checked against the
key bundled in the build — not against LICENSE_PUBLIC_KEY. That env var can change which
licences an instance accepts, for development against a local marketplace; it cannot change
who an instance believes is Xentium.
Full details in the wiki.