Endatix.Framework 0.7.0

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

Endatix.Framework

This package provides common plugin and extensibility points used to extend or customize the Endatix Platform. It allows developers to build and integrate custom functionality within the platform.

Endatix Platform is an open-source data collection and management library for .NET. It is designed for building secure, scalable, and integrated form-centric applications that work with SurveyJS. Endatix empowers business users with advanced workflows, automation, and meaningful insights.

Installation:

dotnet add package Endatix.Framework

For running and hosting the Endatix Platform, Endatix.Api.Host is the recommended main package as it simplifies the installation and setup process.

dotnet add package Endatix.Api.Host

Module kernel

Optional platform modules implement IEndatixModule. The host registers them via EndatixBuilder.UseModule({Name}Module.Instance), which scans the module assembly for MediatR handlers and FastEndpoints and calls ConfigureServices at finalization.

Contract Purpose
IEndatixModule Required entry point — Assembly + ConfigureServices
IHasFeatureFlag Optional — module skipped when flag is disabled in Endatix:FeatureFlags
IHasDbMigrations Optional marker — module ships EF migrations; host warns if no contributor was registered
IDbContextMigrationContributor Opt-in startup migration contract for module/custom DbContexts

Startup migrations (two phases)

When Endatix:Data:EnableAutoMigrations is true, DatabaseMigrationService runs:

  1. Core (always)AppDbContext and AppIdentityDbContext are migrated automatically; no contributor registration required.
  2. Modules (opt-in) — each module with its own DbContext calls AddDbContextWithMigrations<TContext> in ConfigureServices (registers DbContext + migration contributor).

Module persistence checklist

  1. Create {Name}Module : IEndatixModule, IHasDbMigrations (+ IHasFeatureFlag when optional).
  2. In ConfigureServices, call builder.AddDbContextWithMigrations<TContext>(...) from Endatix.Infrastructure.Data (registers DbContext + migration contributor).
  3. Use a dedicated schema and module-owned Persistence/ folder for entities, configs, and migrations.
  4. Prefer provider-split DbContext types (one snapshot per provider) over namespace-filtered single contexts when supporting PostgreSQL and SQL Server.
  5. Do not add Setup.cs — all DI belongs on the module class.

Observability (startup)

Startup logging uses Microsoft.Extensions.Logging source generation — not Serilog APIs — so hosts can switch to OpenTelemetry without changing call sites.

Layer responsibilities

Layer Responsibility
Framework EndatixEventIds (global registry), EndatixLoggerExtensions (generic operation lifecycle only)
Infrastructure / Hosting Domain-specific *LoggerExtensions collocated with the feature (e.g. MigrationLoggerExtensions, EndatixBuilderLoggerExtensions)

Framework exposes only generic primitives:

  • EndatixEventIds — platform-wide stable EventId registry (claim a range before adding domain extensions)
  • EndatixLoggerExtensionsLogOperationStarted, LogOperationCompleted, LogOperationSkipped, LogOperationFailed

Domain-specific messages (migrations, seeding, host builders) belong in collocated *LoggerExtensions types in Infrastructure or Hosting — not in Framework.

Event ID registry

EndatixEventIds follows the same grouping pattern as Actions — nested static classes per area, plus utility collections:

EndatixEventIds.Lifecycle.OperationStarted      // Framework
EndatixEventIds.Migrations.DbContextMigrated    // Infrastructure
EndatixEventIds.Seeding.SampleDataSeeded        // Infrastructure
EndatixEventIds.IdentitySeed.UserCreated        // Infrastructure
EndatixEventIds.Hosting.ModuleRegistered        // Hosting

EndatixEventIds.Ranges.MigrationsStart          // claim before adding IDs
EndatixEventIds.Migrations.All                  // all IDs in a group
EndatixEventIds.IsMigration(eventId)            // range helpers
Nested class Range Owner
Lifecycle 1000–1003 Framework
Migrations 1004–1099 Infrastructure
Seeding / IdentitySeed 1100–1199 Infrastructure
Hosting 1200–1299 Hosting
Ranges.* 2000+ Reserved (Auth, Forms, Webhooks)

Claim a block in EndatixEventIds.Ranges before adding domain extensions.

Usage

Always pass the caller's typed ILogger (e.g. ILogger<DatabaseMigrationService>) so logger category is preserved for tracing.

Use Framework primitives for lifecycle; domain wrappers for specialized messages:

// Framework — generic lifecycle
_logger.LogOperationStarted(MigrationOperations.ApplyDbMigrations);

// Infrastructure — domain-specific (collocated)
_logger.LogDbContextMigrated(nameof(AppDbContext), durationMs);

Existing domain wrappers:

Package Location
Infrastructure Data/Logging/MigrationLoggerExtensions.cs, Data/Logging/DataSeedingLoggerExtensions.cs
Infrastructure Identity/Seed/IdentitySeedLoggerExtensions.cs
Hosting Builders/Logging/EndatixBuilderLoggerExtensions.cs

OTEL attribute mapping

MEL placeholder → future log attribute:

Placeholder OTEL alignment
Operation operation.name / custom dimension
DbContext Application-specific; pairs with future db.operation.name spans
DurationMs Duration in milliseconds
DbSystem db.system (e.g. SqlServer, PostgreSql)
Reason Skip/disable reason
EventId Stable correlation via EndatixEventIds

See high-performance logging.

More Information:

For detailed installation instructions, please visit Endatix Installation Guide.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Endatix.Framework:

Package Downloads
Endatix.Infrastructure

This package provides implementations of the application's dependencies and external resources. It includes infrastructure-level services like database access, messaging, and other integrations. Endatix Platform is an open-source data collection and management library for .NET.

Endatix.Api

This package contains the key presentation layer of the Endatix Platform, including both Public and Management APIs. Endatix Platform is an open-source data collection and management library for .NET.

Endatix.Persistence.SqlServer

This package provides implementations of the application's dependencies and external resources. It includes infrastructure-level services like database access, messaging, and other integrations. Endatix Platform is an open-source data collection and management library for .NET.

Endatix.Persistence.PostgreSql

This package provides implementations of the application's dependencies and external resources. It includes infrastructure-level services like database access, messaging, and other integrations. Endatix Platform is an open-source data collection and management library for .NET.

Endatix.Hosting

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.7.0 151 7/8/2026
0.6.0 857 2/16/2026
0.5.1 441 12/5/2025
0.5.0 229 11/28/2025
0.4.2 2,095 6/27/2025
0.4.1 272 5/9/2025
0.4.0 271 4/25/2025
0.3.0 307 3/27/2025
0.2.0 278 2/10/2025
0.1.0 2,972 8/23/2024