← Addonium

13. Host Application Responsibilities

A conforming host MUST:

  • Respect type, auth, and clients exactly as declared - never strip auth requirements, never call a Locked Addon without the credential the author asked for, never fabricate a clientId.
  • Fail gracefully when an addon (or a specific resource) is unavailable - fall back to another installed addon or a built-in provider, never crash the surrounding UI.
  • Sandbox compiled modules (§9.5) and never execute one with more privilege than the manifest's declared resources imply.
  • Surface storesData: true, clients.enforced: true, the auth method, and any auth.requirements to the user at install time, so nothing about an addon's access model is hidden.
  • Never send the same tokenized URL/key to a different addon or log it in a way the addon's author didn't opt into (e.g. shipping analytics that include a Locked Addon's token is a spec violation of the "no abuse" principle in §1).

A conforming host SHOULD:

  • Send a stable, honest clientId on every request so allowlisting is actually usable by authors who want it.
  • Support both distribution formats (§4) where feasible, defaulting to HTTP addons and treating compiled modules as an enhancement.