EugeneTes 2378a5ff78 Collapse NATS activity credentials into a single Connection string
Replaces separate Url/User/Password inputs on NatsPublish and NatsTrigger with
one Connection input in standard NATS URL form (e.g. nats://user:pass@host:4222,
wss://user:pass@host/). The activity's input description explains the format so
it renders as help text in the Studio property panel.

NatsConnectionCache now parses the connection string, keeps its cache keyed on
the parsed (url, user, password) tuple, and exposes ParseConnectionString for
reuse. NatsTriggerStimulus collapses to (Connection, Stream, Subject); existing
NATS workflows must be republished to re-index with the new stimulus shape.
2026-09-02 14:56:59 +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%