Skip to main content

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-frameworkpip 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maestro_framework-0.2.0.tar.gz (162.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maestro_framework-0.2.0-py3-none-any.whl (201.1 kB view details)

Uploaded Python 3

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

Hashes for maestro_framework-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6fbc5953d7434cd40fb48ec742e837437530247ba7d8f1ad94377915b7176286
MD5 df95a93b257c0b2f4a80838e6caec257
BLAKE2b-256 bd999e9f6266da44a34dc4cd52c274cf2e9995a74bc31a1b30a00cdb6a7fd105

See more details on using hashes here.

File details

Details for the file maestro_framework-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for maestro_framework-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 26e87addc526e560ccd7ee90efac9e35667713bc4ebf00d615f4ab4834a13b51
MD5 3539be96ebaf0b37ff6acdd695437a3c
BLAKE2b-256 ace7fbac18ce92feb000230cbda6109ebe60718b76ae842ad8ae2b3b25114e4a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page