Updated August 21, 2026
Core concepts
Five ideas. Everything else in these docs is a specialization of one of them.
1. Client
The app client is the surface under test — a UI (SAP GUI, a browser) or a headless API. If the client is not supported, the suite cannot run remotely. See App clients and the support matrix.
2. Engine
The engine executes scripts (Robot Framework, Playwright, later k6 or Locust). An engine only works for the clients it implements. Robot drives SAP GUI and Web. Playwright drives Web only. See Engines.
3. Image
What you select in the dashboard or send as engine on POST /suites (robot-sap, robot-web, playwright) is an engine × client image — one container that pairs a runner with a client and that client's remote dependencies. It is not the engine name.
| Image ID | Engine | Client |
|---|---|---|
robot-sap | Robot Framework | SAP GUI for Java |
robot-web | Robot Framework | Web |
playwright | Playwright | Web |
4. Client runtime
Each client needs extra work so a container can open a real session. That work is client-specific, not generic networking:
- SAP GUI for Java — SAP GUI in the image, router strings, SAP Router, secure connections
- Web — browsers pinned to the image,
base_url/params.browser - SAP GUI for Windows — COM scripting on a logged-in desktop; not the remote image
- Later: Fiori (Web), headless REST (k6 / Locust)
Platform tunneling is different: a tunnel is how Velo reaches any private system. SAP Router is how the SAP GUI client reaches an ECC dispatcher.
5. Integration
How a third party starts an image:
- REST — API key or dashboard JWT (
POST /executions) - Robot CLI —
robotframework-velo-cliwrapsrobotand calls REST - Copado CRT — CRT → CLI → Velo
- Rev-Trac — Rev-Trac → REST → Velo