Context
0218 decision 5 left the marketplace model to Figentra OS. 0308 rule 21 put third-party publishers out of scope. Nothing said how one provider that plays several parts (Slack is a chat channel, an app surface and a workflow trigger) is described once, or which providers a tenant sees in the market. First-party modules (0201 decision 3) and partner apps had no shared install and billing path. The owner answered these on 2026-10-25: the round-3 integration questions 5 to 7 and 11, and the OS questions OS-127, OS-128, OS-129, OS-217 and OS-382, with the round-9 pricing answer.Decision
One provider, one Integration (round-3 #5).- A provider is one Integration: one description, one Connection shape and one webhook route
(0308 rules 1, 2 and 15). It plays
one or more of five roles, declared on the Integration so the listing can show them:
- driver: a capability we own calls it through a port (send a message, charge a card, store a file, clear an e-invoice). The port belongs to the package or OS service that owns the capability.
- channel: a driver behind one notifications transport (mail, sms, whatsapp, push, inApp, chat, voice). Products declare channels, never providers (0223 decision 2).
- surface: its host shows our tools, commands or cards (0348).
- connector: it holds records we sync or starts our workflows, with triggers, actions and syncs (0218 decision 3).
- webhooks: it sends us events, as
WebhookEvent<I>on the same Integration, never a second route.
- Listed only when the tenant is involved. An Integration is listed in the app market only if a tenant connects it, consents to it or pays for it. An Integration whose only credential is the platform’s has a platform Connection and no listing.
- Slack (round-3 #6) is one Integration: the driver of the
chatchannel, the Slack app surface, and workflow triggers and actions. - WhatsApp (round-3 #7) is its own channel transport, not a variant of SMS.
- Ad and social platforms (Commerce answers, Channels). Meta, TikTok, Snap and Google are one Integration each, covering the shop, the catalogue feed and tracking.
- Muslin’s connector catalogue (round-3 #11) becomes shared Integration listings; it is not kept as a second catalogue.
- One app market holds first-party modules, partner apps and connector listings: one install flow, one bill, and an entitlement per module. A listing’s price stays a reference to an Entitlement (0308 rule 21). Developers.
- Open to any developer (OS-127). Anyone can create an app, integrate it and test it in developer sandboxes. A review step approves an app before it is listed. The registry carries the review state, developer sandboxes and the partner payout and fee-schedule records a product needs to bill partner apps on the tenant’s one invoice.
default-applied.md).
- Tenant admins install modules per tenant; organisation admins may force-install or allow-list apps for child tenants (OS-122). Minor and patch versions auto-update; a major version or new permissions wait for admin consent (OS-123). Uninstall keeps the module’s data for a retention window, then deletes it with notice; legal holds win (OS-124). A disabled paid module is not billed from the next period (OS-125).
- Which connectors ship at launch and how they are priced, partner billing and fee schedules, the agency programme, listing prices, review rules, private apps, partner data-class limits, the developer portal and on-prem app bundles are Figentra OS ADRs 0037, 0038 and 0039 (owner round 22, 0259).
Consequences
- A provider is described and listed once, whatever it does. Slack and Meta are not three listings each.
- The market shows a tenant only what the tenant connects, consents to or pays for. Platform plumbing stays out of it.
- One install flow and one invoice serve first-party modules and partner apps alike.
- Developer sandboxes, a review queue and partner payout records must exist before the first partner app is listed.
- The Activepieces piece format stays out of scope (0308 rule 21); only the publisher restriction changes.
Enforcement
planned — aroles declaration on the Integration (or derived by gen from the classes that bind it), checked by gen
(STA-339/340); the listing schema in @stackra/integrations (today IntegrationListing holds only docsUrl); the OS
registry and integrations services for the install flow, review queue and partner payouts.
Open questions
- Partner apps versus partner connectors. OS-127 opens app publishing to any developer; OS-217 keeps partner connectors for later. May a partner app declare its own Integration (its own provider credentials and webhooks) at launch, or only use first-party Integrations? Not decided.
- Shelves. Whether connector listings and apps are separate shelves inside the one app market is not decided.
Supersedes and sources
Supersedes: none. Amends, by Note: 0218 decision 5 and 0308 rule 21. Reads with 0201, 0214, 0274, 0348, 0356 and 0358. Sources: owner decisions in chat, 2026-10-25: round-3 questionnaire 5 to 7 and 11 (notes/handover/360/questionnaire-round-3.md); Commerce
questionnaire Answers, Channels (360/questionnaire-commerce.md); OS rounds 9, 12, 15 and 22 (OS-127) and the defaults OS-122 to OS-125 (notes/handover/os/); the
role rule of 360/integrations-and-marketplace.md section 1.3.