Vouchfx.Sdk 1.0.0-alpha.10

Prefix Reserved
This is a prerelease version of Vouchfx.Sdk.
dotnet add package Vouchfx.Sdk --version 1.0.0-alpha.10
                    
NuGet\Install-Package Vouchfx.Sdk -Version 1.0.0-alpha.10
                    
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="Vouchfx.Sdk" Version="1.0.0-alpha.10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vouchfx.Sdk" Version="1.0.0-alpha.10" />
                    
Directory.Packages.props
<PackageReference Include="Vouchfx.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 Vouchfx.Sdk --version 1.0.0-alpha.10
                    
#r "nuget: Vouchfx.Sdk, 1.0.0-alpha.10"
                    
#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 Vouchfx.Sdk@1.0.0-alpha.10
                    
#: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=Vouchfx.Sdk&version=1.0.0-alpha.10&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Vouchfx.Sdk&version=1.0.0-alpha.10&prerelease
                    
Install as a Cake Tool

Vouchfx.Sdk

The compile-time provider SDK for authoring vouchfx step providers. This package is the frozen v1 contract (v1.x engine series) — the narrow, strongly-typed surface a provider compiles against.

Install this package if you are writing a new vouchfx step provider. If you only need to author and run .e2e.yaml suites, install the vouchfx CLI tool instead — Vouchfx.Sdk is for provider authors, not test authors.

vouchfx compiles declarative .e2e.yaml integration tests into C#, runs them through Roslyn, and orchestrates the required container topology with .NET Aspire + Testcontainers to test distributed .NET systems end-to-end — one business transaction crossing a REST call, a Kafka event, a DB mutation and an outbound webhook.

What this package gives you

A step provider is a compile-time, source-level plugin — there is no runtime loader, no dynamic assembly loading, and no sandbox. You add a project, reference Vouchfx.Sdk, implement the contract interfaces, and mark your provider class [StepProvider]; the engine's reflective StepKindRegistry (frozen at startup) discovers it.

The contract surface exposed by this package:

Type Role
IStepProvider Provider identity (Kind + Metadata).
IStepBinder<TModel> Deserialises a step's YAML into a strongly-typed model + supplies its JSON Schema fragment.
IStepValidator<TModel> Validates a bound model with author-friendly diagnostics.
IStepCompiler<TModel> Emits the CsxFragment spliced into the compiled test delegate.
IResourceContributor<TModel> Contributes Aspire resources a step needs.
IStepModel Marker every provider step-model record implements.
StepKindId The <family>.<provider> identity (e.g. db-assert.postgres).
ProviderMetadata Version / min-engine-version / licence / authors.
CsxFragment RequiredUsings + RequiredHelpers + one brace-enclosed StatementBlock.
[StepProvider] Discovery attribute placed on the provider class.

Quick start

using Vouchfx.Sdk;

[StepProvider]
public sealed class MyProvider : IStepProvider
{
    public StepKindId Kind => new("db-assert", "postgres");

    public ProviderMetadata Metadata => new(
        Version: "1.0.0",
        MinEngineVersion: "1.0.0",
        License: "Apache-2.0",
        Authors: new[] { "you" });
}

Then implement IStepBinder<TModel>, IStepValidator<TModel>, IStepCompiler<TModel>, and (if the step needs infrastructure) IResourceContributor<TModel> for your model.

Authoring rules that matter

  • Step type = <family>.<provider> — family is the intent (db-assert), provider is the technology (postgres).
  • Models are strongly-typed records, never Dictionary<string,object>.
  • CsxFragment composition: RequiredUsings are bare namespace strings (never inline using lines); RequiredHelpers are nested static classes prefixed with your provider id; the StatementBlock is exactly one brace-enclosed C# block. using var is illegal in a Roslyn script body — use plain var + explicit .Dispose() in a finally. Sanitise step ids with CsxFragment.SanitiseId before splicing.
  • Cross-step state passes only through the Vars global.

The v1 interface contract is frozen for the v1.x engine series — evolution is additive only, via new optional interfaces.

Status

Ships as 1.0.0-alpha.x pre-releases ahead of v1.0 GA. When available on NuGet.org, install with dotnet add package Vouchfx.Sdk --prerelease. Pre-release version numbers do not affect the contract guarantee above: the frozen v1 interfaces are stable now, for the whole v1.x series.

Contributing a provider

The authoritative provider-authoring guide is the provider architecture section (§13) of the Technical Architecture and Engineering Blueprint, alongside the CONTRIBUTING guide in the repository:

Licence

Apache-2.0. See LICENSE.

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 (4)

Showing the top 4 NuGet packages that depend on Vouchfx.Sdk:

Package Downloads
Vouchfx.Engine.Authoring

vouchfx engine assembly — published to enable the Vouchfx.Sdk.Testing provider harness. TESTING SURFACE, NOT the frozen v1 provider contract (that is Vouchfx.Sdk). Semver-evolved per engine release.

Vouchfx.Engine.Compilation

vouchfx engine assembly — published to enable the Vouchfx.Sdk.Testing provider harness. TESTING SURFACE, NOT the frozen v1 provider contract (that is Vouchfx.Sdk). Semver-evolved per engine release.

Vouchfx.Sdk.Testing

Out-of-repo provider test harness for vouchfx step providers. Drives a single-step .e2e.yaml end to end (schema-validate → parse → AST → bind → validate → emit → compile-once → run-isolated) so a provider author can prove a custom provider works against the published engine. TESTING SURFACE — depends on the versioned-not-frozen engine assemblies; the frozen v1 provider contract is Vouchfx.Sdk.

Vouchfx.Community.JsonRpc

JSON-RPC 2.0 over HTTP step provider for vouchfx — invokes a method and asserts on the result/error envelope.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-alpha.10 0 7/21/2026
1.0.0-alpha.9 85 7/18/2026
1.0.0-alpha.8 59 7/18/2026
1.0.0-alpha.7 148 7/13/2026
1.0.0-alpha.6 77 7/12/2026
1.0.0-alpha.5 95 7/11/2026
1.0.0-alpha.4 97 7/10/2026