All script runs — manual, scheduled and started from the agent’s chat — go through the same engine: the same rules, queue, environment and history. That makes behavior predictable: what works on a schedule works the same way from chat.
How to run
The Run button sits on the page of the script to run. Only Python (.py) and shell (.sh) files are runnable. A run is accepted instantly: its record is created right away, while the process itself may wait for a free slot in the queue if parallel runs are limited.
Live output
The script’s output streams into the run’s console — you see every line as it appears, not after the finish. A run can be stopped with the Stop button if the script hangs or goes wrong.
One environment for every run
Every run gets a deterministic environment: the same Python interpreter (the one built into the image or set in settings), with the scripts root as the working directory. The .env file is re-read on every run, so edits to secrets or settings apply without restarting the application. Passwords reach the process as environment variables — they are not visible in the code.
Where a run came from
Every run carries a trigger label: started manually, by schedule, or by the agent from chat. Agent runs are additionally tied to an ETL session and the chat — the run shows the session’s badge, which leads back to the chat to see what it was about.
History and logs
All runs are kept in the application database. The Runs section is a filterable list: every run opens its details, full output and logs. Even if a script ran a week ago, its result can be viewed at any moment.
Limits and states
- timeout: a script that runs longer than allowed is stopped automatically;
- parallel run limit: too many simultaneous scripts do not overload the server — the rest wait in the queue;
- run states: running, finished successfully, finished with an error, stopped by the user, waiting in the queue.
After a run — fresh data
After a successful run, the source’s folder in the Lakehouse is rescanned: new and updated data becomes available for queries immediately, with no manual setup. The source appears or refreshes automatically — details on the Data Sources page.