Workflows¶
MIKE Workflows runs on a small service architecture behind the scenes: a workflow server, its own database, and a browser-based designer. This page explains how the pieces fit together.
The Elsa Server¶
MIKE Workflows is powered by an ELSA Server (DHI.Workflow.Elsa.Server), installed as a Windows Service that
runs locally and hosts the ELSA workflow engine together with its HTTP API, on http://localhost at a dynamic
port chosen at startup (5000 by default, configurable as ElsaServerPort).

Its own database¶
The Elsa Server keeps every workflow definition and run in its own database (named elsa by default) inside
the same PostgreSQL instance the rest of MIKE OPERATIONS already uses, with its tables kept under their own
Elsa schema.

A browser-based designer¶
Workflows are authored and monitored in a web browser, not in a MIKE Workbench window. The Elsa Server serves that browser UI itself: a React application provides the overall page, and the designer, workflow list, run history and similar screens running inside it are Elsa Studio - the open-source ELSA designer - compiled to WebAssembly and embedded as components of that page.
MIKE OPERATIONS 2027
In 2027, this browser page is still reached from MIKE Workbench: opening an ELSA workflow in the Workflow
Explorer points you to the Elsa Server's page (by default http://localhost:5000), which opens in your
default web browser. From MIKE OPERATIONS 2027 Update 1, workflow configuration will be fully web based -
which doesn't mean the Elsa Server is exposed over the network by default (it still only listens on
localhost, same as today), only that configuring a workflow happens in a web browser rather than in
MIKE Workbench itself.

MIKE OPERATIONS Integration¶
Beyond generic automation building blocks, ELSA has been extended with activities that work directly with MIKE OPERATIONS' own tools, features and database: running or managing a MIKE+ or MIKE HYDRO Basin scenario, and importing or resampling time series. 2027 ships only a handful of these, and this library is expected to grow release over release.
In the meantime, the "Run Python Script" activity lets a user bring in a capability that doesn't have a dedicated activity yet, by running their own script as a step in the workflow instead of waiting for one to be built.