Skip to docs content
Plugins
Open Source
Free Cloud
Pro
SDK current
Updated 2026-09-03

Plugins

Editions: Open Source · Free Cloud · Pro

Building a plugin? Start at Understanding Plugin Architecture — marketplace, Cloudinary walkthrough, UI, and publish.

Plugins extend Engine GraphQL, REST, Console, and content fields. There is one install class: system plugin. Project exposure is activation, not a second plugin type.

SignedPluginPackage → SystemCatalog → EnginePluginHost → DeclaredCapabilities
ProjectActivation → DeclaredCapabilities → System/Project API + Console UI

Install vs activate

Step Where Who
Install / update / health Engine host catalog Super-admin / operator
Activate / config / secrets Project Settings → Plugins Project admin
Call GraphQL/REST Only after activation when the plugin declares project.* capabilities App / SDK

Installation, binary lifecycle, version, checksum, and publisher trust stay system-owned. The project stores only activation state and project-specific secrets/config.

Capabilities

Declare these in config.yml instead of type::

  • system.graphql / system.rest — host-wide (ext_* GraphQL, unprefixed REST)
  • project.graphql / project.rest — per-project (plg_* GraphQL, /{pluginId}/… REST, activation required)
  • console.routes / console.settings — Console surfaces (official signed UI or host-rendered forms)
  • content.fields — model field descriptors
  • system.events — optional event sink (additive; RPC handshake unchanged)

Public prefixes

Keep existing public plg_* and system ext_* field names. Client queries do not need to change for this refactor.

Console trust

Compiled Console JS loads only from Apito-signed official bundles (checksum + official + signed + project activation). Third-party plugins use host-rendered settings forms, actions, and status cards. No third-party JavaScript in Console.

Official plugins

Activate from Project Settings → Plugins after a super-admin installs them on the Engine. Secrets stay in config.yml env_vars overlay.

  • Discord Notifications (hc-discord-plugin) — catalog
  • Stripe Billing (hc-stripe-plugin) — catalog
  • Cloudinary (hc-cloudinary-plugin) — catalog

Public catalog: apito.io/plugins. Submit new plugins via PR to apito-io/plugins after a GitHub Release exists. Engine never clones plugin source.

Roles

Who Can
Super-admin Install / update / uninstall (apito plugin add or Administrator → Plugins)
Project admin Activate / configure already-installed plugins
Author Release zips + registry PR

Plugin binary is host code. Registry approval is not a sandbox.

Guides