Bikiran.Engine 1.7.1

dotnet add package Bikiran.Engine --version 1.7.1
                    
NuGet\Install-Package Bikiran.Engine -Version 1.7.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="Bikiran.Engine" Version="1.7.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bikiran.Engine" Version="1.7.1" />
                    
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.7.1
                    
#r "nuget: Bikiran.Engine, 1.7.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 Bikiran.Engine@1.7.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=Bikiran.Engine&version=1.7.1
                    
Install as a Cake Addin
#tool nuget:?package=Bikiran.Engine&version=1.7.1
                    
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#
  • 11 Built-in Node Types — start/end markers, 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
  • Time-Weighted Progress — track live progress percentages weighted by each node's declared ApproxExecutionTime
  • 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")
    .StartingNode("Flow is starting")
    .WaitingNode("Pausing briefly", TimeSpan.FromSeconds(1))
    .AddNode(new HttpRequestNode("call_api") {
        Url = "https://httpbin.org/get",
        OutputKey = "api_response"
    })
    .EndingNode("Flow completed successfully.")
    .StartAsync();
// Returns immediately — the flow runs in the background

Built-in Node Types

Node Purpose
StartingNode Mark the start of a flow with an optional pause (optional)
EndingNode Mark the successful end of a flow (optional)
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 11 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 License - see the LICENSE file for details.

👨‍💻 Author

Developed by Bikiran


<div align="center">

Made with ❤️ for the .NET community

⭐ Star this repo🐛 Report Bug💡 Request Feature

</div>


🏢 About Bikiran

Bikiran is a software development and cloud infrastructure company founded in 2012, headquartered in Khulna, Bangladesh. With 15,000+ clients and over a decade of experience, Bikiran builds and operates a suite of products spanning domain services, cloud hosting, app deployment, workflow automation, and developer tools.

SL Topic Product Description
1 Website Bikiran Main platform — Domain, hosting & cloud services
2 Website Edusoft Education management software for institutions
3 Website n8n Clouds Managed n8n workflow automation hosting
4 Website Timestamp Zone Unix timestamp converter & timezone tool
5 Website PDFpi Online PDF processing & manipulation tool
6 Website Blog Technical articles, guides & tutorials
7 Website Support 24/7 customer support portal
8 Website Probackup Automated database backup for SQL, PostgreSQL & MongoDB
9 Service Domain Domain registration, transfer & DNS management
10 Service Hosting Web, app & email hosting on NVMe SSD
11 Service Email & SMS Bulk email & SMS notification service
12 npm Chronopick Date & time picker React component
13 npm Rich Editor WYSIWYG rich text editor for React
14 npm Button Reusable React button component library
15 npm Electron Boilerplate CLI to scaffold Electron.js project templates
16 NuGet Bkash bKash payment gateway integration for .NET
17 NuGet Bikiran Engine Core .NET engine library for Bikiran services
18 Open Source PDFpi PDF processing tool — open source
19 Open Source Bikiran Engine Core .NET engine — open source
20 Open Source Drive CLI CLI tool to manage Google Drive from terminal
21 Docker Pgsql Docker setup for PostgreSQL
22 Docker n8n Docker setup for n8n automation
23 Docker Pgadmin Docker setup for pgAdmin
24 Social Media LinkedIn Bikiran on LinkedIn
25 Social Media Facebook Bikiran on Facebook
26 Social Media YouTube Bikiran on YouTube
27 Social Media FB n8nClouds n8n Clouds on Facebook
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.7.1 123 4/22/2026
1.7.0 104 4/20/2026
1.6.1 92 4/20/2026
1.6.0 92 4/19/2026
1.5.1 101 4/19/2026
1.5.0 171 3/31/2026
1.4.0 150 3/24/2026
1.3.3 98 3/24/2026
1.3.2 103 3/24/2026
1.3.1 100 3/24/2026
1.3.0 101 3/24/2026
1.2.0 106 3/24/2026
1.1.0 108 3/24/2026
1.0.2 101 3/23/2026
1.0.1 100 3/23/2026
1.0.0 103 3/22/2026