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.
Structure
Your manifest.json
file should follow this structure:
Property | Description | Required | |
---|---|---|---|
Schema info | $schema | Directs 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 |
| Yes | |
App info | appKey | A globally unique identifier for your app. We suggest making it human-readable. Example com.my-organisation.my-app | Yes |
name | The display name of the app. | Yes | |
version | The semantic version of the app. Suggested format: major.minor.bugfix[-patch] | Yes | |
description |
| Yes | |
icon | A small icon for the app. Displayed in the app's Overview. | No | |
images | Cover images for the app. Displayed in the app's Details. Max 3 items. | No | |
developer |
| Yes | |
Extension info | addContentExtensions | An Extension point that enables users to add content in a defined context. Properties:
| No |
adminSettings | An Extension point that adds a menu item in the Admin Settings menu in the Showpad Online Platform (OP). Properties:
| No | |
assetViewerExtension | An Extension point that adds additional functionality to the Asset Viewer. Properties:
| No | |
experienceTypes | An Extension point that adds a new Experience type. Properties:
| No | |
sharedSpaceExtensions | An Extension point that enables apps to be added as Quick Actions. Properties:
| No | |
userSettings | An Extension point that adds a panel to the user's Settings menu in the Showpad Web App. Properties:
| No | |
AppsDB | sharedStores | A list of Stores that need to be created when the app is 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" }]
}