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:

FieldDescription
nameThe name of the app
descriptionA brief description of the app and it's functionality
versionThe version number of the manifest; supports semantic versioning

App settings

The settings field of an app manifest contains information related to how an app is installed in Benchling. Right now, settings contains the lifecycleManagement and webhookUrl fields:

FieldDescription
lifecycleManagementHow an app is installed to a tenant. One of MANUAL or AUTOMATIC
webhookUrlThe URL that Benchling sends webhooks

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:

680

The OpenAPI schema for Benchling app configuration

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 TypeDescriptionExample Value
DateAppConfigItemA date value; YYYY-MM-DD format2022-01-01
DatetimeAppConfigItemA datetime value; YYYY-MM-DDTHH:SS format2022-01-01T12:30
JsonAppConfigItemA JSON object{"abc": "123"}
EntitySchemaAppConfigItemAn entity schema in Benchling; can have subtype any of aa_sequence, dna_sequence, custom_entity, mixture, molecule, dna_oligo, rna_oligo, rna_sequencets_e59sjL23
FieldAppConfigItemAn entity schema field; sub-field of an entity schema config itemtsf_e59a3b23
BooleanAppConfigItemA boolean valuetrue
IntegerAppConfigItemAn integer value1
FloatAppConfigItemA float value1.0
TextAppConfigItemA text valueuser configured text
GenericApiIdentifiedAppConfigItemAn 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, platebfi_HtrsAIid
SecureTextAppConfigItemAn 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. Right now, only runs can include interactive app components; these features are of type ASSAY_RUN.

FieldDescriptionExample Value
nameThe feature nameCodon optomization
idAn externally defined unique identifier for the featurecodon_optimization_1234
typeWhere in Benchling the feature can be instantiated; currently limited to ASSAY_RUNASSAY_RUN

App features are currently limited only to Interactive Runs; for more details on how app features are used, check out our Introduction to App Canvas guide.

App security

The security field of an app manifest contains information related to app security and encryption. Right now, this includes the publicKey field:

FieldDescriptionExample Value
publicKeyA public key corresponding to a public-private key pair; used to encrypt secure_text configuration values-----BEGIN PUBLIC KEY-----
...
MIIBIjANBgkqhkiG9w0BAQEFAAOC
...
-----END PUBLIC KEY-----