ServerlessWorkflow.Sdk 0.8.0.15

There is a newer version of this package available.
See the version list below for details.
dotnet add package ServerlessWorkflow.Sdk --version 0.8.0.15
NuGet\Install-Package ServerlessWorkflow.Sdk -Version 0.8.0.15
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ServerlessWorkflow.Sdk" Version="0.8.0.15" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ServerlessWorkflow.Sdk --version 0.8.0.15
#r "nuget: ServerlessWorkflow.Sdk, 0.8.0.15"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ServerlessWorkflow.Sdk as a Cake Addin
#addin nuget:?package=ServerlessWorkflow.Sdk&version=0.8.0.15

// Install ServerlessWorkflow.Sdk as a Cake Tool
#tool nuget:?package=ServerlessWorkflow.Sdk&version=0.8.0.15

Publish Packages Gitpod ready-to-code

Serverless Workflow Specification - .NET SDK

Provides .NET 6.0 API/SPI and Model Validation for the Serverless Workflow Specification

With the SDK, you can:

  • Read and write workflow JSON and YAML definitions
  • Programmatically build workflow definitions
  • Validate workflow definitions (both schema and DSL integrity validation)

Status

Latest Releases Conformance to spec version
0.8.0.10 v0.8

Getting Started

dotnet nuget add package ServerlessWorkflow.Sdk
services.AddServerlessWorkflow();

How to use

Building workflows programatically
var workflow = WorkflowDefinition.Create("MyWorkflow", "MyWorkflow", "1.0")
  .StartsWith("inject", flow => 
      flow.Inject(new { username = "test", password = "123456" }))
  .Then("operation", flow =>
      flow.Execute("fakeApiFunctionCall", action =>
      {
          action.Invoke(function =>
              function.WithName("fakeFunction")
                  .SetOperationUri(new Uri("https://fake.com/swagger.json#fake")))
              .WithArgument("username", "${ .username }")
              .WithArgument("password", "${ .password }");
      })      
          .Execute("fakeEventTrigger", action =>
          {
               action
                    .Consume(e =>
                        e.WithName("fakeEvent")
                            .WithSource(new Uri("https://fakesource.com"))
                            .WithType("fakeType"))
                    .ThenProduce(e =>
                        e.WithName("otherEvent")
                            .WithSource(new Uri("https://fakesource.com"))
                            .WithType("fakeType"));
          }))
  .End()
  .Build();
Reading workflows
var reader = WorkflowReader.Create();
using(Stream stream = File.OpenRead("myWorkflow.json"))
{
  var definition = reader.Read(stream, WorkflowDefinitionFormat.Json);
}
Writing workflows
  var writer = WorkflowWriter.Create();
  using(Stream stream = new MemoryStream())
  {
      writer.Write(workflow, stream);
      stream.Flush();
      stream.Position = 0;
      using(StreamReader reader = new StreamReader(stream))
      {
          var yaml = reader.ReadToEnd();
          Console.WriteLine(yaml);
          Console.ReadLine();
      }
  }
Validating workflows
var validator = serviceProvider.GetRequiredService<IValidator<WorkflowDefinition>>();
var validationResult = validator.Validate(myWorkflow);
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ServerlessWorkflow.Sdk:

Package Downloads
Synapse.Integration

This package contains everything you need to integrate Synapse WFMS and its APIs

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on ServerlessWorkflow.Sdk:

Repository Stars
serverlessworkflow/synapse
Serverless Workflow Management System (WFMS)
Version Downloads Last updated
0.8.8 172 1/4/2024
0.8.7 772 6/29/2023
0.8.6 335 11/30/2022
0.8.5 318 11/18/2022
0.8.4 13,317 11/4/2022
0.8.3 7,202 10/26/2022
0.8.2 372 9/30/2022
0.8.1.16 4,178 9/28/2022
0.8.1.15 1,516 9/22/2022
0.8.1.14 3,490 9/9/2022
0.8.1.13 389 9/7/2022
0.8.1.12 377 9/7/2022
0.8.1.11 5,738 8/30/2022
0.8.1.10 2,536 8/23/2022
0.8.1.9 419 8/23/2022
0.8.1.8 3,654 8/11/2022
0.8.1.7 1,489 8/9/2022
0.8.1.6 1,651 5/20/2022
0.8.1.5 408 5/20/2022
0.8.1.4 449 5/18/2022
0.8.1.3 411 5/17/2022
0.8.1.2 429 5/17/2022
0.8.1.1 387 5/17/2022
0.8.1 393 5/16/2022
0.8.0.22 401 5/16/2022
0.8.0.21 495 5/10/2022
0.8.0.20 618 4/14/2022
0.8.0.19 564 4/14/2022
0.8.0.18 415 4/14/2022
0.8.0.17 442 4/13/2022
0.8.0.16 411 4/13/2022
0.8.0.15 552 3/7/2022
0.8.0.14 396 3/7/2022
0.8.0.13 433 3/3/2022
0.8.0.12 408 3/2/2022
0.8.0.11 422 2/25/2022
0.8.0.10 431 2/24/2022
0.8.0.9 436 2/24/2022
0.8.0.8 404 2/23/2022
0.8.0.7 398 2/23/2022
0.8.0.6 413 2/22/2022
0.8.0.5 394 2/21/2022
0.8.0.4 404 2/21/2022
0.8.0.3 418 2/18/2022
0.8.0.2 410 2/15/2022
0.8.0.1 412 2/14/2022
0.8.0 432 2/14/2022
0.7.4.4 364 7/2/2021
0.7.4.3 342 7/2/2021
0.7.4.2 292 7/2/2021
0.7.4.1 274 7/1/2021
0.7.4 316 7/1/2021
0.7.3 289 6/16/2021
0.7.2 334 6/8/2021
0.7.1 334 6/3/2021
0.7.0 284 6/2/2021
0.6.3 339 5/27/2021
0.6.2 315 5/27/2021
0.6.1 770 4/19/2021
0.6.0 351 4/3/2021