Add about field in manifest of all apps. Sorted fields (#691)

* Add about field in manifest of all apps. Sorted fields

* Add missing logo

* Update apps/klaviyo/src/pages/api/manifest.ts

Co-authored-by: Adrian Pilarczyk <admin@peelar.dev>

---------

Co-authored-by: Adrian Pilarczyk <admin@peelar.dev>
This commit is contained in:
Lukasz Ostrowski 2023-06-30 14:01:46 +02:00 committed by GitHub
parent 6299e064b6
commit a1f083c0bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 176 additions and 140 deletions

View file

@ -0,0 +1,14 @@
---
"saleor-app-emails-and-messages": minor
"saleor-app-data-importer": minor
"saleor-app-products-feed": minor
"saleor-app-invoices": minor
"saleor-app-klaviyo": minor
"saleor-app-search": minor
"saleor-app-slack": minor
"saleor-app-taxes": minor
"saleor-app-cms": minor
"saleor-app-crm": minor
---
Filled "about" field in App Manifest. Dashboard will display it in app details page now.

View file

@ -10,11 +10,23 @@ import { productUpdatedWebhook } from "./webhooks/product-updated";
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "CMS", about:
tokenTargetUrl: `${context.appBaseUrl}/api/register`, "CMS App is a multi-integration app that connects Saleor with popular Content Management Systems.",
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["MANAGE_PRODUCTS"], author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.cms", id: "saleor.app.cms",
name: "CMS",
permissions: ["MANAGE_PRODUCTS"],
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version, version: packageJson.version,
webhooks: [ webhooks: [
productVariantCreatedWebhook.getWebhookManifest(context.appBaseUrl), productVariantCreatedWebhook.getWebhookManifest(context.appBaseUrl),
@ -22,16 +34,6 @@ export default createManifestHandler({
productVariantDeletedWebhook.getWebhookManifest(context.appBaseUrl), productVariantDeletedWebhook.getWebhookManifest(context.appBaseUrl),
productUpdatedWebhook.getWebhookManifest(context.appBaseUrl), productUpdatedWebhook.getWebhookManifest(context.appBaseUrl),
], ],
extensions: [],
author: "Saleor Commerce",
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;

View file

@ -8,9 +8,24 @@ import { customerMetadataUpdatedWebhook } from "./webhooks/customer-updated";
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "CRM", about: "CRM App allows synchronization of customers from Saleor to other platforms",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [
/**
* Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/
],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.crm",
name: "CRM",
permissions: [ permissions: [
"MANAGE_USERS", "MANAGE_USERS",
/** /**
@ -18,27 +33,13 @@ export default createManifestHandler({
* https://docs.saleor.io/docs/3.x/developer/permissions * https://docs.saleor.io/docs/3.x/developer/permissions
*/ */
], ],
id: "saleor.app.crm", supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version, version: packageJson.version,
webhooks: [ webhooks: [
customerCreatedWebhook.getWebhookManifest(context.appBaseUrl), customerCreatedWebhook.getWebhookManifest(context.appBaseUrl),
customerMetadataUpdatedWebhook.getWebhookManifest(context.appBaseUrl), customerMetadataUpdatedWebhook.getWebhookManifest(context.appBaseUrl),
], ],
extensions: [
/**
* Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/
],
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;

View file

@ -6,11 +6,28 @@ import packageJson from "../../../package.json";
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Data Importer", about:
tokenTargetUrl: `${context.appBaseUrl}/api/register`, "Data Importer allows batch import of shop data to Saleor from sources like CSV or Excel",
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["MANAGE_USERS"], author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [
/**
* Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/
],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.data-importer", id: "saleor.app.data-importer",
name: "Data Importer",
permissions: ["MANAGE_USERS"],
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version, version: packageJson.version,
webhooks: [ webhooks: [
/** /**
@ -19,21 +36,6 @@ export default createManifestHandler({
* https://docs.saleor.io/docs/3.x/developer/api-reference/objects/webhook * https://docs.saleor.io/docs/3.x/developer/api-reference/objects/webhook
*/ */
], ],
extensions: [
/**
* Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/
],
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;

View file

@ -6,31 +6,33 @@ import packageJson from "../../../package.json";
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Emails & Messages", about:
tokenTargetUrl: `${context.appBaseUrl}/api/register`, "Emails & Messages App is a multi-vendor Saleor app that integrates with notification services.",
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["MANAGE_ORDERS", "MANAGE_USERS"], author: "Saleor Commerce",
id: "saleor.app.emails-and-messages", brand: {
version: packageJson.version, logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [ extensions: [
/** /**
* Optionally, extend Dashboard with custom UIs * Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps * https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/ */
], ],
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps", homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/", id: "saleor.app.emails-and-messages",
author: "Saleor Commerce", name: "Emails & Messages",
permissions: ["MANAGE_ORDERS", "MANAGE_USERS"],
/** /**
* Requires 3.10 due to invoices event payload - in previous versions, order reference was missing * Requires 3.10 due to invoices event payload - in previous versions, order reference was missing
*/ */
requiredSaleorVersion: ">=3.10 <4", requiredSaleorVersion: ">=3.10 <4",
brand: { supportUrl: "https://github.com/saleor/apps/discussions",
logo: { tokenTargetUrl: `${context.appBaseUrl}/api/register`,
default: `${context.appBaseUrl}/logo.png`, version: packageJson.version,
},
},
}; };
return manifest; return manifest;

