App manifest

Edit on GitHub

App manifest represents a set of JSON files that contain all the necessary information to register an application in the Application Tenant Registry Service (ATRS) and to display information about the application in the Application Catalog (AppCatalog).

For the manifest, make sure to follow these conditions:

  • For each locale, a separate manifest file must be created. The file name must be the same as the locale name, for example, en_US.json.
  • The default directory for all the manifest files (all locales) is /config/app/manifest.
Manifest example
{
  "name": "App name",
  "provider": "App provider",
  "descriptionShort": "App short description",
  "description": "App long description",
  "url": "https://www.app-url.com",
  "is_available": true,
  "business_models": [
    "B2B",
    "B2C"
  ],
  "categories": [
    "PAYMENT"
  ],
  "pages": {
    "Overview": [
      {
        "title": "Advantages",
        "type": "list",
        "data": [
          "Advantage 1",
          "Advantage 2"
        ]
      },
      {
		"title": "Features",
		"type": "list",
		"data": [
		  "Feature 1",
		  "Feature 2"
		]
	  }
    ]},
  "assets": [
    {
      "type": "icon",
      "url": "/assets/images/app_name/logo.svg"
    },
    {
      "type": "image",
      "url": "/assets/images/app_name/gallery/app_picture_1.jpeg"
    },
    {
      "type": "image",
      "url": "/assets/images/app_name/gallery/app_picture_1.png"
    }
  ],
  "labels": [
    "Gold Partner"
  ],
  "resources": [
    {
      "title": "User Guide",
      "url": "https://link-to-user-guide.com",
      "type": "internal-documentation"
    }
    {
      "title": "Homepage",
      "url": "https://www.app-name.com/DE-de",
      "type": "homepage"
    }
  ]
}

Manifest file parts

Name Description Example
name The app’s name. “name”: “Payone”
provider App provider’s name (not visible on AppCatalog). “provider”: “Payone”
descriptionShort Short description displayed on the application tile in the application catalog page and at the top of the application detail page. “descriptionShort”: “A single payment platform to accept payments anywhere on any device.”
description Full description of the app. New line symbols and HTML tags are not allowed. “description”: “BS PAYONE GmbH is headquartered in Frankfurt am Main and is one of the leading omnichannel-payment providers in Europe. In addition to providing customer support to numerous Savings Banks (Sparkasse) the full-service payment service provider also provides cashless payment transaction services to more than 255,000 customers from stationary trade to the automated and holistic processing of e-commerce and mobile payments.”
url URL to a homepage of the application provider (not visible in the AppCatalog). “url”: “https://www.payone.com
is_available Shows if the application is currently available. Possible values:
  • false—the application is not available, it’s not possible to connect and configure it.
  • true—the application is available, it’s possible to connect, configure, and use it.
“is_available”: true
business_models An array of suite types that are compatible with the application. Possible values:
  • B2C
  • B2B
  • B2C_MARKETPLACE
  • B2B_MARKETPLACE
See business_models example under this table.
categories An array of categories that the application belongs to. Possible values:
  • BI_ANALYTICS
  • CUSTOMER
  • LOYALTY
  • PAYMENT
  • PRODUCT_INFORMATION_SYSTEM
  • SEARCH
  • USER_GENERATED_CONTENT
See categories example under this table.
pages Adds additional content to the application detail page. This part contains an object with a page type and its blocks.
Possible page types (object keys):
  • Overview
  • Legal
Each page can contain no or multiple blocks. Each block should be specified by an object with the following keys:
  • title—header of the block;
  • type—the way the data is displayed. Possible values:
    • list
    • text
  • data—information that is displayed inside the block. Can be a string, if type=text, or an array of strings if type=list.
See pages example under this table.
assets An array of objects represented as application assets. Each object has the following keys:
  • type—type of the asset. Possible values:
    • icon—displayed on the application tile and on top of the application detail page.
    • image—displayed in a carousel on the application detail page.
    • video—displayed in a carousel on the application detail page. Allows only videos hosted on https://wistia.com.
  • url—a relative path to the asset. Possible extensions:
See assets example under this table.
labels An array of strings. Displays label icons on the application detail page according to the label. Possible values:
  • Silver Partner
  • Gold Partner
  • New
  • Popular
  • Free Trial
See labels example under this table.
resources An array of objects represented as application resources (links, documents). The resource object has the following keys:
  • title—name of the resource
  • url—full URL to the resource
  • type—type of the resource. Optional. The type affects a displayed icon. Possible values:
    • internal-documentation
    • homepage
    • user-documentation
    • developer-documentation
    • release-notes
  • fileType—type of the resource file (in case if the url leads to a file and if type=internal-documentation). Optional. The files are displayed directly in the AppCatalog, without redirecting to another page. Possible values:
    • pdf
    • markdown
See resources example under this table.
business_models example
"business_models": [
  "B2B",
  "B2C"
]
categories example
"categories": [
  "PAYMENT"
]
pages example
"pages": {
  "Overview": [
    {
      "title": "Advantages",
      "type": "list",
      "data": [
        "One solution, one partner, one contract. Simple & efficient. Technical processing and financial services from a single source.",
        "International payment processing. Access to international and local payment methods.",
        "Automatic debtor management. Effective accounting support through transaction allocation and reconciliation.",
        "Credit entries independent of payment type. Fast returns management. With automated refunds.",
        "Short time to market thanks to plug'n pay 1-click checkout and seamless integration. For an increasing conversion rate."
      ]
    },
    {
	  "title": "Available Payment Methods (Credit Card)",
	  "type": "list",
	  "data": [
	    "Authorization",
	    "Preauthorization and Capture",
	    "3DS",
	    "PCI DSS Compliance via SAQ A"
	  ]
	},
	{
	  "title": "Available Payment Methods (PayPal)",
	  "type": "text",
	  "data": "Preauthorization and Capture"
	}
]}
assets example
"assets": [
  {
    "type": "icon",
    "url": "/assets/images/payone/logo.svg"
  },
  {
    "type": "image",
    "url": "/assets/images/payone/gallery/Payone_2.jpeg"
  },
  {
    "type": "image",
    "url": "/assets/images/payone/gallery/Payone_3.png"
  }
]
labels example
"labels": [
  "Gold Partner"
]
resources example
"resources": [
  {
    "title": "User Guide",
    "url": "https://raw.githubusercontent.com/spryker/spryker-docs/aop-docs/docs/acp/user/apps/payone.md",
    "type": "internal-documentation",
    "fileType": "markdown"
  },
  {
    "title": "Homepage",
    "url": "https://www.payone.com/DE-de",
    "type": "homepage"
  }
]

Here is how these parts are integrated in the application tile:

application-tile

Here is how these parts are integrated on the application detail page:

application-details-page

What’s next

App configuration manifests