cap-apps-manifest
SKILL.md
manifest.json
The manifest.json file is critical - it declares all external resources your app needs. Domo uses this to:
- Know which datasets, collections, workflows, and code engine functions to connect
- Map aliases (used in your code) to actual Domo resource IDs (configured at publish time)
Basic structure
{
"name": "My App Name",
"version": "1.0.0",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"fullpage": true,
"size": {
"width": 4,
"height": 3
},
"datasetsMapping": [],
"collections": [],
"workflowMapping": [],
"packagesMapping": []
}
Key properties
name/version- App metadataid- Generated on first publish (see deployment section)fullpage- Settruefor full-page appssize- Card dimensions (width/height in grid units)datasetsMapping- Datasets the app can querycollections- AppDB collections for storageworkflowMapping- Workflows the app can triggerpackagesMapping- Code Engine function mappings and contracts
Required files
manifest.json- App configuration (required)thumbnail.png- App thumbnail image (required, must be 300x300 pixels, must be alongside manifest.json)
Dataset Mapping Structure
{
"datasetsMapping": [
{
"alias": "transactions", // Used in code: new Query().fetch('transactions')
"dataSetId": "abc-123-def-456", // ⚠️ Use 'dataSetId' NOT 'id'
"fields": [] // ⚠️ REQUIRED - must be present even if empty
}
]
}
Critical points:
- Use
dataSetId(notid) for the dataset identifier fieldsarray is required - must be present even if empty[]- Omitting
fieldscauses:Cannot read properties of undefined (reading 'map')
Code Engine packagesMapping structure
{
"packagesMapping": [
{
"name": "myPackage",
"alias": "myFunction",
"packageId": "00000000-0000-0000-0000-000000000000",
"version": "1.0.0",
"functionName": "myFunction",
"parameters": [
{
"name": "param1",
"displayName": "param1",
"type": "decimal",
"value": null,
"nullable": false,
"isList": false,
"children": [],
"entitySubType": null,
"alias": "param1"
}
],
"output": {
"name": "result",
"displayName": "result",
"type": "number",
"value": null,
"nullable": false,
"isList": false,
"children": [],
"entitySubType": null,
"alias": "result"
}
}
]
}
Code Engine manifest gotchas:
- Use
packagesMapping(withs), notpackageMapping. - Include full contract fields on each parameter and output.
- Ensure parameter names/types/nullability match what app code actually sends.
Weekly Installs
3
Repository
stahura/domo-ai…be-rulesGitHub Stars
10
First Seen
1 day ago
Security Audits
Installed on
windsurf3
amp3
cline3
opencode3
cursor3
kimi-cli3