cap-apps-workflow
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRule: Domo App Platform Workflows (Toolkit-First)
规则:Domo应用平台工作流(工具包优先)
This rule is toolkit-first. Use for workflow operations in apps.
WorkflowClientLegacy endpoint-first guidance has been archived to.archive/legacy-rules/domo-workflow.md
本规则为工具包优先。在应用中使用执行工作流操作。
WorkflowClient旧版的端点优先指南已归档至。archive/legacy-rules/domo-workflow.md
Canonical Client
标准客户端
bash
yarn add @domoinc/toolkittypescript
import { WorkflowClient } from '@domoinc/toolkit';
const startResponse = await WorkflowClient.startModel('myWorkflow', {
inputVar: 'value',
anotherVar: 123
});
const instance = startResponse.body;Check status:
typescript
const statusResponse = await WorkflowClient.getInstance('myWorkflow', instance.id);
const status = statusResponse.body.status;bash
yarn add @domoinc/toolkittypescript
import { WorkflowClient } from '@domoinc/toolkit';
const startResponse = await WorkflowClient.startModel('myWorkflow', {
inputVar: 'value',
anotherVar: 123
});
const instance = startResponse.body;检查状态:
typescript
const statusResponse = await WorkflowClient.getInstance('myWorkflow', instance.id);
const status = statusResponse.body.status;Correct method usage (aliases, not UUIDs)
正确的方法使用(别名,而非UUID)
WorkflowClientmanifest.jsonworkflowMappingtypescript
await WorkflowClient.startModel('myWorkflow', { inputVar: 'value' });
await WorkflowClient.getAllModels(); // or getAllModels(true)
await WorkflowClient.getModelDetails('myWorkflow');
await WorkflowClient.getInstance('myWorkflow', 'instance-id');WorkflowClientmanifest.jsonworkflowMappingtypescript
await WorkflowClient.startModel('myWorkflow', { inputVar: 'value' });
await WorkflowClient.getAllModels(); // or getAllModels(true)
await WorkflowClient.getModelDetails('myWorkflow');
await WorkflowClient.getInstance('myWorkflow', 'instance-id');Manifest Requirements
清单要求
Workflows still require entries in .
workflowMappingmanifest.jsonjson
{
"workflowMapping": [
{
"alias": "sendReport",
"modelId": "d1373fa7-9df8-45d3-80ba-f931dda169b4",
"parameters": [
{ "aliasedName": "reportType", "type": "string", "list": false, "children": null },
{ "aliasedName": "recipients", "type": "string", "list": true, "children": null }
]
}
]
}工作流仍需在中配置条目。
manifest.jsonworkflowMappingjson
{
"workflowMapping": [
{
"alias": "sendReport",
"modelId": "d1373fa7-9df8-45d3-80ba-f931dda169b4",
"parameters": [
{ "aliasedName": "reportType", "type": "string", "list": false, "children": null },
{ "aliasedName": "recipients", "type": "string", "list": true, "children": null }
]
}
]
}Card mapping and input contract reminder
卡片映射与输入契约提醒
- In Domo, map the app card to the intended workflow model in the card/app configuration UI (not just in source files).
- Confirm the workflow start-node input parameters are configured in the workflow and match the payload keys your app sends in .
WorkflowClient.startModel(workflowAlias, variables) - If parameter names/types/list settings do not match, workflow starts may fail or silently mis-handle inputs.
- When recommending or generating calls, the agent must explicitly tell the user the exact input variable names and types being passed.
WorkflowClient.startModel(...)
- 在Domo中,需在卡片/应用配置UI中将应用卡片映射到目标工作流模型(而非仅在源文件中配置)。
- 确认工作流起始节点的输入参数已在工作流中配置,且与应用在中发送的负载键名匹配。
WorkflowClient.startModel(workflowAlias, variables) - 如果参数名称/类型/列表设置不匹配,工作流启动可能失败或静默处理输入错误。
- 当推荐或生成调用时,代理必须明确告知用户传递的输入变量的准确名称和类型。
WorkflowClient.startModel(...)
Error Handling Pattern
错误处理模式
typescript
async function runWorkflow(workflowAlias: string, payload: Record<string, unknown>) {
try {
const response = await WorkflowClient.startModel(workflowAlias, payload);
return response.body;
} catch (error) {
console.error(`WorkflowClient.startModel failed for ${workflowAlias}`, error);
throw error;
}
}typescript
async function runWorkflow(workflowAlias: string, payload: Record<string, unknown>) {
try {
const response = await WorkflowClient.startModel(workflowAlias, payload);
return response.body;
} catch (error) {
console.error(`WorkflowClient.startModel failed for ${workflowAlias}`, error);
throw error;
}
}Canonical Rules References
标准规则参考
- Toolkit workflow methods:
.cursor/rules/04-toolkit.mdc - Workflow mapping requirements:
.cursor/rules/06-manifest.mdc - Runtime caveats:
.cursor/rules/09-gotchas.mdc
- 工具包工作流方法:
.cursor/rules/04-toolkit.mdc - 工作流映射要求:
.cursor/rules/06-manifest.mdc - 运行时注意事项:
.cursor/rules/09-gotchas.mdc
Checklist
检查清单
- is configured
workflowMapping - App card is mapped to the correct workflow in Domo UI
- Workflow start-node input parameters match app payload keys/types
- Calls use alias-based methods (
WorkflowClient,startModel,getModelDetails)getInstance - Agent states exact input variable names/types in guidance
startModel - Code passes workflow aliases (from ) rather than workflow UUIDs
workflowMapping.alias - Response parsing uses
response.body - Long-running workflow UX includes status checks or async user feedback
- 已配置
workflowMapping - 已在Domo UI中将应用卡片映射到正确的工作流
- 工作流起始节点输入参数与应用负载键名/类型匹配
- 调用使用基于别名的方法(
WorkflowClient、startModel、getModelDetails)getInstance - 代理在指导中明确说明的输入变量名称/类型
startModel - 代码传递的是工作流别名(来自)而非工作流UUID
workflowMapping.alias - 响应解析使用
response.body - 长时间运行的工作流用户界面包含状态检查或异步用户反馈