Skip to main content

The Manifest File

Your manifest.json file is an indispensable part of your Showpad App. It's the control center for your app, containing essential information about the files, resources, and components needed to build and run your Showpad App, such as:

  • the schema and version to use,
  • public information about the app, such as author and version,
  • information for the definitions of the Extension Types to be created from your app.

Once you've completed development, your app is packaged into a .showpad bundle. The manifest is the file that brings all of the elements of your app together. In the following illustration, the Showpad App makes use of four extensions: two Experience types (A & B), one User Settings and one Admin Settings.

manifest

Structure

Your manifest.json file should follow this structure:

PropertyDescriptionRequired
Schema info$schemaDirects the app's manifiest file to use the v2 json schema. Your IDE can use this to provide auto-completion when developing your Showpad App.

Required value: https://schema.showpad.com/app/manifest.v2.json

Note: If not provided, the bundle will not be recognized as an app.
Yes
schema
  • type - Defines the schema type.

    Required value: app-manifest

  • version - Specifies the version to use.

    Required value: 2
Yes
App infoappKeyA globally unique identifier for your app. We suggest making it human-readable.

Example
com.my-organisation.my-app
Yes
nameThe display name of the app.Yes
versionThe semantic version of the app.

Suggested format:

major.minor.bugfix[-patch]
Yes
description
  • short - A short description displayed in the app's Overview.
  • full - A long description displayed in the app's Details.
Yes
iconA small icon for the app. Displayed in the app's Overview.No
imagesCover images for the app. Displayed in the app's Details. Max 3 items.No
developer
  • name - The name of the company that created the app.
  • websiteUrl - (optional) A link to the website of the developer
Yes
Extension infoaddContentExtensionsAn Extension point that enables users to add content in a defined context.

Properties:
  • extensionKey - Unique identifier for the extension.
  • name - Descriptive name of the extension.
  • description - Brief overview of the extension's functionality.
  • icon - Icon representing the extension. For optimal rendering in the Asset Viewer sidebar, we recommend your icon be 48x48 pixels.
  • supportedContexts- The context for the extension.
  • resources - Location of resources associated with the extension.
No
adminSettingsAn Extension point that adds a menu item in the Admin Settings menu in the Showpad Online Platform (OP).

Properties:
  • extensionKey - Unique identifier for the extension.
  • name - Descriptive name of the extension.
  • description - Brief overview of the extension's functionality.
  • resources - Location of resources associated with the extension.
No
assetViewerExtensionAn Extension point that adds additional functionality to the Asset Viewer.

Properties:
  • extensionKey - Unique identifier for the extension.
  • name - Descriptive name of the extension.
  • description - Brief overview of the extension's functionality.
  • icon - Icon representing the extension. For optimal rendering in the Asset Viewer sidebar, we recommend your icon be 48x48 pixels.
  • resources - Location of resources associated with the extension.
No
experienceTypesAn Extension point that adds a new Experience type.

Properties:
  • extensionKey - Unique identifier for the extension.
  • name - Descriptive name of the extension.
  • description - Brief overview of the extension's functionality.
  • resources - Location of resources associated with the extension.
No
sharedSpaceExtensionsAn Extension point that enables apps to be added as Quick Actions.

Properties:
  • extensionKey - Unique identifier for the extension.
  • name - Descriptive name of the extension.
  • description - Brief overview of the extension's functionality.
  • icon - Icon representing the extension. For optimal rendering in the Asset Viewer sidebar, we recommend your icon be 48x48 pixels.
  • validDomains - URLs that permit embedding within an iFrame for rendering in the Shared Space.
No
userSettingsAn Extension point that adds a panel to the user's Settings menu in the Showpad Web App.

Properties:
  • extensionKey - Unique identifier for the extension.
  • name - Descriptive name of the extension.
  • description - Brief overview of the extension's functionality.
  • resources - Location of resources associated with the extension.
No
AppsDBsharedStoresA list of Stores that need to be created when the app is installed.

  • id- The store id
Note: If a store with the same name already exists, the app can not be installed.
Yes

Example

This manifest.json example describes three extensions that can interact with Showpad's Slack integration.

{
"$schema": "https://schema.showpad.com/app/manifest.v2.json",
"schema": {
"type": "app-manifest",
"version": 2
},
"appKey": "com.showpad.app.slack",
"name": "Slack integration",
"version": "1.0.0",
"description": {
"short": "Slack Notifications",
"full": "Allows notifications to be sent to Slack"
},
"icon": "images/slack.svg",
"images": ["images/slack.jpeg"],
"developer": {
"name": "Showpad",
"websiteUrl": "https://showpad.com"
},
"userSettings": [
{
"extensionKey": "slack-settings",
"name": "Slack",
"description": "Settings for the Slack integration",
"resources": {
"folder": "slack"
}
}
],
"adminSettings": [
{
"extensionKey": "slack-admin-settings",
"name": "Slack Admin",
"description": "Admin settings for the Slack integration",
"resources": {
"folder": "slack-admin"
}
}
],
"experienceTypes": [
{
"extensionKey": "my-experience",
"name": "My Experience",
"description": "Some description",
"resources": {
"folder": "exp-files"
}
}
],
"sharedStores": [{ "id": "my-store" }]
}