QaaS.Configuration
1.0.1
dotnet add package QaaS.Configuration --version 1.0.1
NuGet\Install-Package QaaS.Configuration -Version 1.0.1
<PackageReference Include="QaaS.Configuration" Version="1.0.1" />
<PackageVersion Include="QaaS.Configuration" Version="1.0.1" />
<PackageReference Include="QaaS.Configuration" />
paket add QaaS.Configuration --version 1.0.1
#r "nuget: QaaS.Configuration, 1.0.1"
#:package QaaS.Configuration@1.0.1
#addin nuget:?package=QaaS.Configuration&version=1.0.1
#tool nuget:?package=QaaS.Configuration&version=1.0.1
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
- A consuming QaaS package declares a NuGet dependency on
QaaS.Configuration. - When a consuming app restores that package, NuGet also restores
QaaS.Configuration. - This package injects a small module initializer into the consuming build through
buildTransitive. - On application startup, that initializer calls
QaaS.Configuration.ConfigurationBootstrap.Register(). ConfigurationBootstrap.Register()callsQaaS.Framework.Executions.ExecutionLogging.RegisterDefaults(...)by reflection.- Later,
QaaS.Framework.Executionsuses Elastic defaults only when the run did not already specifysend-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.csQaaS.Configuration/ReportPortalDefaults.cs
Public/default package values should stay:
ElasticDefaults.SendLogs = falseElasticDefaults.ElasticUri = nullElasticDefaults.ElasticUsername = nullElasticDefaults.ElasticPassword = nullReportPortalDefaults.Enabled = trueReportPortalDefaults.ReportPortalUri = nullReportPortalDefaults.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.csand/orReportPortalDefaults.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.ElasticBootstraptoQaaS.Configuration. - Namespace changed from
QaaS.ElasticBootstraptoQaaS.Configuration. ElasticBootstrapDefaultswas renamed toElasticDefaults.Bootstrapwas renamed toConfigurationBootstrap.
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 | Versions 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. |
-
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 | 95 | 5/11/2026 |