236 lines
7.2 KiB
JSON
236 lines
7.2 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"
|
|
}
|
|
],
|
|
"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": []
|
|
},
|
|
{
|
|
"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": []
|
|
}
|
|
],
|
|
"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": []
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"event": "onLoad",
|
|
"actionId": "action_list_executions"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
|
|
"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": "{{components.environmentDropdown.value}}"
|
|
},
|
|
"pathParameters": {
|
|
"workflowId": "{{components.workflowIdInput.value}}"
|
|
},
|
|
"bodyTemplate": "{\"params\": {{components.paramsTextArea.value}}}",
|
|
"authenticationType": "bearerToken"
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
],
|
|
|
|
"bindings": [
|
|
{
|
|
"id": "bind_status_to_panel",
|
|
"source": "actions.action_trigger_workflow.response.body.status",
|
|
"target": "components.statusPanel.value",
|
|
"trigger": "onSuccess"
|
|
},
|
|
{
|
|
"id": "bind_response_to_viewer",
|
|
"source": "actions.action_trigger_workflow.response",
|
|
"target": "components.resultsViewer.value",
|
|
"trigger": "onSuccess"
|
|
},
|
|
{
|
|
"id": "bind_history_to_table",
|
|
"source": "actions.action_list_executions.response",
|
|
"target": "components.historyTable.rows",
|
|
"trigger": "onSuccess"
|
|
}
|
|
],
|
|
|
|
"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
|
|
}
|
|
}
|
|
}
|