Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved. Server UI →

product: maestro audience: test-developer, operator, ai-assistant authority: normative

Maestro UI Workflows

This file documents every page in the Maestro web application and the workflows an operator or developer follows to use them.


Page Path Purpose
Test Monitor /test-monitor Start a test execution and watch it run step-by-step
Test Results /test-results Search and review historical test reports
YAML Validator /yaml-validator Check a YAML test definition for errors before committing
Packages /packages Browse, download and manage test packages
Help /help In-application documentation
Swagger <API URL>/swagger Interactive API documentation (includes Config endpoints)

SignalR Connection Indicator

The UI maintains a persistent SignalR WebSocket connection to the local API. A coloured dot on each page shows the state:

  • ๐ŸŸข Connected โ€” live updates are flowing
  • ๐Ÿ”ด Disconnected โ€” the connection was lost; the page reconnects automatically

If the dot stays red for more than a few seconds, verify the API is running at the configured address.


Test Monitor (/test-monitor)

The Test Monitor page lets you start a test execution, track its progress in real time, and review measurements as they arrive.

Starting a Test

Fill in the form at the top of the page and click Start Test.

Field Required Description
Test File Path Yes Path to the .yaml test definition on the API server, relative to the server's TestFiles directory. Example: TestFiles/voltage-test.yaml
Serial Number Yes The device under test identifier. Stored with the result and used for later searches. Example: UNIT-001
Operator ID No Identifies the person running the test. Stored in the result. Default: operator1
Station ID No Identifies the test station. Stored in the result. Default: station-1

โ˜… Composite file indicator โ€” files that contain at least one type: sequence step (i.e. they call sub-sequences) are prefixed with โ˜… in the dropdown. This is a convenience marker to help you identify top-level orchestrator files at a glance. Sub-sequence files that are meant to be called by a composite file โ€” but are also valid standalone tests โ€” have no prefix. See yaml/standalone-composite-pattern.md for details on the composite pattern.

File Validation

As you type in the Test File Path box, the UI automatically checks whether that file exists on the server:

  • โœ… Green border + "File found on server" โ€” path is valid and the test can be started
  • โŒ Red border + "File not found on server" โ€” check the path and try again

Start Button

The Start Test button is enabled only when:

  • The SignalR connection is active (green dot)
  • Serial Number is filled in
  • The test file exists on the server

Execution Status Banner

While a test is running, a banner below the form shows the current state.

Status Meaning
Running The engine is actively executing steps
Completed All steps finished; see the verdict for pass/fail
Failed The execution was aborted due to an error
Aborted You clicked Abort or the runner disconnected

The banner colour matches the verdict: green for PASS, red for FAIL, yellow for UNDETERMINED.

Aborting a Test

Click Abort in the status banner to send a stop signal to the runner. The current step is allowed to finish before the execution halts. Results up to that point are still saved.

The Steps Panel

The Test Steps panel on the left shows every step in the test in execution order.

Each row shows:

Column Description
Expand icon (โ–ถ) Click to expand measurement details for this step
Status icon โ—‹ Pending ยท โณ Running ยท โœ“ Completed ยท โŠ˜ Skipped ยท โœ• Aborted
Name Step name from the YAML definition
Time / Value Elapsed seconds for completed steps, or the measured value for measurement steps
Verdict PASS / FAIL / UNDETERMINED (colour-coded)

Click any row with a measurement count badge to expand it. Expanded rows show each individual measurement with its actual value, lower limit, upper limit, and pass/fail state.

If a step fails with an exception, the error message is shown inline in red beneath the step name.

The Variables Panel

The Variables panel on the right shows all runtime variables defined in the test, updated live as steps produce values. This includes {{variable}} substitution placeholders, computed values, and dynamic limits.

The Logs Panel

The Logs panel shows log entries captured from test code stdout/stderr โ€” useful for debugging or understanding exactly what happened at each point.

Level Icon Meaning
Information โ„น Normal progress messages
Warning โš  Non-fatal issues
Error โœ— Failures and exceptions

