* fix: register built-in activation strategy serialization aliases
3.8 type-resolution hardening no longer falls back to Type.GetType, so
Studio-selected and 3.7-era SQN activation strategy types failed to
deserialize. Register the four built-in strategies with legacy names
and advertise registry aliases from the descriptor endpoint.
Fixes https://github.com/elsa-workflows/elsa-core/issues/8049
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* test: DRY activation strategy serialization test setup
Extract shared registry/JSON arrange helpers so activation alias tests
share setup without collapsing their assertions.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* test: qualify Options.Create in serialization test helpers
Avoid Elsa.Options colliding with Microsoft.Extensions.Options.Options.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* test: keep activation alias setup local and obvious
Drop the shared Testing.Shared helper and extra Runtime wrapper. Those
hid one-line registry construction. Leave same-class helpers only.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* fix: advertise resolvable activation strategy type names
When the registry has no preferred alias, fall back to the simple
assembly-qualified name so Studio stores an identifier the resolver
can load. FullName is not a registered alias.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Backport to release/3.8.0 so Elsa.Api.Client 3.8.0-rc2 exposes the
Resources/OutputConverters surface that Elsa Studio's release/3.8.0 branch
already consumes. Without it, Studio cannot build against a released client:
it was green against 3.8.0-preview.5397 (built from main) and broke when its
pin moved to 3.8.0-rc1 (built from this branch).
(cherry picked from commit d698e6b005)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This enhances security by configuring the NuGet publishing workflow to use GitHub OIDC Trusted Publishing. This mechanism exchanges a GitHub OIDC token for a temporary nuget.org API key, eliminating the need for a long-lived API key secret.
Adds a new `Elsa.Http.Webhooks` module, enabling workflows to receive incoming webhook events and dispatch outgoing webhooks. This integrates the WebhooksCore library.
Further improvements include:
- Enhanced validation for configured application instance names, providing clearer feedback, especially regarding Azure Service Bus entity name limits.
- Improved API error reporting for shell reload operations, distinguishing between blueprint not found (404) and other failures (503).
- Updated release announcement rendering to dynamically reference the correct major.minor release line for feedback messages.
Use the same structural and secret-binding assessment for management, discovery, and initiation so incomplete overrides are never advertised as available sign-in methods.
Introduce a new test `ValidateRequiresCompleteConfigurationAndReturnsMissingSecretDetails` to verify that a connection requires a complete configuration, including handling missing secret details. Adjust configuration to enforce `RequiresClientSecret`.
Detach the AsyncLocal scope synchronously so notifications published after an asynchronous flush are not re-buffered and discarded. Add regression coverage that forces the flush across an async boundary.