Bikiran.Engine 1.4.0

dotnet add package Bikiran.Engine --version 1.4.0
                    
NuGet\Install-Package Bikiran.Engine -Version 1.4.0
                    
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="Bikiran.Engine" Version="1.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bikiran.Engine" Version="1.4.0" />
                    
Directory.Packages.props
<PackageReference Include="Bikiran.Engine" />
                    
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 Bikiran.Engine --version 1.4.0
                    
#r "nuget: Bikiran.Engine, 1.4.0"
                    
#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 Bikiran.Engine@1.4.0
                    
#: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=Bikiran.Engine&version=1.4.0
                    
Install as a Cake Addin
#tool nuget:?package=Bikiran.Engine&version=1.4.0
                    
Install as a Cake Tool

Bikiran.Engine

NuGet License: MIT .NET 8

Bikiran.Engine is a workflow automation engine for .NET 8 applications. It lets you chain together multiple steps — HTTP calls, emails, database queries, conditions, loops, and custom logic — into automated background flows that run inside your own app.

Think of it as n8n or Zapier embedded directly inside your .NET application, sharing your database, services, and HTTP pipeline.


Features

  • Fluent Builder API — build workflows by chaining method calls in C#
  • 9 Built-in Node Types — HTTP requests, emails, conditions, loops, retries, parallel execution, and more
  • Background Execution — flows run asynchronously without blocking the caller
  • Persistent Logging — every step is recorded in the database with timing and error details
  • Lifecycle Events — run handlers on success, failure, or always after a flow completes
  • Reusable JSON Definitions — save flow templates as JSON and trigger them without redeploying code
  • Scheduled Execution — run flows on a cron schedule, at fixed intervals, or at a specific future time
  • Custom Nodes — create your own node types for any business logic
  • Named Credentials — register SMTP or API credentials once and reference them by name
  • Admin REST API — monitor, manage, and trigger flows through built-in endpoints
  • Auto Database Migration — schema is created and updated automatically on startup

Installation

dotnet add package Bikiran.Engine

Quick Setup

1 — Register Services

In Program.cs:

builder.Services.AddBikiranEngine(options =>
{
    options.ConnectionString = builder.Configuration.GetConnectionString("Default");
});

Note: You must also register your EF Core database provider (e.g., AddMySql, AddNpgsql, or AddSqlServer) and pass it to AddBikiranEngine. See the Getting Started guide for details.

2 — Map Admin Endpoints

app.MapBikiranEngineEndpoints();

That's it. On first startup, all required database tables are created automatically.


Your First Flow

var serviceId = await FlowBuilder
    .Create("my_first_flow")
    .AddNode(new WaitNode("pause") { DelayMs = 1000 })
    .AddNode(new HttpRequestNode("call_api") {
        Url = "https://httpbin.org/get",
        OutputKey = "api_response"
    })
    .StartAsync();
// Returns immediately — the flow runs in the background

Built-in Node Types

Node Purpose
WaitNode Pause execution for a set duration
HttpRequestNode Make an outbound HTTP call with retries
EmailSendNode Send an email via SMTP
IfElseNode Branch on a condition
WhileLoopNode Repeat steps while a condition is true
DatabaseQueryNode<T> Run an EF Core query
TransformNode Reshape or derive values from context
RetryNode Wrap any node with retry + backoff logic
ParallelNode Run multiple branches concurrently

Full Setup Example

builder.Services.AddBikiranEngine(options =>
{
    options.ConnectionString = builder.Configuration.GetConnectionString("Default");
    options.DefaultMaxExecutionTime = TimeSpan.FromMinutes(10);
    options.EnableNodeLogging = true;

    options.AddCredential("smtp_primary", new SmtpCredential
    {
        Host = "smtp.example.com",
        Port = 587,
        Username = "noreply@example.com",
        Password = builder.Configuration["Smtp:Password"],
        UseSsl = true
    });
});

app.MapBikiranEngineEndpoints();

Documentation

Document Topic
Introduction Overview and architecture
Getting Started Installation, setup, and your first flow
Building Flows FlowBuilder API and execution model
Built-in Nodes All 9 node types with examples
Flow Definitions Reusable JSON flow templates
Scheduling Cron, interval, and one-time scheduling
Custom Nodes Creating your own node types
Admin API REST endpoints for managing flows
Database Reference Schema details
Examples Practical code examples

Admin API Endpoints

All routes are under /api/bikiran-engine/:

Flow Runs/runs

Method Route Description
GET /runs List all runs (paginated)
GET /runs/{serviceId} Get run details with node logs
GET /runs/{serviceId}/progress Get progress percentage
GET /runs/status/{status} Filter runs by status
DELETE /runs/{serviceId} Soft-delete a run

Flow Definitions/definitions

Method Route Description
GET /definitions List definitions (latest versions)
GET /definitions/{key} Get latest version
GET /definitions/{key}/versions List all versions
POST /definitions Create a definition
PUT /definitions/{key} Update (auto-increments version)
PATCH /definitions/{key}/toggle Enable or disable
DELETE /definitions/{key} Soft-delete
POST /definitions/{key}/trigger Trigger with parameters
POST /definitions/{key}/dry-run Validate without executing
GET /definitions/{key}/runs List runs from this definition
POST /definitions/validate Validate FlowJson
PATCH /definitions/{key}/versions/{ver}/activate Activate a specific version
GET /definitions/{key}/versions/diff?v1=&v2= Compare two versions
GET /definitions/{key}/export Export a definition
GET /definitions/export-all Export all definitions
POST /definitions/import Import a definition
POST /definitions/extract-parameters Extract {{placeholder}} names

Flow Schedules/schedules

Method Route Description
GET /schedules List all schedules
GET /schedules/{key} Get details with next fire time
POST /schedules Create a schedule
PUT /schedules/{key} Update and re-register in Quartz
PATCH /schedules/{key}/toggle Enable or disable
DELETE /schedules/{key} Soft-delete and unregister
POST /schedules/{key}/run-now Trigger immediately
GET /schedules/{key}/runs List runs from this schedule

License

MIT © Bikiran Dev

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.4.0 72 3/24/2026
1.3.3 59 3/24/2026
1.3.2 62 3/24/2026
1.3.1 61 3/24/2026
1.3.0 61 3/24/2026
1.2.0 61 3/24/2026
1.1.0 74 3/24/2026
1.0.2 75 3/23/2026
1.0.1 75 3/23/2026
1.0.0 76 3/22/2026