Building your app
Manifest
Every app emits a manifest.json describing its capabilities:
{
"moduleId": "warehouse",
"displayName": "Warehouse Manager",
"version": "1.0.0",
"category": "logistics",
"integrationType": "embedded",
"description": "...",
"scopes": [
{ "key": "education.students.read", "required": true, "reason": "to list student rosters" },
{ "key": "education.students.write", "required": false, "reason": "to record results" }
]
}
External apps add external block; notification apps add notification
block; payment apps add payment block (see above). Embedded apps that
extend the student profile add a studentProfile block (see Extending the
student profile). An app a complex may
install, managed, in its schools — or that a complex's install places in its
schools — adds a hierarchy block (see A complex installs your app in its
schools
and A complex's install covers its schools).
Manifests are generated automatically from the partner-portal form fields — you don't write them by hand except in advanced cases.