Skip to main content

App Manifests

Manifest Format

The App Manifest is a JSON payload that describes the application metadata, its permissions, and webhook subscriptions.

See Manifest Object for reference.

Example of a manifest:

{
"id": "example.app.wonderful",
"version": "1.0.0",
"requiredSaleorVersion": "^3.13",
"name": "My Wonderful App",
"author": "My Wonderful Company",
"about": "My Wonderful App is a wonderful App for Saleor.",

"permissions": ["MANAGE_USERS", "MANAGE_STAFF"],

"appUrl": "http://localhost:3001/app",
"configurationUrl": "htpp://localhost:3001/configuration",
"tokenTargetUrl": "http://localhost:3001/register",

"dataPrivacy": "Lorem ipsum",
"dataPrivacyUrl": "http://localhost:3001/app-data-privacy",
"homepageUrl": "http://localhost:3001/homepage",
"supportUrl": "http://localhost:3001/support",
"brand": {
"logo": {
"default": "http://localhost:3001/default-logo.png"
}
},
"extensions": [
{
"label": "Create with Sample app",
"mount": "PRODUCT_OVERVIEW_CREATE",
"target": "POPUP",
"permissions": ["MANAGE_PRODUCTS"],
"url": "https://example.com/extension/"
},
{
"label": "Create with App and redirect",
"mount": "PRODUCT_OVERVIEW_CREATE",
"target": "APP_PAGE",
"permissions": ["MANAGE_PRODUCTS"],
"url": "/extension/redirect"
}
],
"webhooks": [
{
"name": "Order created",
"asyncEvents": ["ORDER_CREATED"],
"query": "subscription { event { ... on OrderCreated { order { id }}}}",
"targetUrl": "https://example.com/api/webhooks/order-created",
"isActive": false
},
{
"name": "Multiple order's events",
"asyncEvents": ["ORDER_CREATED", "ORDER_FULLY_PAID"],
"query": "subscription { event { ... on OrderCreated { order { id }} ... on OrderFullyPaid { order { id }}}}",
"targetUrl": "https://example.com/api/webhooks/order-event",
"isActive": true
}
]
}
Expand ▼

Apps can be installed via manifest using appFetchManifest mutation.

Typings

App Manifest is typed in TypeScript in @saleor/app-sdk package.

Use it with

import { AppManifest } from '@saleor/app-sdk/types'