View file

@ -8,22 +8,29 @@ import { REQUIRED_SALEOR_VERSION } from "../../saleor-app";
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Invoices", about:
tokenTargetUrl: `${context.appBaseUrl}/api/register`, "An app that generates PDF invoices for Orders and stores them in Saleor file storage.",
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["MANAGE_ORDERS"],
id: "saleor.app.invoices",
version: packageJson.version,
webhooks: [invoiceRequestedWebhook.getWebhookManifest(context.appBaseUrl)],
extensions: [],
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
author: "Saleor Commerce", author: "Saleor Commerce",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.invoices",
name: "Invoices",
permissions: ["MANAGE_ORDERS"],
/** /**
* Requires 3.10 due to invoices event payload - in previous versions, order reference was missing * Requires 3.10 due to invoices event payload - in previous versions, order reference was missing
*/ */
requiredSaleorVersion: REQUIRED_SALEOR_VERSION, requiredSaleorVersion: REQUIRED_SALEOR_VERSION,
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version,
webhooks: [invoiceRequestedWebhook.getWebhookManifest(context.appBaseUrl)],
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;

View file

@ -12,27 +12,29 @@ const handler = createManifestHandler({
const { appBaseUrl } = context; const { appBaseUrl } = context;
return { return {
id: "saleor.app.klaviyo", about:
version: pkg.version, "Klaviyo integration allows sending Klaviyo notifications on Saleor events.",
name: "Klaviyo",
permissions: ["MANAGE_USERS", "MANAGE_ORDERS"],
appUrl: appBaseUrl, appUrl: appBaseUrl,
tokenTargetUrl: `${appBaseUrl}/api/register`,
webhooks: [
customerCreatedWebhook.getWebhookManifest(appBaseUrl),
fulfillmentCreatedWebhook.getWebhookManifest(appBaseUrl),
orderCreatedWebhook.getWebhookManifest(appBaseUrl),
orderFullyPaidWebhook.getWebhookManifest(appBaseUrl),
],
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
author: "Saleor Commerce", author: "Saleor Commerce",
brand: { brand: {
logo: { logo: {
default: `${context.appBaseUrl}/logo.png`, default: `${context.appBaseUrl}/logo.png`,
}, },
}, },
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.klaviyo",
name: "Klaviyo",
permissions: ["MANAGE_USERS", "MANAGE_ORDERS"],
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${appBaseUrl}/api/register`,
version: pkg.version,
webhooks: [
customerCreatedWebhook.getWebhookManifest(appBaseUrl),
fulfillmentCreatedWebhook.getWebhookManifest(appBaseUrl),
orderCreatedWebhook.getWebhookManifest(appBaseUrl),
orderFullyPaidWebhook.getWebhookManifest(appBaseUrl),
],
}; };
}, },
}); });

View file

@ -11,11 +11,22 @@ import { webhookProductVariantUpdated } from "./webhooks/product_variant_updated
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Product Feed", about: "Generate feeds consumed by Merchant Platforms",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["MANAGE_PRODUCTS"], author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.product-feed", id: "saleor.app.product-feed",
name: "Product Feed",
permissions: ["MANAGE_PRODUCTS"],
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version, version: packageJson.version,
webhooks: [ webhooks: [
webhookProductCreated.getWebhookManifest(context.appBaseUrl), webhookProductCreated.getWebhookManifest(context.appBaseUrl),
@ -24,16 +35,6 @@ export default createManifestHandler({
webhookProductVariantDeleted.getWebhookManifest(context.appBaseUrl), webhookProductVariantDeleted.getWebhookManifest(context.appBaseUrl),
webhookProductVariantUpdated.getWebhookManifest(context.appBaseUrl), webhookProductVariantUpdated.getWebhookManifest(context.appBaseUrl),
], ],
extensions: [],
author: "Saleor Commerce",
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;

View file

@ -12,9 +12,24 @@ import { webhookProductVariantUpdated } from "./webhooks/saleor/product_variant_
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Search", about:
tokenTargetUrl: `${context.appBaseUrl}/api/register`, "Search App is a multi-integration app that connects your Saleor store with search engines.",
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [
/**
* Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/
],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.search",
name: "Search",
permissions: [ permissions: [
/** /**
* Set permissions for app if needed * Set permissions for app if needed
@ -23,7 +38,8 @@ export default createManifestHandler({
"MANAGE_PRODUCTS", "MANAGE_PRODUCTS",
"MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES", "MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES",
], ],
id: "saleor.app.search", supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version, version: packageJson.version,
webhooks: [ webhooks: [
/** /**
@ -38,20 +54,6 @@ export default createManifestHandler({
webhookProductVariantDeleted.getWebhookManifest(context.appBaseUrl), webhookProductVariantDeleted.getWebhookManifest(context.appBaseUrl),
webhookProductVariantUpdated.getWebhookManifest(context.appBaseUrl), webhookProductVariantUpdated.getWebhookManifest(context.appBaseUrl),
], ],
extensions: [
/**
* Optionally, extend Dashboard with custom UIs
* https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps
*/
],
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;

View file

@ -7,23 +7,25 @@ import { orderCreatedWebhook } from "./webhooks/order-created";
const handler = createManifestHandler({ const handler = createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Slack", about:
tokenTargetUrl: `${context.appBaseUrl}/api/register`, "Saleor Slack integration allows you to get notifications on Slack channel from Saleor events.",
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["MANAGE_ORDERS"],
id: "saleor.app.slack",
version: packageJson.version,
webhooks: [orderCreatedWebhook.getWebhookManifest(context.appBaseUrl)],
extensions: [],
author: "Saleor Commerce", author: "Saleor Commerce",
supportUrl: "https://github.com/saleor/apps/discussions",
homepageUrl: "https://github.com/saleor/apps",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
brand: { brand: {
logo: { logo: {
default: `${context.appBaseUrl}/logo.png`, default: `${context.appBaseUrl}/logo.png`,
}, },
}, },
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.slack",
name: "Slack",
permissions: ["MANAGE_ORDERS"],
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version,
webhooks: [orderCreatedWebhook.getWebhookManifest(context.appBaseUrl)],
}; };
return manifest; return manifest;

View file

@ -11,11 +11,23 @@ import { REQUIRED_SALEOR_VERSION } from "../../../saleor-app";
export default createManifestHandler({ export default createManifestHandler({
async manifestFactory(context) { async manifestFactory(context) {
const manifest: AppManifest = { const manifest: AppManifest = {
name: "Taxes", about: "Taxes App allows dynamic taxes calculations for orders",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
appUrl: context.appBaseUrl, appUrl: context.appBaseUrl,
permissions: ["HANDLE_TAXES", "MANAGE_ORDERS"], author: "Saleor Commerce",
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
extensions: [],
homepageUrl: "https://github.com/saleor/apps",
id: "saleor.app.taxes", id: "saleor.app.taxes",
name: "Taxes",
permissions: ["HANDLE_TAXES", "MANAGE_ORDERS"],
requiredSaleorVersion: REQUIRED_SALEOR_VERSION,
supportUrl: "https://github.com/saleor/apps/discussions",
tokenTargetUrl: `${context.appBaseUrl}/api/register`,
version: packageJson.version, version: packageJson.version,
webhooks: [ webhooks: [
orderCalculateTaxesSyncWebhook.getWebhookManifest(context.appBaseUrl), orderCalculateTaxesSyncWebhook.getWebhookManifest(context.appBaseUrl),
@ -23,17 +35,6 @@ export default createManifestHandler({
orderCreatedAsyncWebhook.getWebhookManifest(context.appBaseUrl), orderCreatedAsyncWebhook.getWebhookManifest(context.appBaseUrl),
orderFulfilledAsyncWebhook.getWebhookManifest(context.appBaseUrl), orderFulfilledAsyncWebhook.getWebhookManifest(context.appBaseUrl),
], ],
extensions: [],
homepageUrl: "https://github.com/saleor/apps",
supportUrl: "https://github.com/saleor/apps/discussions",
author: "Saleor Commerce",
dataPrivacyUrl: "https://saleor.io/legal/privacy/",
requiredSaleorVersion: REQUIRED_SALEOR_VERSION,
brand: {
logo: {
default: `${context.appBaseUrl}/logo.png`,
},
},
}; };
return manifest; return manifest;