MAESTRO — Modular Automotive Embedded System Test, Reporting & Orchestration (web dashboard + manifest-driven adapters: SSH/ADB/power/DLT/ETFW)
Project description
MAESTRO
Modular Automotive Embedded System Test, Reporting & Orchestration
A web-dashboard test-automation framework for automotive Hardware-in-the-Loop
(HIL) and embedded device testing. Published on PyPI as
maestro-framework — pip install maestro-framework.
MAESTRO is a FastAPI backend + React dashboard built around a
manifest-driven adapter system. Each adapter wraps one bench tool and
exposes a uniform set of actions; a generic execution engine runs a test case
(an ordered list of adapter.action steps) in serial, parallel or step-by-step
mode, with retries, loops, conditionals, parallel groups, per-device locking and
live streaming. Connection secrets are kept in an encrypted vault, runs produce
self-contained HTML reports, and everything works offline.
Built-in adapters
| Adapter | Wraps | Example actions |
|---|---|---|
ssh |
Paramiko (Linux/QNX/embedded, slog2/journal) | execute_command, upload_file, download_file, reboot |
adb |
Android Debug Bridge (bundled platform-tools) | shell, push/pull, install_apk, logcat_dump, screenshot |
power |
Your bench power script (power.ps1/power.py) |
power_on, power_off, power_cycle, enter_edl |
dlt |
DLT log capture over TCP | start_capture, stop_capture, verify_pattern |
etfw |
ETFW bus/ECU tooling | bus_sleep_on, bus_sleep_off, set_state, get_state |
serial |
Serial console (pyserial) |
monitor, wait_for_pattern, send, list_ports |
camera |
Desktop/webcam capture (PowerShell + ffmpeg) | screenshot, capture_webcam, record_video |
system |
Local control + your own scripts | wait, echo, assert_contains, run_file, run_command |
New adapters are just a folder under backend/adapters/ with a manifest.json
and an adapter.py — or drop a plugin into data/plugins/ at runtime.
Run it
# From source (installs deps + builds the UI on first run):
python app.py
# Or from PyPI:
pip install maestro-framework
maestro # starts the API + dashboard and opens the browser
maestro setup # optional: install into a dedicated folder (own venv + data)
The dashboard is at http://localhost:8000, the API docs at /api/docs.
Repository layout
maestro-framework/
├─ app.py # single-command dev launcher
├─ backend/ # FastAPI application
│ ├─ adapters/ # base + registry + one folder per adapter (manifest.json)
│ ├─ services/ # execution engine, scheduler, reports, ws, plugins, ...
│ ├─ api/ # REST + WebSocket routers
│ ├─ models/ # SQLAlchemy models
│ ├─ security/ # vault, credentials, RBAC, audit
│ ├─ templates/ # step palette templates (JSON)
│ ├─ config.py · database.py · main.py · cli.py · installer.py
├─ frontend/ # React + Vite + TypeScript + Tailwind dashboard
└─ bin/ # bundled binaries (adb platform-tools, ...)
Configuration
All settings have defaults; override via environment (or a .env file):
MAESTRO_HOST, MAESTRO_PORT, MAESTRO_API_TOKEN (shared bearer token),
DATABASE_URL, LOG_LEVEL, MAESTRO_DATA_DIR. Runtime data (SQLite DB, logs,
reports, artifacts, vault key) lives under data/ in a source checkout, or
~/.maestro when pip-installed.
License
MIT © 2026 Naveen Daniel Kennedy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maestro_framework-0.2.0.tar.gz.
File metadata
- Download URL: maestro_framework-0.2.0.tar.gz
- Upload date:
- Size: 162.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fbc5953d7434cd40fb48ec742e837437530247ba7d8f1ad94377915b7176286
|
|
| MD5 |
df95a93b257c0b2f4a80838e6caec257
|
|
| BLAKE2b-256 |
bd999e9f6266da44a34dc4cd52c274cf2e9995a74bc31a1b30a00cdb6a7fd105
|
File details
Details for the file maestro_framework-0.2.0-py3-none-any.whl.
File metadata
- Download URL: maestro_framework-0.2.0-py3-none-any.whl
- Upload date:
- Size: 201.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26e87addc526e560ccd7ee90efac9e35667713bc4ebf00d615f4ab4834a13b51
|
|
| MD5 |
3539be96ebaf0b37ff6acdd695437a3c
|
|
| BLAKE2b-256 |
ace7fbac18ce92feb000230cbda6109ebe60718b76ae842ad8ae2b3b25114e4a
|