Claude 28606f504b Resolve /login route collision by dropping the old Elsa.Studio.Login stack
The classic Elsa.Studio.Login.BlazorWasm.AddLoginModule and the newer
Elsa.Studio.Authentication.ElsaIdentity.UI.AddElsaIdentityUI both register
a '/login' page, which errored out on first render:
    The following routes are ambiguous:
    'login' in Elsa.Studio.Login.Pages.Login.Login
    'login' in Elsa.Studio.Authentication.ElsaIdentity.UI.Pages.Login.Login

Drop the classic module (package + AddLoginModule call + Login.HttpMessageHandlers
namespace) and switch the API auth handler to
ElsaIdentityAuthenticatingApiHttpMessageHandler from the new stack.
2026-09-02 09:17:26 +00:00

Elsa Custom Server

Custom Elsa Workflows API server. Extends stock Elsa 3.x with our own activities.

Where activities live

src/Elsa.CustomServer/Activities/*.cs — anything marked [Activity(...)] under this folder is auto-registered via AddActivitiesFrom<Program>() in Program.cs.

To add a new node type in the Studio designer:

  1. Drop a new file under Activities/.
  2. Inherit from CodeActivity, CodeActivity<T>, or Activity for triggerable ones.
  3. Rebuild and redeploy — Studio picks it up automatically the next time it fetches the activity descriptors.

Example — see Activities/Shout.cs.

Local run

dotnet run --project src/Elsa.CustomServer

Listens on http://localhost:8080; API root is /elsa/api.

Docker

docker build -t elsa-custom-server .
docker run --rm -p 8080:8080 \
  -e Identity__Tokens__SigningKey="$(openssl rand -base64 64)" \
  elsa-custom-server

Deployment

Coolify builds this image from the Dockerfile at repo root when the app is created with build_pack: "dockerfile". The Studio (separate container running the stock elsaworkflows/elsa-studio-v3 image) needs its BACKEND__URL env var pointed at this server's /elsa/api.

Description
No description provided
Readme 97 KiB
Languages
C# 85.7%
HTML 10.7%
Dockerfile 3.6%