Platform.Sdk 1.0.0-alpha.3

Suggested Alternatives

Vouchfx.Sdk 1.0.0-alpha.4

This is a prerelease version of Platform.Sdk.
The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Platform.Sdk --version 1.0.0-alpha.3
                    
NuGet\Install-Package Platform.Sdk -Version 1.0.0-alpha.3
                    
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="Platform.Sdk" Version="1.0.0-alpha.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Platform.Sdk" Version="1.0.0-alpha.3" />
                    
Directory.Packages.props
<PackageReference Include="Platform.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 Platform.Sdk --version 1.0.0-alpha.3
                    
#r "nuget: Platform.Sdk, 1.0.0-alpha.3"
                    
#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 Platform.Sdk@1.0.0-alpha.3
                    
#: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=Platform.Sdk&version=1.0.0-alpha.3&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Platform.Sdk&version=1.0.0-alpha.3&prerelease
                    
Install as a Cake Tool

Platform.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.

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 Platform.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 Platform.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.

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

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