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

What you'll learn:

  • The required and optional properties in manifest.json
  • How to declare extension types and link them to your app's resources
  • How to configure optional AppsDB shared stores
TL;DR
  • Always required: $schema, schema, appKey, name, version, description, developer, and at least one extension
  • Extension properties: experienceTypes, adminSettings, userSettings, sharedSpaceExtensions, assetViewerExtensions, addContentExtensions
  • Data stores: sharedStores (optional)

Structure

Your manifest.json file should follow this structure:

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": "Acme Corp",
"websiteUrl": "https://example.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" }]
}

Was this page helpful?