Meshmakers.Octo.Sdk.MeshAdapter
3.4.148
dotnet add package Meshmakers.Octo.Sdk.MeshAdapter --version 3.4.148
NuGet\Install-Package Meshmakers.Octo.Sdk.MeshAdapter -Version 3.4.148
<PackageReference Include="Meshmakers.Octo.Sdk.MeshAdapter" Version="3.4.148" />
<PackageVersion Include="Meshmakers.Octo.Sdk.MeshAdapter" Version="3.4.148" />
<PackageReference Include="Meshmakers.Octo.Sdk.MeshAdapter" />
paket add Meshmakers.Octo.Sdk.MeshAdapter --version 3.4.148
#r "nuget: Meshmakers.Octo.Sdk.MeshAdapter, 3.4.148"
#:package Meshmakers.Octo.Sdk.MeshAdapter@3.4.148
#addin nuget:?package=Meshmakers.Octo.Sdk.MeshAdapter&version=3.4.148
#tool nuget:?package=Meshmakers.Octo.Sdk.MeshAdapter&version=3.4.148
Octo Mesh Adapter
An ETL (Extract-Transform-Load) pipeline execution engine that manages and executes mesh pipelines. Built on .NET 10.0 with a flexible, node-based architecture for creating data processing workflows.
Features
- Data Extraction: Retrieve entities from MongoDB, execute queries, enrich data from external sources
- Data Transformation: Map values, process documents (Excel, PDF with OCR), integrate AI services
- Data Loading: Persist changes to MongoDB, store time-series data in CrateDB, send email notifications
- Event-Driven Triggers: HTTP endpoints, entity watchers, command bus, email reception
Quick Start
Prerequisites
- .NET 10.0 SDK
- MongoDB
- CrateDB (optional, for time-series data)
Build
# Build the solution
dotnet build
# Build in Release mode
dotnet build -c Release
# Build in DebugL mode (uses local NuGet packages from ../nuget)
dotnet build -c DebugL
Run
dotnet run --project src/MeshAdapter/MeshAdapter.csproj
Project Structure
octo-mesh-adapter/
├── src/
│ ├── MeshAdapter/ # Main executable service
│ ├── MeshAdapter.Sdk/ # SDK with pipeline nodes and services
│ └── MeshNodes.Sdk/ # Node configuration definitions
├── tests/ # Unit tests
└── docs/ # Documentation
Pipeline Nodes
The adapter provides four categories of pipeline nodes:
| Category | Purpose | Examples |
|---|---|---|
| Extract | Data retrieval | GetRtEntitiesById, GetRtEntitiesByType, GetAssociationTargets |
| Transform | Data processing | DataMapping, MakeHttpRequest, PdfOcrExtraction, AnthropicAiQuery |
| Load | Data persistence | ApplyChanges, SaveStreamDataInArchive, EMailSender |
| Trigger | Pipeline initiation | FromHttpRequest, FromWatchRtEntity, FromEmail |
Documentation
- Developer Guide - Architecture, nodes, services, and configuration
- Test Concept - Unit and integration testing strategy
- Integration Test Concept - Testcontainers-based integration testing
- PDF OCR Extraction - PDF text extraction with IronOCR
Examples
- Email Trigger - Configure email-triggered pipelines
- Binary Upload - HTTP binary file upload handling
API reference
scripts/createDocumentation.ps1 generates the published API reference from the XML documentation
of Meshmakers.Octo.MeshAdapter.Nodes and uploads it as a build artifact. The MeshAdapter host
executable is deliberately not documented: it exposes no public API of its own, only the Program
class the compiler generates for top-level statement apps.
Helm chart: SECRET attribute key ring (AB#5536)
The runtime engine binds SecretEncryption:Keys:<kid>, SecretEncryption:ActiveKeyId and
SecretEncryption:LegacyV1Key (concept octo-construction-kit-engine/docs/concept-secret-attribute-type.md
§3.5). The chart in src/charts/octo-mesh-adapter renders them from
secrets.secretEncryption.{keys,activeKeyId,legacyV1Key} as OCTO_SECRETENCRYPTION__KEYS__<kid>,
OCTO_SECRETENCRYPTION__ACTIVEKEYID and OCTO_SECRETENCRYPTION__LEGACYV1KEY (inside
octo-mesh.system-env).
- The communication operator supplies them for
ReceivesClusterSecrets=trueworkloads: keys and the legacy key asvalueFrommaps into{release}-octo-secrets, the active key id as a plain string. - Optional: nothing is rendered when unset, the adapter starts, and only SECRET attribute access fails.
- The key id keeps its case in the variable name (lowercase, validated) because it is the id in the
enc:v2:<kid>:header. - An empty
activeKeyIdwith exactly one key selects that key; with several keys it fails the render.
License
Proprietary - Meshmakers
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- AngleSharp (>= 1.8.0)
- Duende.IdentityModel (>= 8.1.0)
- IronOcr (>= 2026.10.2)
- IronOcr.Languages.German (>= 2020.11.2)
- IronOcr.Linux (>= 2026.10.2)
- IronOcr.MacOs (>= 2026.10.2)
- IronOcr.MacOs.ARM (>= 2026.10.2)
- MailKit (>= 4.17.0)
- Meshmakers.Octo.MeshAdapter.Nodes (>= 3.4.148)
- Meshmakers.Octo.Runtime.Engine.CrateDb (>= 3.4.148)
- Meshmakers.Octo.Runtime.Engine.MongoDb (>= 3.4.148)
- Meshmakers.Octo.Sdk.Adapters (>= 3.4.148)
- Meshmakers.Octo.Sdk.Pipeline (>= 3.4.148)
- Meshmakers.Octo.Sdk.SimulationNodes (>= 3.4.148)
- Meshmakers.Octo.Services.Notifications (>= 3.4.148)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.12)
- Microsoft.ML (>= 5.0.0)
- Microsoft.ML.TimeSeries (>= 5.0.0)
- MimeKit (>= 4.17.0)
- PdfPig (>= 0.1.16)
- PdfSharp (>= 6.2.4)
- QuestPDF (>= 2026.8.0)
- SSH.NET (>= 2026.0.0)
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 |
|---|---|---|
| 3.4.148 | 35 | 10/7/2026 |
| 3.4.147 | 66 | 10/5/2026 |
| 3.4.145 | 53 | 10/5/2026 |
| 3.4.143 | 59 | 10/4/2026 |
| 3.4.142 | 72 | 10/2/2026 |
| 3.4.141 | 55 | 10/2/2026 |
| 3.4.140 | 77 | 10/1/2026 |
| 3.4.139 | 76 | 10/1/2026 |
| 3.4.138 | 95 | 9/30/2026 |
| 3.4.137 | 83 | 9/30/2026 |
| 3.4.136 | 85 | 9/30/2026 |
| 3.4.134 | 106 | 9/26/2026 |
| 3.4.133 | 92 | 9/25/2026 |
| 3.4.132 | 92 | 9/25/2026 |
| 3.4.131 | 91 | 9/24/2026 |
| 3.4.130 | 92 | 9/24/2026 |
| 3.4.129 | 97 | 9/23/2026 |
| 3.4.128 | 105 | 9/23/2026 |
| 3.4.126 | 92 | 9/22/2026 |
| 3.4.125 | 90 | 9/22/2026 |