Skip to main content

REST API reference

This page maps the endpoints by domain. The exact request and response shapes are in the server's own OpenAPI pages: /docs (Swagger UI), /redoc and /openapi.json — generate typed clients from the latter.


Conventions​

  • Authentication — Authorization: Bearer <access token> on every call, except /health, /ready, /info, /api/theme, POST /auth/login, POST /auth/refresh and the OIDC pair.
  • Access rules — data endpoints check the permission of what they run (sql:<connector>:<query>, api:<connector>:<endpoint>), and SQL reads and writes apply the caller's data scope. Everything under /admin/ is reserved to superusers.
  • Language — X-Liberty-Lang: fr (else Accept-Language) chooses the language of labels in screens, dictionary and menus.
  • Pool — X-Liberty-Pool: <pool> runs a multi-pool connector's queries on another pool of its set.
  • Errors — a JSON {"detail": …} body with a non-2xx status. A database error gives regular users the driver's message and an error_id; the statement itself is never echoed to them.
  • Request id — every response carries X-Request-ID; the server log lines of that request carry the same id.

Health​

MethodPathDescription
GET/healthLiveness: {"status": "ok", "version"}.
GET/readyReadiness: 200 when the framework database answers, 503 otherwise.
GET/infoVersion, counts and flags; names and details for a signed-in caller.

See Health endpoints.


Sign-in and profile​

MethodPathDescription
POST/auth/login{username, password} → access and refresh tokens. 429 after too many failures.
POST/auth/refreshA refresh token → a new pair. The refresh token presented is consumed: keep the new one.
GET/auth/meThe token's identity: roles, permissions, attributes, data scope.
GET / PATCH/auth/profileThe signed-in user's profile.
POST/auth/change-passwordChange one's own password (local users).
GET/auth/oidc/login, /auth/oidc/callbackOpenID Connect sign-in.

See Sign-in.


Connectors and data​

MethodPathDescription
GET/api/connectors, /api/connectors/{connector}The connectors and their queries / endpoints.
GET/api/sql/{connector}/{query}Run a read query; query-string parameters bind to it, with filters, paging and sorting.
POST/api/sql/{connector}/{query}Run a write query with a JSON body.
GET/api/sql/{connector}/_schemas, /_schemaSchemas and tables of the connector's database.
POST/api/sql/{connector}/_importImport rows (the grid's Excel import).
POST/api/http/{connector}/{endpoint}Call an API connector's endpoint.
GET/api/actions, /api/actions/{action_id}Shared actions.
GET / POST/api/plugins/callables, /api/plugins/runPlugin functions callable from screens.

Screens, dashboards, menus​

MethodPathDescription
GET/api/screens, /api/screens/{app}, /api/screens/{app}/{screen_id}Screen definitions, localised.
POST/api/screens/{app}/{screen_id}/exportExcel export of the screen's current view.
GET/api/dashboards, /api/dashboards/{dashboard_id}Dashboards and their widgets.
GET/api/charts, /api/charts/{chart_id}Saved charts.
GET/api/menus, /api/menus/{app}Menu trees, pruned to what the caller may open.
GET/api/themeBranding and UI defaults (public).
GET / PUT / DELETE/api/views/{kind}Saved grid views.

Reports, notifications, licence​

MethodPathDescription
GET/api/reports, /api/reports/{scope}/{report_id}Reports and their parameters.
POST/api/reports/{scope}/{report_id}/runRun a report (PDF or Markdown).
GET/api/notifications (?unread=1), /api/notifications/unread_countThe caller's notifications.
POST/api/notifications/readMark notifications read ({ids}, or all).
POST/api/notify/fireFire an action-kind notification rule (used by the send_notification screen action).
GET/api/licenseLicence mode, customer, plan, apps, expiry.

AI assistant​

MethodPathDescription
GET/ai/toolsThe assistant's tool catalogue.
POST/ai/chatSend the conversation ({messages, model?}); the answer streams back. Requires ai:chat.

Administration (superusers)​

FamilyPathsDescription
Access/admin/access/users, /admin/access/users/{username} (+ /password), /admin/access/roles, /admin/access/roles/{name}Users (create, update, attributes, password) and roles (permissions, data scope).
Configuration/admin/config/{section}/parsed (GET / PUT) for connectors, dictionary, menus, screens, charts, dashboards, actions, notifications, theme, jobs, app, reports, explorer; /admin/config/poolsRead and save a configuration file as JSON; a save is validated, then applied.
Configuration tools/admin/config/connectors/{connector}/test-sql, /admin/config/api/test, /admin/config/rename, /admin/config/move, /admin/config/clone-app, /admin/config/delete-app, /admin/config/integrity, /admin/config/schemaTests, cross-file renames and moves, integrity check, JSON schemas.
History/admin/config/versions…, /admin/config/screen-versions…, /admin/upgrades, /admin/upgrades/{id}/report, /admin/release-notesConfiguration versions, upgrade history and reports, release notes.
ReloadPOST /admin/reloadRe-read every configuration file.
Packages/admin/find-dependencies, /admin/build-package, /admin/import-package, /admin/clone-with-deps, /admin/delete-with-depsPackages and dependency-aware clone and delete.
Change packages/admin/changesets…See Change packages.
NotificationsPOST /admin/notify/testSend a test through the channels.

Nomaflow jobs (superusers)​

MethodPathDescription
GET/admin/jobsJobs with their state, next and last run.
POST/admin/jobs/{job_id}/runRun now. Body (optional): {params, op_kwargs, step_enabled, log_level} → {job_id, run_id, triggered_by, status: "queued"}.
POST/admin/jobs/{job_id}/uploadUpload a file for a file_load step (multipart file).
GET/admin/jobs/runs/{run_id}Run detail: steps, log, overrides.
POST/admin/jobs/runs/{run_id}/cancelCancel a run in progress.
GET/admin/jobs/runs/{run_id}/files/{name}Download a run's file (rejected rows).
GET/admin/jobs/cron-preview?schedule=…&timezone=…&count=5The next runs of a cron.
GET/admin/jobs/callablesPython functions available to python steps.
GET / POST/admin/jobs/retention, /admin/jobs/retention/sweepRetention status; run a clean-up now.
GET / POST/admin/jobs/missed, /admin/jobs/missed/checkMissed-schedule status; run a check now.

Jobs themselves are edited through /admin/config/jobs/parsed.


Socket.IO​

/socket.io carries the live updates, authenticated with the same token in the handshake: run and step state changes of Nomaflow (job_run.state, step_run.state), new notifications for the bell, record locks, and the Monitoring page's snapshots and log tail.