Skip to main content

Marketplace

The Marketplace is the tenant-facing catalog of published solutions. Publishing writes to the catalog; installing binds a version into a workspace.

Publisher (platform admin today)
→ qefro solution publish
→ global catalog (solution-service)
→ Admin Console → Applications → Marketplace
→ Install wizard → workspace binding + /qefro

For tenants (installers)

  1. Open Applications → Marketplace in the Admin Console (app.qefro.com).
  2. Pick a solution (e.g. Restaurant Pro, Clinic Pro, or your published app).
  3. Run the install wizard: workspace, settings, optional onboarding steps.
  4. Connect Settings → Customer channels (WhatsApp) when the app needs chat.
  5. Open the solution UI from Installed.

CLI equivalent (automation / ops):

export QEFRO_SOLUTION_URL=
export QEFRO_TENANT_ID=
export QEFRO_ORGANIZATION_ID=
qefro solution install <solution-id> --version <semver>

Full install contract: Installation.

What installers never do

  • Publish or yank catalog versions
  • Call solution-service internal APIs from the browser
  • Configure WhatsApp as an install setting (workspace owns the channel)

For publishers

Today the publisher identity is a platform admin UUID listed in QEFRO_PLATFORM_ADMIN_IDS. Partner self-serve listing is on the roadmap; until then, use Publishing with provisioned keys.

Listing checklist

RequirementWhy
Unique manifest.id + semver versionCatalog key
Valid signed packageTrust anchors
src/ + /qefroADR-003 — the app is the process
No storage/* in workflows/UIRejected at validate/publish
Onboarding YAML for every declared stepPublish validation
Honest settings defaultsInstall wizard
Managed image or reachable external /qefroRuntime binding

Upgrade path

Publish a new version → tenant upgrades from Installed (or qefro solution install … --version). Versions are immutable; yank only for severe issues (Publishing).

Applications Health

Admin Console → Applications → Health (and Capability Explorer) show whether installed apps registered Marketing / Organization capabilities and whether bindings are healthy. Use this after install to confirm the package synced metadata — not to debug tenant business data.