Versioned source of truth for shared Dream Consistency Billing system catalogs, package manifests, stable UUID identities, validation, and embedded JSON content.
DreamConsistency.BillingCatalogs is an internal Dream Consistency NuGet package
containing versioned system catalog content for Billing databases.
The package targets .NET Standard 2.1 so it can be consumed by Dream Consistency console applications, APIs, validators, provisioning tools, and future platform components without depending on a specific product runtime.
| Area | Status |
|---|---|
| Billing source model analysis | Completed |
| Catalog table identification | Completed |
| Logical package structure | Completed |
| Initial catalog values | Proposed — approval required before publishing 1.0.0 |
| Static project validation | Completed |
| Real restore, build, validation, and pack | Performed by Jenkins using the .NET 10 SDK image |
DreamConsistency.BillingCatalogs is one of the shared system catalog content libraries.
The single DreamConsistency.SystemCatalogInstaller.Cnsl executable installs and upgrades
Realm, Management, Billing, and future shared Dream Consistency system catalogs.
DreamConsistency.SystemCatalogInstaller.Cnsl.
| Property | Value |
|---|---|
| Project Type | Class Library / internal NuGet package |
| Target Framework | netstandard2.1 |
| Language Version | C# 10 |
| Package ID | DreamConsistency.BillingCatalogs |
| Initial Version | 1.0.0 |
| Versioning | Semantic Versioning: MAJOR.MINOR.PATCH |
| NuGet Feed | https://nuget.dreamconsistency.com/v3/index.json |
| Repository | dreamconsistency.billingcatalogs |
| Source Model | BillingDB Current(1).mwb |
The initial catalog inventory was derived from the supplied Billing Workbench model. The model contains 20 tables, of which 8 are shared system catalog tables.
| Table | Logical Package |
|---|---|
DOC_DocumentPartyTypes |
DreamConsistency.Billing.Foundation |
INV_InvoiceStatuses |
DreamConsistency.Billing.Invoices |
PAY_PaymentStatuses |
DreamConsistency.Billing.Payments |
PAY_PaymentMethods |
DreamConsistency.Billing.Payments |
PAY_RefundStatuses |
DreamConsistency.Billing.Payments |
CRN_CreditNoteStatuses |
DreamConsistency.Billing.CreditNotes |
RUN_BillingRunStatuses |
DreamConsistency.Billing.Runs |
RUN_BillingRunItemStatuses |
DreamConsistency.Billing.Runs |
Each included table has a database-local identifier, a stable UUID,
a required Name, and an optional Description.
INF_BillingSchemaVersions is schema and contract version metadata.
It is managed by schema deployment and is not catalog package content.
These tables store financial documents, transactions, allocations, refunds, document snapshots, or operational billing-run records. They are runtime business data, not shared system catalogs.
| Package | Purpose | Dependencies |
|---|---|---|
DreamConsistency.Billing.Foundation |
Minimum shared document catalog required by Billing financial documents. | None |
DreamConsistency.Billing.Invoices |
Shared invoice lifecycle status catalog. | Billing.Foundation >= 1.0.0 |
DreamConsistency.Billing.Payments |
Shared payment, payment-method, and refund lifecycle catalogs. | Billing.Foundation >= 1.0.0 |
DreamConsistency.Billing.CreditNotes |
Shared credit-note lifecycle status catalog. |
Billing.Foundation >= 1.0.0Billing.Invoices >= 1.0.0
|
DreamConsistency.Billing.Runs |
Shared billing-run and billing-run-item lifecycle catalogs. | Billing.Invoices >= 1.0.0 |
| Catalog | Values |
|---|---|
DOC_DocumentPartyTypes |
ISSUER, RECIPIENT |
| Catalog | Values |
|---|---|
INV_InvoiceStatuses |
DRAFT, ISSUED, PARTIALLY_PAID,
PAID, OVERDUE, VOID
|
| Catalog | Values |
|---|---|
PAY_PaymentStatuses |
PENDING, SUCCEEDED, FAILED,
CANCELLED, PARTIALLY_REFUNDED, REFUNDED
|
PAY_PaymentMethods |
BANK_TRANSFER, PAYMENT_CARD, CASH,
DIRECT_DEBIT, OTHER
|
PAY_RefundStatuses |
PENDING, SUCCEEDED, FAILED, CANCELLED
|
| Catalog | Values |
|---|---|
CRN_CreditNoteStatuses |
DRAFT, ISSUED, VOID |
| Catalog | Values |
|---|---|
RUN_BillingRunStatuses |
PENDING, IN_PROGRESS, SUCCEEDED,
PARTIALLY_SUCCEEDED, FAILED, CANCELLED
|
RUN_BillingRunItemStatuses |
PENDING, IN_PROGRESS, SUCCEEDED,
SKIPPED, FAILED
|
The supplied Billing Workbench model contains no catalog rows and therefore contains no established Billing catalog UUID values that could be preserved.
The initial unpublished version uses deterministic UUID v5 identities generated under the following project namespace:
1.0.0 is published, the UUID values already stored in JSON become the source
of truth and must never be regenerated during normal maintenance.
The package.json manifest defines the stable package identity,
logical package version, Billing target database, minimum schema package version,
dependencies, included JSON resources, model types, and update modes.
Catalog JSON files contain stable UUID values and package-managed business fields. They do not contain database RefID values, timestamps, connection strings, environment-specific secrets, runtime financial documents, or provider credentials.
| Representation | Purpose |
|---|---|
| Embedded assembly resource | Runtime loading through the Billing catalog provider. |
NuGet catalogs/ content |
Inspection, audit, release transparency, and package review. |
| Service | Responsibility |
|---|---|
IBillingCatalogPackageProvider |
Public contract for Billing package and catalog access. |
BillingCatalogPackageProvider |
Loads and caches embedded package manifests and catalog resources. |
BillingCatalogJsonSerializer |
Deserializes embedded JSON into strongly typed Billing catalog models. |
BillingCatalogTypeResolver |
Maps manifest model types to concrete Billing catalog model classes. |
BillingCatalogContentHasher |
Calculates deterministic SHA-256 logical-package content hashes. |
BillingCatalogPackageValidator |
Validates manifests, dependencies, UUIDs, duplicates, fields, ownership, and package structure. |
These services do not open database connections and do not persist catalog rows.
The provider and validator are consumed by the system catalog installer, catalog validation tools, unit and integration tests, and Jenkins release pipelines.
DreamConsistency.SystemCatalogInstaller.Cnsl
persists Billing catalog content into a Billing database.
This library is not executed directly. Its embedded logical packages are installed and upgraded by
DreamConsistency.SystemCatalogInstaller.Cnsl.
Validation must complete successfully before publishing a new NuGet version.
| Validation | Result |
|---|---|
| Billing Workbench tables detected | 20 |
| Catalog tables represented | 8 |
| Logical packages | 5 |
| Global package, catalog, and item UUID identities | 50 unique identities |
| JSON documents | Valid |
| Dependency graph | Valid and acyclic |
| Catalog table names | Matched to the supplied Billing Workbench model |
| Project and solution XML | Well-formed |
| C# namespace and reference scan | Passed |
mcr.microsoft.com/dotnet/sdk:10.0.
| Property | Value |
|---|---|
| Recommended Job Name | DreamConsistency.BillingCatalogs - NuGet Release |
| Execution | Manual Jenkins pipeline from SCM |
| Docker Image | mcr.microsoft.com/dotnet/sdk:10.0 |
| NuGet Credential | dreamconsistency-nuget-api-key |
| Target Feed | https://nuget.dreamconsistency.com/v3/index.json |
Builds, validates, packages, and optionally publishes the versioned
DreamConsistency.BillingCatalogs NuGet package to the internal Dream Consistency feed.
| Parameter | Purpose |
|---|---|
PACKAGE_VERSION |
NuGet version in MAJOR.MINOR.PATCH format, for example 1.0.0. |
PUBLISH_PACKAGE |
When enabled, publishes the generated package to the internal NuGet feed. |
--skip-duplicate.
Publishing an already existing version must fail.
| Version | Meaning |
|---|---|
| NuGet Version | Immutable distribution version of the complete DreamConsistency.BillingCatalogs library. |
| Logical Package Version | Version of a specific package such as DreamConsistency.Billing.Payments. |
| Manifest Format Version | Version of the package.json contract. |
| Billing Schema Package Version | Version of the compatible Billing database schema contract. |
When any package manifest or catalog JSON resource changes:
DreamConsistency.BillingCatalogs NuGet version.DreamConsistency.SystemCatalogInstaller.Cnsl.Catalog item removal, deprecation, soft-deleted-row recovery, replacement of an incorrect UUID, and downgrade behavior are installer responsibilities and must be explicit.
| Shared Billing System Catalogs | Billing Runtime Data |
|---|---|
| Invoice, payment, refund, credit-note, and billing-run status definitions. | Actual invoices, items, parties, payments, allocations, refunds, credit notes, and runs. |
Stored in DreamConsistency.BillingCatalogs. |
Stored in Billing runtime tables. |
Installed by SystemCatalogInstaller.Cnsl. |
Created and updated by Billing services and business workflows. |
| Versioned platform vocabulary. | Environment- and customer-specific financial history. |
| Stable UUID identity and package-managed fields. | Immutable or lifecycle-managed financial records and provider references. |
| Document | Purpose |
|---|---|
docs/source-model.md |
Billing Workbench model analysis and included/excluded tables. |
docs/catalog-inventory.md |
Logical package and initial catalog-value inventory. |
docs/initial-values-review.md |
Values that must be approved before the first 1.0.0 publication. |
docs/package-format.md |
Billing logical package and manifest JSON contract. |
docs/legacy-identities.md |
Initial UUID generation namespace and permanent-identity rules. |
docs/maintenance.md |
Rules for changing published packages, versions, UUIDs, and JSON content. |
docs/static-validation-report.md |
Static validation result and initial package content hashes. |
| Date | Change | Author |
|---|---|---|
| 2026-08-02 | Initial Wiki documentation for DreamConsistency.BillingCatalogs. |
Branko |