See ../../DEVELOPERS_GUIDE.md for how to emit log entries from test code.

After the Test

When execution finishes, the result is automatically saved. You can find it in Test Results by searching for the serial number or test name.

The Test Monitor page retains the last execution state until you start a new test or reload the page.


Test Results (/test-results)

The Test Results page lets you search the historical archive of test executions and open detailed reports for any individual run.

Searching

Fill in one or more search fields and click Search. All fields are optional โ€” leaving everything blank returns the most recent results.

Field Description
Serial Number Filter by the device serial number. Supports partial match.
Test Name Filter by the test definition name. Supports partial match.
Verdict All, PASS, FAIL, or UNDETERMINED
From Date Only show executions that started on or after this date/time
To Date Only show executions that started on or before this date/time
Operator ID Filter by the operator who ran the test
Station ID Filter by the test station

Click Clear to reset all fields.

Results Table

The table shows one row per test execution.

Column Description
Test Name Name from the YAML definition
Serial Number Device under test
Start Time When the execution began
Duration Total elapsed time
Verdict PASS / FAIL / UNDETERMINED (colour-coded)
Operator Who ran the test
Station Which station it ran on
Detail Button to open the report

If more than one page of results is available, navigation buttons appear below the table.

Viewing a Detailed Report

Click View to open the full test report.

  • Test name and YAML definition used
  • Serial number, operator, and station ID
  • Start time, end time, and total duration
  • Overall verdict (large colour-coded badge)

Step Results Table

Every step in the execution with:

Column Description
Name Step name
Status Completed / Skipped / Aborted
Duration Step execution time in seconds
Verdict PASS / FAIL / UNDETERMINED
Measurements Expandable list of individual measurement points

Click any step row with measurements to expand it and see:

  • Measured value
  • Lower and upper limits
  • Pass/Fail for each point

Inline Image Artifacts

If a test step emits image files (PNG, JPEG, SVG) via emit_artifact() or EmitArtifact(), they are displayed inline in the step row โ€” not just as download links. Each image is shown as a clickable thumbnail; clicking it opens the full-size image in a lightbox.

Images are grouped in an Inline Images section that appears below the step results table for the step that produced them.

Non-image artifacts (e.g. CSV files, log files) continue to appear as download links.

Interactive Plotly Charts

If a test step emits a Plotly figure via emit_plotly() / EmitPlotly() (content type application/vnd.plotly.v1+json), the chart is rendered as a fully interactive Plotly chart in the report โ€” you can zoom, pan, hover for values, and export to PNG.

Plotly charts are grouped in an Interactive Charts section below the step results table. Both the UI app and the Dashboard app support this.

Plotly charts are hidden when printing. Use the Plotly toolbar's PNG export button instead to include a chart snapshot in a printed report.

Nested Executions

If the test used nested script steps, each nested execution appears as a collapsible section beneath the main step table, with its own step list and verdict.

Permanent Report URL

Each detail report has a permanent URL: /test-results/{id}. You can bookmark it or share it with colleagues.

Printing / Exporting

Use your browser's Print function (Ctrl+P) to print a report or save it as PDF. The report page hides the navigation sidebar and toolbar when printing.


YAML Validator (/yaml-validator)

Paste or upload a YAML test definition and click Validate to check it for syntax and schema errors before committing it to a package.

The validator runs the same validation rules as the engine. See ../reference/validation-rules.md for the full list of errors it can report and how to fix them.


Packages (/packages)

The Packages page lets you browse the central package catalog, download packages to the local station, and manage installed versions.

See ../../PACKAGE_MANAGER_GUIDE.md for detailed package management workflows including lifecycle status (NotReleased, Evaluation, Released, Obsolete) and Git commit tracking.


Getting Help

  • Use the sidebar on the in-app Help page to browse topics
  • For YAML syntax questions, see ../yaml/index.md
  • For package management, see ../../PACKAGE_MANAGER_GUIDE.md
  • For API endpoint details, open Swagger at http://<api-host>/swagger
An unhandled error has occurred. Reload ๐Ÿ—™

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.