Where a program
runs
Saved code and the place where it runs are separate parts of the system. Before a run, the device needs a working executor, a matching handler and the program's dependencies.
The path of one call
| Step | What happens |
|---|---|
| 1. Request | An agent, an app or your code sends the program name and parameters to the Extella service. |
| 2. Device | The executor on the chosen device accepts the task. |
| 3. Handler | Reads the program in the language set in its record and runs its commands. |
| 4. Response | The result returns to the caller through the service. |
A file at ~/orders.csv is read on the chosen device, not automatically on the computer that sent the request.
How to choose a device
Pass the Device ID in the targets field of the run request. To test one machine, use a list with one ID. If the device is unavailable, restore its connection first.
{
"expert_name": "add_two_numbers_v1",
"params": {"a": 5, "b": 7},
"targets": ["DEVICE_ID"]
}You can get the list of registered devices with POST /api/targets/list. The ID in the request must belong to a machine you have access to.
Why a separate handler
The program record stores the language, for example fython or your own command format. The handler defines how that language runs. For a new language, saving its name is not enough: you need to implement how it runs and set that up on the device.
Updating a handler can change the behaviour of several programs in that language without changing their text. Check compatibility separately.
The CSPL mechanism, with experiment records →If a call did not work
| What to check | What to do |
|---|---|
| Access | Check the token, profile and agent the program was saved with. |
| Name | Get the record through /api/expert/get and check the code and the language. |
| Connection | Make sure the executor is running, the device is on and it appears in the list. |
| Language and dependencies | Check that the handler, libraries and external programs the program needs are present. |
| Paths and rights | Make sure the files are on the chosen machine and the executor can access them. |
| Result | Check the response status and the execution log, not only the HTTP code. |
Rights and data
The executor can work with the files and network it has access to. Do not run unchecked code on a work machine with sensitive data. A restricted language in a specific demo does not mean that Extella isolates arbitrary programs.
Request parameters and the result pass through the service. Return only what the caller really needs. Do not put tokens or extra file contents in logs.