2378a5ff78a91c128accd0e9325a338cbaa2cf65
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.
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:
- Drop a new file under
Activities/. - Inherit from
CodeActivity,CodeActivity<T>, orActivityfor triggerable ones. - 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
Languages
C#
85.7%
HTML
10.7%
Dockerfile
3.6%