Apps
Apps are installed instances of blueprints within an organization. They bridge build-time definitions with runtime execution, each with isolated data and service accounts.
An app is an installed instance of a blueprint within an organization. While a blueprint defines what an application can do, an app is a running instance that does it — with its own connections, data, conversations, and service accounts.
Installing an app
When you install a blueprint, the platform:
- Resolves the blueprint — finds the published version (directly or via an artifact from the marketplace).
- Creates the app instance — scoped to your organization and space, linked to the specific blueprint version.
- Provisions service accounts — creates identities in the identity provider for the app and each of its agents. These accounts allow agents to act in conversations and execute operations.
- Creates organization membership — the app's service accounts are added as members of your organization with appropriate roles.
The resulting app shares the same UID as the blueprint, but its runtime data is entirely isolated to your organization.
App structure
Organization
└── Space
└── App (installed)
├── uid → same as blueprint UID
├── blueprintId → specific published version
├── serviceAccount → identity for the app
├── agentServiceAccounts[] → identities for each agent
└── runtime data
├── connections → authenticated credentials
├── collection records → data in tables
├── conversations → messages and threads
├── tasks → execution history
└── event subscriptions → active listenersMulti-tenant isolation
Multiple organizations can install the same blueprint. Each gets:
- Its own app instance with a unique installation
- Its own service accounts in the identity provider
- Its own runtime data — conversations, records, connections, and tasks are never shared across organizations
- Access to the same actions, agents, and flows defined in the blueprint
This means a blueprint author can publish once, and many organizations can use it independently.
Calling actions
The primary way to interact with an app is by calling actions. Every action call goes through a single endpoint:
POST /v1/apps/{appUid}/actions/callThe request specifies:
- actionIdentifier — which action to invoke (for example,
[email protected]/actions/uact_listFiles) - connectionId — (optional) which connection credentials to use
- input — the action's input data
- waitForResult — whether to wait for completion or get a task ID for async polling
The platform resolves the action, determines whether it's a native service operation or an integration API call, creates a task for tracking, and executes it.
Synchronous vs. asynchronous execution
Actions support two execution modes:
| Mode | Behavior |
|---|---|
Synchronous (waitForResult: true) | The request blocks until the action completes and returns the result directly. |
Asynchronous (waitForResult: false) | The request returns immediately with a task ID. The action executes in the background. You can poll the task or subscribe to its completion event. |
Updating apps
When a new blueprint version is published:
- Publisher's own apps are updated automatically to the new version.
- Client apps (other organizations that installed the blueprint via the marketplace) are updated through the artifact distribution system.
- New agents added in the update get new service accounts provisioned.
The update process ensures continuity — existing runtime data (connections, records, conversations) is preserved.
Related concepts
- Blueprints — the templates that apps are installed from
- Actions — how to invoke operations through apps
- Organizations and Spaces — the multi-tenant structure apps live in
- Connections — managing credentials for external services
Blueprints
Blueprints are the foundational abstraction on the Bivariant platform. They define the complete structure of an application — agents, flows, actions, integrations, data schemas, and more.
Actions
Actions are the universal callable unit on the Bivariant platform. Every operation — native functions, external API calls, and flow steps — is invoked through the same action interface.