Vouchfx.Sdk
1.0.0-alpha.10
Prefix Reserved
dotnet add package Vouchfx.Sdk --version 1.0.0-alpha.10
NuGet\Install-Package Vouchfx.Sdk -Version 1.0.0-alpha.10
<PackageReference Include="Vouchfx.Sdk" Version="1.0.0-alpha.10" />
<PackageVersion Include="Vouchfx.Sdk" Version="1.0.0-alpha.10" />
<PackageReference Include="Vouchfx.Sdk" />
paket add Vouchfx.Sdk --version 1.0.0-alpha.10
#r "nuget: Vouchfx.Sdk, 1.0.0-alpha.10"
#:package Vouchfx.Sdk@1.0.0-alpha.10
#addin nuget:?package=Vouchfx.Sdk&version=1.0.0-alpha.10&prerelease
#tool nuget:?package=Vouchfx.Sdk&version=1.0.0-alpha.10&prerelease
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>. CsxFragmentcomposition:RequiredUsingsare bare namespace strings (never inlineusinglines);RequiredHelpersare nested static classes prefixed with your provider id; theStatementBlockis exactly one brace-enclosed C# block.using varis illegal in a Roslyn script body — use plainvar+ explicit.Dispose()in afinally. Sanitise step ids withCsxFragment.SanitiseIdbefore splicing.- Cross-step state passes only through the
Varsglobal.
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:
- Provider architecture (§13):
docs/01_Technical_Architecture_and_Engineering_Blueprint.md - Contributing guide:
CONTRIBUTING.md
Licence
Apache-2.0. See LICENSE.
| Product | Versions 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. |
-
net8.0
- YamlDotNet (>= 16.3.0)
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 |