Manifest Reference
Extension manifest.json schema and fields
Overview
The manifest.json file is the metadata
document that describes your extension to the Angage Marketplace. It declares your
extension's identity, required scopes, hooks, UI extensions, and webhooks. The current
schema version is 1.0.
Required Fields
name— string, max 255 characters. Display name of the extension.slug— string, max 100 characters, must match^[a-z0-9\-]+$. Unique URL identifier.version— string, semantic version (e.g.1.0.0or1.0.0-beta.1).description— string, max 2000 characters.author— object containingname,email, and optionalurl.category— string, max 100 characters.pricing— object withtype: one offree,paid, orfreemium.
Optional Fields
icon— URL to an icon image.requires.angage_erp— minimum required ERP version.requires.api_version— required platform API version.scopes— array of OAuth scopes the extension requires.optional_scopes— array of additional scopes the user may grant.hooks— object declaring action and filter hooks.ui_extensions— array describing where the extension renders UI inside the ERP.webhooks— array of webhook subscriptions.settings_url— URL to the extension's settings page.
OAuth Scopes
The following scopes are recognised by the platform:
invoices:readinvoices:writepayments:readpayments:writecustomers:readcustomers:writeproducts:readproducts:writeinventory:readinventory:writeorders:readorders:writereports:readsettings:readsettings:writewebhooks:manage
Webhook Events
Extensions may subscribe to the following events:
app.installedapp.uninstalledapp.activatedapp.deactivatedapp.scopes_updatedinvoice.createdinvoice.updatedinvoice.paidpayment.receivedcustomer.createdcustomer.updatedorder.createdorder.updatedproduct.createdproduct.updatedinventory.adjusted
UI Extension Locations
UI extensions can be declared at any of these locations:
dashboard.widgetinvoice.sidebarinvoice.line_itemcustomer.tabproduct.tabsettings.sectionnavigation.menu_itemorder.sidebarreport.section
Complete Example
{
"name": "Acme Invoice Helper",
"slug": "acme-invoice-helper",
"version": "1.0.0",
"description": "Adds smart totals and reminders to invoices.",
"author": {
"name": "Acme Pty Ltd",
"email": "[email protected]",
"url": "https://acme.example"
},
"category": "Accounting",
"icon": "https://acme.example/icon.png",
"pricing": {
"type": "freemium"
},
"requires": {
"angage_erp": "12.0.0",
"api_version": "v1"
},
"scopes": ["invoices:read", "invoices:write", "customers:read"],
"optional_scopes": ["payments:read"],
"hooks": {
"action": ["invoice.after_save"],
"filter": ["invoice.totals"]
},
"ui_extensions": [
{
"location": "invoice.sidebar",
"type": "iframe",
"url": "https://acme.example/embed/invoice"
}
],
"webhooks": [
{ "event": "invoice.created", "url": "https://acme.example/webhooks/invoice" },
{ "event": "tenant.data_request", "url": "https://acme.example/webhooks/data-request" },
{ "event": "tenant.data_redact", "url": "https://acme.example/webhooks/data-redact" }
],
"settings_url": "https://acme.example/settings"
}