Legacy Apps Overview

Benchling released a new version of the app framework in July 2024 with the announcement of Shareable Apps. While most tenants already support Sharable Apps, a full migration to this new framework is still in progress. Specifically:

  • GxP tenants do not currently have access to the new app framework. All apps on GxP tenants are legacy apps.
  • All apps created on any tenant prior to the GA release of the new framework on July 15, 2024 are still legacy apps.

At some point in the future, all apps across all tenants will automatically be migrated to the new app framework. Until then, this guide serves as a resource on the key differences between the two frameworks, and what needs to be considered when working with legacy apps.

App definitions and installations

For legacy apps, there is no distinction between an app definition and an app installation. All apps on a tenant appear both under Connections > Apps and under Feature Settings > Developer Console > Apps.

With the new framework, definitions and installations are distinctly different. A user should never be able to modify an app that is owned by another tenant. Apps that are only installed but not owned by the tenant therefore will not show up in the Developer Console.

Apps owned by the tenant (Developer Console)

Apps owned by the tenant (Developer Console)

We call what appears in the Developer Console an app definition.

Installed apps not owned by the tenant only appear in the App Workspace under Connections > Apps:

Apps installed on a tenant, including owned apps (App Workspace)

Apps installed on a tenant, including owned apps (App Workspace)

An app that appears in the App Workspace is called the app's installation.

This distinction is also important when programmatically interacting with apps. Legacy apps only have an app_id, which encompasses both the definition and the installation. Non-legacy apps have both an app_definition and an app_id, where the app_id refers to the app installation.

App credentials

Credentials for legacy apps look and work different from new app credentials.

Legacy app credentials

Legacy app credentials

Legacy app credentials are generated per-tenant and cannot be used to generate tokens for any other tenants.

The client ID for new apps is shorter, and the ID and secret can be used to generate a valid token for any installing tenant (including the home tenant).

New app credentials

New app credentials

App versions

App versioning is not available for legacy apps. There is no "Version History" tab for legacy apps.

However, legacy apps can still be updated via the legacy manifest APIs. Uploading a new manifest for a specific app via the API updates that app on the home tenant immediately. These updates are logged in audits, but version information is not available for these updates.

If the app manifest for a legacy app was shared with another tenant at any time, updating the manifest only on one tenant does not impact installations on other tenants.

App sharing

Legacy apps do not have access to the Share feature. The only way to share legacy apps is by providing a copy of the manifest to the installing tenant, then asking them to manually (but securely!) share their app credentials with the developer.