{ "$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 } } }