BarakoCMS.Workflow.SDK 3.0.0-beta.1

This is a prerelease version of BarakoCMS.Workflow.SDK.
dotnet add package BarakoCMS.Workflow.SDK --version 3.0.0-beta.1
                    
NuGet\Install-Package BarakoCMS.Workflow.SDK -Version 3.0.0-beta.1
                    
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="BarakoCMS.Workflow.SDK" Version="3.0.0-beta.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BarakoCMS.Workflow.SDK" Version="3.0.0-beta.1" />
                    
Directory.Packages.props
<PackageReference Include="BarakoCMS.Workflow.SDK" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BarakoCMS.Workflow.SDK --version 3.0.0-beta.1
                    
#r "nuget: BarakoCMS.Workflow.SDK, 3.0.0-beta.1"
                    
#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.
#:package BarakoCMS.Workflow.SDK@3.0.0-beta.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BarakoCMS.Workflow.SDK&version=3.0.0-beta.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=BarakoCMS.Workflow.SDK&version=3.0.0-beta.1&prerelease
                    
Install as a Cake Tool

BarakoCMS Workflow SDK

Build custom workflow actions for BarakoCMS without modifying core code.

Installation

dotnet add package BarakoCMS.Workflow.SDK --version 3.0.0-beta.1

Quick Start

1. Create a Custom Action

using BarakoCMS.Workflow.SDK;
using BarakoCMS.Workflow.SDK.Abstractions;
using BarakoCMS.Workflow.SDK.Attributes;
using BarakoCMS.Workflow.SDK.Models;

[WorkflowActionMetadata(Category = "Notifications", Icon = "📧")]
public class SendEmailAction : WorkflowActionBase
{
    public override string ActionType => "send-email";
    public override string DisplayName => "Send Email";
    public override string Description => "Sends an email notification";

    public override IReadOnlyList<ParameterDefinition> Parameters => new[]
    {
        new ParameterDefinition
        {
            Name = "to",
            DisplayName = "To Address",
            Type = "string",
            Required = true
        },
        new ParameterDefinition
        {
            Name = "subject",
            DisplayName = "Subject",
            Type = "string",
            Required = true
        },
        new ParameterDefinition
        {
            Name = "body",
            DisplayName = "Body",
            Type = "string",
            Required = true
        }
    };

    public override async Task<ActionResult> ExecuteAsync(
        IWorkflowContext context,
        Dictionary<string, object> parameters,
        CancellationToken ct)
    {
        var to = GetParameter<string>(parameters, "to");
        var subject = GetParameter<string>(parameters, "subject");
        var body = GetParameter<string>(parameters, "body");

        context.Logger.LogInformation("Sending email to {To}", to);

        // Your email sending logic here
        await SendEmailAsync(to, subject, body);

        return ActionResult.Succeeded(new Dictionary<string, object>
        {
            ["sent_to"] = to,
            ["sent_at"] = DateTime.UtcNow
        });
    }

    private async Task SendEmailAsync(string to, string subject, string body)
    {
        // Implementation
        await Task.CompletedTask;
    }
}

2. Build and Deploy

dotnet build
dotnet pack

# Copy DLL to BarakoCMS plugins directory
cp bin/Release/net8.0/MyPlugin.dll /path/to/barakocms/plugins/

3. Use in Workflows

Your custom action will appear in the workflow builder automatically!

Features

  • Simple API - Inherit from WorkflowActionBase and implement your logic
  • Type-Safe Parameters - Built-in parameter validation and type conversion
  • Dependency Injection - Access services via IWorkflowContext.GetService<T>()
  • Testing Helpers - Easy unit testing with WorkflowActionTestHelper
  • Full Documentation - XML docs for all public APIs

Documentation

Requirements

  • .NET 8.0 or later
  • BarakoCMS v3.0.0-beta.1 or later

License

MIT

Support

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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 BarakoCMS.Workflow.SDK:

Package Downloads
BarakoCMS.Services

BarakoCMS services library. Add headless CMS capabilities to any ASP.NET Core app with services.AddBarakoCMS(). Includes content management, workflows, RBAC, and event sourcing.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-beta.1 124 12/27/2025