2026-07-18 10:23:13 -04:00

268 lines
8.1 KiB
JSON

{
"$schema": "../../shared/schemas/conductor-project.schema.json",
"schemaVersion": "0.1.0",
"project": {
"id": "proj_concert_workflow_launcher",
"name": "Concert Workflow Launcher",
"description": "A UI for triggering IBM Concert RIA workflows, monitoring status, and displaying structured results.",
"pages": [
{
"id": "page_launch",
"name": "Launch Workflow",
"description": "Primary page for selecting and triggering workflows.",
"order": 0,
"components": [
{
"id": "cmp_env_dropdown",
"type": "Dropdown",
"name": "environmentDropdown",
"position": { "x": 24, "y": 24 },
"size": { "width": 320, "height": 44 },
"properties": {
"label": "Target Environment",
"placeholder": "Select environment…",
"visible": true,
"disabled": false,
"required": true,
"options": [
{ "label": "Development", "value": "dev" },
{ "label": "Staging", "value": "stg" },
{ "label": "Production", "value": "prod" }
]
},
"events": [],
"bindings": []
},
{
"id": "cmp_workflow_input",
"type": "TextInput",
"name": "workflowIdInput",
"position": { "x": 24, "y": 84 },
"size": { "width": 320, "height": 44 },
"properties": {
"label": "Workflow ID",
"placeholder": "e.g. wf-deploy-app",
"defaultValue": "",
"visible": true,
"disabled": false,
"required": true
},
"events": [],
"bindings": []
},
{
"id": "cmp_params_textarea",
"type": "TextArea",
"name": "paramsTextArea",
"position": { "x": 24, "y": 144 },
"size": { "width": 320, "height": 120 },
"properties": {
"label": "Parameters (JSON)",
"placeholder": "{ \"version\": \"1.2.3\" }",
"defaultValue": "{}",
"visible": true,
"disabled": false,
"required": false
},
"events": [],
"bindings": []
},
{
"id": "cmp_launch_btn",
"type": "Button",
"name": "launchButton",
"position": { "x": 24, "y": 284 },
"size": { "width": 160, "height": 44 },
"properties": {
"label": "Launch Workflow",
"visible": true,
"disabled": false
},
"events": [
{
"event": "onClick",
"actionId": "action_trigger_workflow",
"inputMap": {
"environment": "components.environmentDropdown.value",
"workflowId": "components.workflowIdInput.value",
"params": "components.paramsTextArea.value"
}
}
],
"bindings": []
},
{
"id": "cmp_status_panel",
"type": "StatusPanel",
"name": "statusPanel",
"position": { "x": 24, "y": 344 },
"size": { "width": 640, "height": 60 },
"properties": {
"label": "",
"visible": true,
"disabled": false
},
"events": [],
"bindings": [
{ "bindingId": "bind_status_to_panel" }
]
},
{
"id": "cmp_results_viewer",
"type": "JsonViewer",
"name": "resultsViewer",
"position": { "x": 24, "y": 420 },
"size": { "width": 640, "height": 320 },
"properties": {
"label": "Response",
"visible": true,
"disabled": false
},
"events": [],
"bindings": [
{ "bindingId": "bind_response_to_viewer" }
]
}
],
"events": []
},
{
"id": "page_history",
"name": "Execution History",
"description": "Read-only view of recent workflow executions.",
"order": 1,
"components": [
{
"id": "cmp_history_table",
"type": "Table",
"name": "historyTable",
"position": { "x": 24, "y": 24 },
"size": { "width": 900, "height": 480 },
"properties": {
"label": "Recent Executions",
"visible": true,
"disabled": false,
"columns": [
{ "key": "id", "header": "Execution ID" },
{ "key": "workflow", "header": "Workflow" },
{ "key": "environment", "header": "Environment" },
{ "key": "status", "header": "Status", "width": 100 },
{ "key": "startedAt", "header": "Started At" }
]
},
"events": [],
"bindings": [
{ "bindingId": "bind_history_to_table" }
]
}
],
"events": [
{
"event": "onLoad",
"actionId": "action_list_executions",
"inputMap": {}
}
]
}
],
"actions": [
{
"id": "action_trigger_workflow",
"name": "Trigger Workflow",
"description": "Calls the Concert RIA API to trigger a workflow run.",
"method": "POST",
"url": "https://concert.example.com/api/v1/workflows/{{workflowId}}/run",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
},
"queryParameters": {
"environment": "{{environment}}"
},
"pathParameters": {
"workflowId": "{{workflowId}}"
},
"bodyTemplate": "{\"params\": {{params}}}",
"authenticationType": "bearerToken",
"responseMapping": [
{
"source": "status",
"target": "variables.lastRunStatus"
},
{
"source": "data",
"target": "components.resultsViewer.data"
},
{
"source": "message",
"target": "components.statusPanel.message"
}
]
},
{
"id": "action_list_executions",
"name": "List Executions",
"description": "Fetches recent workflow execution records.",
"method": "GET",
"url": "https://concert.example.com/api/v1/executions",
"headers": {
"Accept": "application/json"
},
"queryParameters": {},
"pathParameters": {},
"bodyTemplate": "",
"authenticationType": "bearerToken",
"responseMapping": [
{
"source": "executions",
"target": "components.historyTable.data"
}
]
}
],
"bindings": [
{
"id": "bind_status_to_panel",
"source": "variables.lastRunStatus",
"target": "components.statusPanel.message",
"trigger": "onChange"
},
{
"id": "bind_response_to_viewer",
"source": "actions.action_trigger_workflow.response",
"target": "components.resultsViewer.data",
"trigger": "onChange"
},
{
"id": "bind_history_to_table",
"source": "actions.action_list_executions.response",
"target": "components.historyTable.data",
"trigger": "onChange"
}
],
"variables": {
"lastRunStatus": {
"type": "string",
"defaultValue": "",
"description": "Status string returned by the most recent workflow trigger."
},
"selectedEnvironment": {
"type": "string",
"defaultValue": "dev",
"description": "Currently selected target environment."
}
},
"settings": {
"theme": "system",
"defaultPageId": "page_launch",
"canvasWidth": 1280,
"canvasHeight": 900
}
}
}