Skip to content

How It Works

To help you fully understand how Didact works as a platform, I want to explain the overall Flow workflow here in a master, birds-eye-view document. Please read through the Core Concepts and Guides sections to learn more concrete details on how to use and configure the platform.

Metadata database

Create a database service

First off, stand up a database service. This can be as simple as a local database running on your machine or a cloud database.

Install Didact CLI

Next, install Didact CLI. You can use an install script from the didact-install-scripts repository directly in your terminal. There is an install script for Windows, Linux, and Mac OS, so simply copy and paste the appropriate script into your terminal and then execute the command.

You can also directly download the Didact CLI binary from the Releases page of the main Didact repository.

INFO

I am not currently planning to offer a Docker image for Didact CLI, but if users start requesting it, then I am happy to oblige.

Run database migration

Upon installing Didact CLI, run the following command in your terminal:

bash
didact database migrate --provider "SQLServer" --connection-string "<YOUR_CONNECTION_STRING>"

Replace <YOUR_CONNECTION_STRING> with your actual database connection string.

WARNING

This CLI command will run SQL DDL statements against your database, so make sure to use a connection that grants DDL privileges. After you run the migrations and launch Didact Engine, you can define a different connection string - one with lesser privleges - for Didact Engine's normal operations.

Flow Library

Create a class library

Now we have your Flow Library. This is a dedicated dotnet class library where you define your Flows. I have a helper NuGet package for you to use here called Didact Core that you simply add as a dependency to your class library.

Inside your Flow Library, you define your Flows and add any required dependencies, particularly for dependency injection. These dependencies could be other NuGet packages, references to other dotnet projects, embedded files, and so on.

Build and Publish

Once your Flow Library is ready, you build and publish it to a specific location. This location can be as simple as a folder on your local machine; for example, normally class libraries build to a default folder in their project folder like bin\Release\net8.0\publish. Flow Libraries require special configurations in the .csproj file that grab all dependencies, including NuGet packages, and produce them all as outputs from the dotnet publish action.

Create a deployment

Didact Engine

Installation

You can install Didact Engine by running the [engine install command] from the Didact CLI, by downloading the binary from the Releases page of the main Didact repository on GitHub, or by pulling its Docker image.

Configure enginesettings.json

Didact Engine is a self-contained dotnet executable that requires an enginesettings.json file for a few application settings and/or environment variable declarations.

Didact UI

Installation

You can install Didact UI by running the [ui install command] from the Didact CLI, by downloading the binary from the Releases page of the main Didact repository on GitHub, or by pulling its Docker image.

Configure uisettings.json

Didact UI is a self-contained dotnet executable that requires an uisettings.json file for a few application settings and/or environment variable declarations.

Proudly powered by VitePress