App Manifest Reference
App manifests are a tenant-independent definition of a Benchling app, containing all of the information required to install the app. Unlike apps created "from scratch," apps created from a manifest can support custom configuration, interactive components, and more. All of this functionality, as well as details like the app name and description, can be defined in a manifest.
There are a number of important fields that can be included in an app manifest:
- A manifest's info field contains metadata about an app like name, version, and description
- A manifest's settings field contains technical details related to app installation and webhooks
- A manifest's configuration field contains configuration options to be configured by a tenant admin
- A manifest's features field contains interactive components through which Benchling users can interact with the app
- A manifest's security field contains keys used to encrypt app config values
In this reference, we'll cover all of the supported fields and values an app manifest can have for these components, as well as some other minor components of the manifest. For more detailed information on these component's functionality, check out the corresponding guides for App Workspace & Configuration and App Canvas.
App info
The info
field of an app manifest contains basic information about the app. Right now, info
contains the name
, description
, and version
fields:
Field | Description |
---|---|
name | The name of the app |
description | A brief description of the app and it's functionality |
version | The version number of the manifest; supports semantic versioning |
App configuration
The configuration
field of an app manifest contains the set of configuration options used by the app. The full list of all supported config types can be found in the Benchling reference documentation; click the βSchemaβ view to see details on the config field types:
App configuration items are more complex than the key-value pairs of previous fields; app configuration items are grouped into the types below, with some (like EntitySchemaAppConfigItem
) having multiple subtypes.
Config Item Type | Description | Example Value |
---|---|---|
DateAppConfigItem | A date value; YYYY-MM-DD format | 2022-01-01 |
DatetimeAppConfigItem | A datetime value; YYYY-MM-DDTHH:SS format | 2022-01-01T12:30 |
JsonAppConfigItem | A JSON object | {"abc": "123"} |
EntitySchemaAppConfigItem | An entity schema in Benchling; can have subtype any of aa_sequence , dna_sequence , custom_entity , mixture , molecule , dna_oligo , rna_oligo , rna_sequence | ts_e59sjL23 |
FieldAppConfigItem | An entity schema field; sub-field of an entity schema config item | tsf_e59a3b23 |
BooleanAppConfigItem | A boolean value | true |
IntegerAppConfigItem | An integer value | 1 |
FloatAppConfigItem | A float value | 1.0 |
TextAppConfigItem | A text value | user configured text |
GenericApiIdentifiedAppConfigItem | An entity instance in Benchling; can have subtype any of container_schema , plate_schema , location_schema , box_schema , run_schema , result_schema , request_schema , entry_schema , workflow_task_schema , dropdown , dropdown_option , registry , folder , entry , worklist , project , workflow_task_status , dna_sequence , dna_oligo , aa_sequence , custom_entity , mixture , molecule , rna_oligo , rna_sequence , box , container , location , plate | bfi_HtrsAIid |
SecureTextAppConfigItem | An encrypted secure value; must include publicKey (see below) | eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0... |
App features
The features
field of an app manifest contains information related to the app's interactive components, currently limited to App Canvases that can appear in notebook entries, Connect runs, and on the app homepage.
Field | Description | Example Value |
---|---|---|
name | The feature name | Codon optimization |
id | An externally defined unique identifier for the feature | codon_optimization_1234 |
type | What type of feature the app is exposing and where | CANVAS |
Learn more about App Canvas here.
Subscriptions
The subscriptions
field of an app manifest holds the app's subscriptions to webhooks. Most events need to be explicitly subscribed to via the app manifest, including app lifecycle events and canvas interaction events. Currently, the only exception is the v2.app.installed
event, which all apps with a valid webhook url receive regardless of whether a subscription to it is specified in the app manifest.
Field | Description | Example Value |
---|---|---|
deliveryMethod | Currently, always WEBHOOK | WEBHOOK |
messages | The list of messages that the app should receive | |
type | The type of messages that the app should receive | v2.canvas.initialized |
App security
The security
field of an app manifest contains information related to app security and encryption. Right now, this includes the publicKey
field:
Field | Description | Example Value |
---|---|---|
publicKey | A public key corresponding to a public-private key pair; used to encrypt secure_text configuration values | -----BEGIN PUBLIC KEY----- ... MIIBIjANBgkqhkiG9w0BAQEFAAOC ... -----END PUBLIC KEY----- |
Updated 8 days ago