Skip to content

About

Foundational building blocks and shared infrastructure for the Elsa Workflows ecosystem

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Latest commit

 

History

5,956 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elsa 4, a modern .NET workflow engine, illustrated with branching activity paths, a modular runtime and layered checkpoints

Elsa Foundation

elsa-foundation is the transitional Elsa 4 foundation workspace.

It contains the Elsa backend and Studio in three product roots:

  • Essentials/: backend libraries, tests and host applications.
  • Extensions/<capability>/: optional backend implementations, tests and Studio components where present.
  • Studio/: the Studio shell, shared UI, tests and frontend tooling.

Shared engineering documentation, tools and workflows remain at the root. Public Elsa 4 documentation source lives in website/docs/ and syncs to GitBook. Server and Studio retain independent builds and package identities.

These repositories develop the Elsa 4 preview. Elsa 3 uses the separate elsa-core and elsa-studio repositories.

Screenshots

Elsa Studio running against Workbench from the published Docker images. Captured with Studio rev 7cb2f2c2; Write Line 4.0.5-preview, Flowchart 4.0.3-preview; the preview UI may change.

Designer Completed run
Studio designer with one Write Line activity Completed run 14J7GJS3fOg with execution timeline

See Your first workflow for the full walkthrough.

Philosophy

Elsa Foundation should be a thin protocol, not a fat one.

Its job is to define the narrow shared surface that lets modules cooperate: domain language, core contracts, extension points, invariants, and the quality gates needed to keep the system understandable. It should not become a platform-shaped dependency that every feature inherits by default.

Modules should stay opt-in. A shell composes only the capabilities it needs, and features such as persistence, HTTP, JavaScript, scheduling, and host-specific integrations should enter through explicit dependencies and composition. Keeping the foundation thin makes coupling visible, protects extension authors from choices they did not select, and keeps feature-workspace assets movable as Elsa continues the modular refactor.

Start here

Repository role

This repo currently supports two roles:

  • Feature development: shipping and testing Elsa foundation features through Speckit specs under specs/.
  • Architecture development: reviewing, revising, and verifying the modular framework constitution and Elsa-specific architecture.

Feature-development workflows remain here for now, but the documentation and operating model are shaped so they can move to a future elsa-workspace repository with minimal churn.

Build

dotnet build Elsa.Server.slnx

For faster inner-loop work, open or build one of the committed developer solution filters. The full solution remains the completion gate.

To build and run the backend from source, check readiness, and execute a sample workflow, follow the backend source quickstart.

Supported management APIs

Management-client APIs are owned by their Elsa domains and can be composed directly by custom applications. Elsa.Workbench is a reference composition, not the implementation home of a server-wide management facade.

The canonical areas are Workflow Design, Activity Design, Expressions, Publishing, Runtime, and API Capabilities. An authenticated client loads one shell-relative GET /capabilities document, then follows the advertised domain links. Omitted domain features advertise no capability and expose no routes; endpoint-level action permissions remain authoritative.

See the domain-owned API specification, OpenAPI contract, and validation quickstart for composition and compatibility details.

Run with Docker

The fastest way to try the stack is to run the published images with Docker Compose, without cloning or building the repositories. That guide includes macOS/Linux and Windows PowerShell commands.

This starts Elsa.Workbench (http://localhost:13000) and Elsa Studio (http://localhost:14000) from the Docker Hub images elsaworkflows/elsa-workbench and elsaworkflows/elsa-studio (SQLite, ephemeral). The Docker quickstart covers this plus the build-from-source path with PostgreSQL, and explains the settings that wire Studio to the server backend (Studio__BackendBaseUrl, the Elsa host management key, CORS). For the full container/image reference (environment variables, mounts, persistence composition, troubleshooting), see docs/docker.md.

About

Foundational building blocks and shared infrastructure for the Elsa Workflows ecosystem

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages