Skip to content

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.