What is Nomaflow
Nomaflow is the job scheduler built into Liberty Next. It runs inside the server — no separate worker, no message broker — and uses the same connectors as the screens and dashboards. A job is a list of steps run in order, on a schedule or on demand; every run is recorded with its steps and its log.
At a glance
What it is used for
| Need | With Nomaflow |
|---|---|
| Copy a table every night from a production database to a reporting database | A sql_copy step, scheduled at 02:00. See Scheduled sync. |
| Load monthly spreadsheets into a facts table, replaying a wrong month | A file_load step in replace_partition mode, a refuse query for closed periods. See Steps. |
| Pick up files dropped in a shared folder | file_load with a watched folder: each file is loaded, then moved to done/ or failed/. |
| Pull data from a REST API | A python step that calls the API and writes through a connector's query. See API pull. |
| Mirror Active Directory users into a table | An ldap_sync step. |
| Purge old rows past a threshold | A python step that counts and deletes. See Conditional cleanup. |
| Run a one-off after a release | A job without a schedule, run with Run now. |
| Be told when a job fails or did not run | A notification rule on failure and missed. See Notifications. |
How it fits in Liberty Next
| Liberty Next piece | Used by Nomaflow for |
|---|---|
| Connectors and pools | Reaching the databases and APIs, through the same named queries and endpoints as the screens. |
jobs.toml | The jobs, their presets and the policies — edited from the Jobs pages, carried by packages and by the licensed apps. |
| The framework database | The run history. |
| Encrypted secrets | Pool passwords; other secrets written as ${VARIABLE} in jobs.toml. |
| Notifications | Telling people about failed, missed or long runs. |
| Superuser access | The Jobs pages and their API are reserved to superusers. |
What it does not do
- No graph of tasks. Steps run one after the other; a job can call another job (
call_job) and wait for it, but nothing runs in parallel inside a job. - One server. The scheduler runs in the server process: run a single instance.
- No automatic catch-up. A time missed while the server was down is recorded as MISSED and can be notified; running it again is a manual decision.
- No replay button. To run again with the same values, save them as a preset or pick them again in Run with parameters.
Read next
| Page | To… |
|---|---|
| Getting started | Build a first scheduled job. |
| Concepts | Understand jobs, steps, schedules, triggers, runs and parameters. |
| Jobs page · Create a job · Schedules | Work with jobs. |
| Steps | Know every step type. |
| Run history · Troubleshoot | Read and fix runs. |
| Custom Python steps | Write your own step. |
| Administration | Settings, retention, restart. |