Skip to main content

Marketplace publishing

Applies to Managed Marketplace Apps. External SDK Connections do not use this path.

Lifecycle

create-app → develop src/ + manifest → qefro dev → publish → Marketplace/catalog
→ tenant install → managed runtime → upgrade

CLI commands (current)

qefro create-app <id> [--name NAME] [--hosting managed|external] [--endpoint URL] [--minimal]
qefro dev [dir]
qefro publish [dir] # alias of solution publish
qefro solution build <dir>
qefro solution publish <dir>
qefro solution install <name> [--version V] [--settings JSON]
qefro solution list
qefro register --endpoint URL [--solution ID]

Only platform admins can publish (QEFRO_PUBLISHER_IDQEFRO_PLATFORM_ADMIN_IDS). Tenants install.

Versioning

ConceptOwner
Published solution version (manifest.version)Publisher
Installed version per tenantsolution-service
Upgradeupgrade_for_tenant / install with newer version
RollbackFollow platform install version history (use supported install APIs — do not invent CLI flags)

On upgrade, solution-service re-registers with the runtime plane and best-effort refreshes marketing + organization capability sync.

Manifest essentials

id, name, version, hosting, endpoint, permissions, capabilities, tools, optional ui, workflows, settings, collections.

See managed-marketplace-app.md and Solution packaging.

Secrets & settings

  • Signing secret — runtime env for /qefro HMAC
  • Install settings — brand and business config from manifest.settings (e.g. business_name, colors)
  • Internal bearers — platform ↔ storage-service (QEFRO_INTERNAL_BEARER, …)

Do not put long-lived customer ERP credentials in manifest defaults; use install settings or secret injection mechanisms provided by the platform.

Catalog UX

Portal Marketplace / Solutions UI installs published packages into workspaces. Deep UI docs: solutions/marketplace, solutions/installation.