QaaS.Configuration 1.0.1

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

QaaS Configuration

QaaS.Configuration is a small NuGet package that supplies fallback configuration defaults to QaaS packages.

The package is intentionally 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 values.

How it works

  1. A consuming QaaS package declares a NuGet dependency on QaaS.Configuration.
  2. When a consuming app restores that package, NuGet also restores QaaS.Configuration.
  3. This package injects a small module initializer into the consuming build through buildTransitive.
  4. On application startup, that initializer calls QaaS.Configuration.ConfigurationBootstrap.Register().
  5. ConfigurationBootstrap.Register() calls QaaS.Framework.Executions.ExecutionLogging.RegisterDefaults(...) by reflection.
  6. Later, QaaS.Framework.Executions uses Elastic 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. ReportPortal defaults are exposed as static values for consumers that opt into reading them.

Where to change defaults

The built-in values live in:

  • QaaS.Configuration/ElasticDefaults.cs
  • QaaS.Configuration/ReportPortalDefaults.cs

Public/default package values should stay:

  • ElasticDefaults.SendLogs = false
  • ElasticDefaults.ElasticUri = null
  • ElasticDefaults.ElasticUsername = null
  • ElasticDefaults.ElasticPassword = null
  • ReportPortalDefaults.Enabled = true
  • ReportPortalDefaults.ReportPortalUri = null
  • ReportPortalDefaults.ReportPortalApiKey = null

For the air-gapped variant, edit those files or use QaaS.Configuration.Tools, then 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.Configuration
  • Built-in Elastic defaults: disabled / null values
  • Built-in ReportPortal defaults: enabled / 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.Configuration
  • the same version as the public package
  • different values in ElasticDefaults.cs and/or ReportPortalDefaults.cs

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

Example air-gapped defaults:

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

public static class ReportPortalDefaults
{
    public static bool Enabled => true;
    public static string? ReportPortalUri => "https://your-internal-reportportal";
    public static string? ReportPortalApiKey => "your-api-key";
}

Breaking rename

This repository was renamed from QaaS.ElasticBootstrap to QaaS.Configuration.

Breaking public API changes:

  • Package ID changed from QaaS.ElasticBootstrap to QaaS.Configuration.
  • Namespace changed from QaaS.ElasticBootstrap to QaaS.Configuration.
  • ElasticBootstrapDefaults was renamed to ElasticDefaults.
  • Bootstrap was renamed to ConfigurationBootstrap.

CI and publish

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

  • it restores, builds, and tests 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

Build

Build:

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

Test:

dotnet test .\QaaS.Configuration.sln -c Release

Pack:

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

Example push to a NuGet source:

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

For air-gapped use, do not change the public workflow. Instead, use QaaS.Configuration.Tools to rebuild the same package ID and version with your internal defaults, then push that internal package to the higher-priority Artifactory source.

dotnet run --project .\QaaS.Configuration.Tools\QaaS.Configuration.Tools.csproj -- `
  --package-version 1.0.0 `
  --send-logs true `
  --elastic-uri http://your-internal-elastic:9200 `
  --reportportal-enabled true `
  --reportportal-uri https://your-internal-reportportal `
  --reportportal-api-key <key> `
  --push-to-artifactory true `
  --artifactory-source https://your-artifactory.example/api/nuget/qaas-local `
  --artifactory-api-key <key>
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.Configuration:

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.1 96 5/11/2026