QaaS.ElasticBootstrap 1.0.0

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

QaaS Elastic Bootstrap

QaaS.ElasticBootstrap is a small NuGet package that supplies fallback Elastic logging defaults to QaaS.Framework.Executions.

The package is meant to stay separate from QaaS.Framework. The framework keeps its normal flag-driven behavior, and this package only fills in defaults when a run did not already provide explicit Elastic settings.

How it works

  1. QaaS.Framework.Executions declares a NuGet dependency on QaaS.ElasticBootstrap version 1.0.0.
  2. When a consuming app restores QaaS.Framework.Executions, NuGet also restores QaaS.ElasticBootstrap.
  3. This package injects a small module initializer into the consuming build through buildTransitive.
  4. On application startup, that initializer calls QaaS.ElasticBootstrap.Bootstrap.Register().
  5. Bootstrap.Register() calls QaaS.Framework.Executions.ExecutionLogging.RegisterDefaults(...) by reflection.
  6. Later, QaaS.Framework.Executions uses those defaults only when the run did not already specify send-logs, elastic-uri, elastic-username, elastic-password, or a logger configuration file.

The existing Elastic sink behavior in QaaS.Framework is unchanged. This package only provides fallback values.

Where to change the defaults

The built-in values live in:

QaaS.ElasticBootstrap/ElasticBootstrapDefaults.cs

Public/default package values should stay:

  • SendLogs = false
  • ElasticUri = null
  • ElasticUsername = null
  • ElasticPassword = null

For the air-gapped variant, edit that file and rebuild the package with the same package ID and the same version.

Public package behavior

The public package should be published as:

  • Package ID: QaaS.ElasticBootstrap
  • Version: 1.0.0
  • Built-in defaults: disabled / null values

That version is safe to publish publicly because it does not contain any classified endpoint or credentials.

Air-gapped package behavior

Inside the air-gapped environment, publish another package with:

  • the same package ID: QaaS.ElasticBootstrap
  • the same version: 1.0.0
  • different values in ElasticBootstrapDefaults.cs

Your Artifactory virtual NuGet source must resolve the air-gapped bootstrap repo before the mirrored public repo. That way the virtual feed serves the internal 1.0.0 package, not the public 1.0.0 package.

Do not rely on multiple client-side NuGet sources that both expose QaaS.ElasticBootstrap 1.0.0. In local validation, NuGet preferred the package from the same source as QaaS.Framework.Executions. The override needs to happen server-side in the virtual feed that the client restores from.

Example air-gapped defaults:

public static class ElasticBootstrapDefaults
{
    public static bool SendLogs => true;
    public static string? ElasticUri => "http://your-internal-elastic:9200";
    public static string? ElasticUsername => null;
    public static string? ElasticPassword => null;
}

Important limitation

This design only works if the bootstrap package version required by QaaS.Framework.Executions is available on the restore sources used to build and consume the framework package.

Because the framework package now depends on QaaS.ElasticBootstrap, you must publish the public 1.0.0 package before publishing a framework version that references it.

CI and publish

This repository includes a GitHub Actions workflow that matches the QaaS package publishing pattern used in other repos such as QaaS.Runner:

  • it restores and builds on every push and pull request
  • it packs only when a Git tag is pushed
  • it publishes to NuGet.org using the repository secret NUGET_AUTH_TOKEN

For the public package, create and push tag 1.0.0 from the commit you want to publish.

Build

Build:

dotnet build .\QaaS.ElasticBootstrap.sln -c Release

Pack version 1.0.0:

dotnet pack .\QaaS.ElasticBootstrap\QaaS.ElasticBootstrap.csproj `
  -c Release `
  -p:PackageVersion=1.0.0 `
  -p:Version=1.0.0

Example push to a NuGet source:

dotnet nuget push .\QaaS.ElasticBootstrap\bin\Release\QaaS.ElasticBootstrap.1.0.0.nupkg `
  --source <your-source-name> `
  --skip-duplicate

For air-gapped use, do not change the public workflow. Instead, use the internal packaging script in scripts/Publish-InternalElasticBootstrapPackage.ps1 to rebuild the same package ID and version with your internal defaults, then push that internal package to the higher-priority Artifactory source.

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.
  • net10.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on QaaS.ElasticBootstrap:

Package Downloads
QaaS.Framework.Executions

Execution orchestration for QaaS test workflows.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 424 3/22/2026