Internal Dream Consistency shared backend library with common extensions, API helpers, middleware, operation result models, exception handling helpers, and utility classes.
DreamConsistency.Extensions is an internal shared package used across
Dream Consistency backend services. It contains reusable infrastructure-level helpers,
middleware, operation result models, exception handling helpers, API utilities, and
common extension methods.
| Property | Current Decision |
|---|---|
| Package ID | DreamConsistency.Extensions |
| First NuGet Release | 1.0.0 |
| Latest Documented Release | 1.0.3 |
| Target Framework | .NET Standard 2.1 |
| NuGet Feed | https://nuget.dreamconsistency.com/v3/index.json |
| Package Hosting | BaGetter on Dream Consistency Hub server. |
| Release Pipeline | DreamConsistency.Extensions - NuGet Release |
| Jenkins Folder | DreamConsistency - Packages |
| Versioning | Semantic Versioning: MAJOR.MINOR.PATCH |
| Visibility | Internal Dream Consistency package. |
The purpose of this package is to avoid duplicated low-level backend helper code across Dream Consistency services. It should provide shared infrastructure helpers that are useful for multiple products and services.
| Area | Responsibility |
|---|---|
| Extension Methods | Common C# extension methods used by backend services. |
| API Helpers | Common helpers for API request/response handling and backend service utilities. |
| Middleware | Reusable middleware such as exception handling, API key checks, and service whitelist checks. |
| Operation Results | Shared operation result models used to standardize service method outcomes. |
| Exception Handling | Common exception models, error codes, and error handling infrastructure. |
| Utilities | Small reusable utility classes for files, strings, serialization, logging, and similar backend needs. |
The package is a shared toolbox. It should stay small, reusable, and stable. If functionality becomes large or domain-specific, it should be moved to a dedicated package or kept inside the consuming product repository.
Consuming projects must include the internal Dream Consistency NuGet feed.
Install the package:
Or add it directly to the project file:
This package is used by backend services through normal C# imports and dependency references. The exact namespaces depend on the helper being used.
Example operation result usage:
The most important maintenance rule is to keep this package reusable and product-neutral.
| Allowed in Package | Not Allowed in Package |
|---|---|
| Generic extension methods | Legislator business logic |
| Generic API helpers | Hestino business logic |
| Common middleware | Tenant-specific query methods |
| Operation result models | Generated database table classes |
| Common exception classes | Product-specific controllers |
| Serialization and file utilities | Connection strings and secrets |
| Small reusable backend helpers | Environment-specific configuration |
Dependencies in this package should be kept minimal because every consuming backend service receives them transitively.
| Rule | Reason |
|---|---|
| Keep dependencies minimal | Shared packages should not force unnecessary libraries into every backend service. |
| Check vulnerabilities before release | The Jenkins pipeline stops release when vulnerable packages are detected. |
| Avoid product-specific dependencies | This package must remain reusable across Legislator, Hestino, and future services. |
| Move large areas into separate packages | If one responsibility grows too much, it should become its own package. |
Package releases are done manually through Jenkins after changes are merged to master.
1.0.2 is already published, the next release must be 1.0.3,
1.1.0, or another valid SemVer version.
| Setting | Value |
|---|---|
| Jenkins Folder | DreamConsistency - Packages |
| Job Name | DreamConsistency.Extensions - NuGet Release |
| Repository | git@bitbucket.org:skyrocket_novisad/dreamconsistency.extensions.git |
| Branch | master |
| Jenkinsfile | Jenkinsfile |
| Build Agent | mcr.microsoft.com/dotnet/sdk:10.0 |
| BaGetter Credential | dreamconsistency-nuget-api-key |
| Bitbucket Credential | Dream Consistency Core Architecture Project Access Key |
The package uses Semantic Versioning.
| Version Type | Example | Meaning |
|---|---|---|
| Patch | 1.0.2 |
Bug fix with no breaking changes. |
| Minor | 1.1.0 |
New functionality with no breaking changes. |
| Major | 2.0.0 |
Breaking changes. |
| Risk / Note | Decision |
|---|---|
| Package can become too broad | Keep it focused on small reusable backend helpers and split large areas into separate packages if needed. |
| Transitive dependency risk | All dependencies must be reviewed because consuming services inherit them. |
| Product-specific leakage | Legislator and Hestino-specific logic must remain in product repositories. |
| Breaking changes | Changes to public APIs, namespaces, or behavior require careful versioning. |
| Security-sensitive helpers | Authentication, API key, whitelist, and exception handling helpers must be reviewed carefully before release. |
Detailed developer documentation is maintained in the repository README.md.
This Wiki page is the central operational reference for package ownership, boundaries,
release flow, and package usage decisions.
| Date | Change | Author |
|---|---|---|
| 2026-07-08 | Updated the current version of DreamConsistency.Extensions. |
Branko |
| 2026-07-04 | Initial documentation page created for DreamConsistency.Extensions. |
Branko |
| 2026-07-04 | Internal NuGet release pipeline documented. | Branko |