This release renames the project from Data Warehouse Automation to Data Solution Automation and ships the substantial schema improvements that have accumulated since v2.0.3.
The C# library is now published as DataSolutionAutomation on NuGet. The previous DataWarehouseAutomation package is deprecated and remains available for backward compatibility.
Project rename
- C# namespace:
DataWarehouseAutomation.*→DataSolutionAutomation.*;DwaModel→DsaModel. - NuGet package id:
DataWarehouseAutomation→DataSolutionAutomation. - JSON Schema files:
interfaceDataWarehouseAutomationMetadataV*.json→interfaceDataSolutionAutomationMetadataV*.json. - Solution and project folders renamed;
RunDwhAutomation→RunDsaAutomation. - GitHub repository renamed to
data-solution-automation-metadata-schema(old URLs auto-redirect).
New features
- JSON Schema v2.1 (
interfaceDataSolutionAutomationMetadataV2_1.json) published alongside v2.0 for backward compatibility. - Business Key Definitions are now ordered. Components are an ordered list of references to data items (
BusinessKeyComponent), with explicitOrdinalPosition. Backward-compatible reading of the legacybusinessKeyComponentMappingsform is retained. - Relationships and cardinality:
relatedDataObjectsis replaced by a richerrelationshipscollection of typedRelationshipobjects withCardinality(object form withfromRange/toRange) and an optionalRelatedDataObjectIdfor ID-only references. - Template references: new
TemplateMappingtype plumbed throughDataObjectMappingList,DataObjectMapping,DataObject, andDataConnection— lets metadata travel with the templates that generate code from it. - Inlined queries:
queryCode/queryLanguagenow sit directly onDataObjectandDataItem, retiring the separateDataObjectQuery/DataItemQuerytypes. DataItemMappingRef: lightweight identifier-based references to data item mappings for use insideRelationship(avoids re-embedding the full mapping).- New property additions:
DataClassification:group(e.g. "Solution Layer", "Logical", "Physical") andscope(where the classification applies).DataItem:isNullable.DataItemMapping:nameandnotes.DataObjectMappingList:id,notes,templateMappings.BusinessKeyDefinition:ordinalPosition.
- New
{{hasClassification}}Handlebars helper for evaluating whether a classification list contains a given value.
Breaking changes
- C# namespace changed (
DataWarehouseAutomation→DataSolutionAutomation); downstream code must updateusingstatements and<PackageReference>. DataObjectQueryandDataItemQuerytypes removed — setqueryCodedirectly on the baseDataObject/DataIteminstead.IDataObject,IDataItem,IMetadatainterfaces removed — they existed only to support the polymorphic Query types.relatedDataObjectsis nowrelationshipsonDataObjectMapping.businessKeyComponentMappingsis retained for backward-compatible reading but new metadata should usebusinessKeyComponents.
Documentation
- New docs site built with Astro and Starlight, replacing the previous DocFX setup. Builds on Ubuntu via GitHub Actions, deploys to GitHub Pages: https://data-solution-automation-engine.github.io/data-solution-automation-metadata-schema/.
- Schema reference pages are auto-generated from the C# class library (the canonical source of truth) at build time.
- Overview, getting-started, FAQ, and Handlebars helper documentation migrated and refreshed.
Tooling
- License metadata (LGPL-3.0-or-later) is now declared in the NuGet package.
- The package README is now sourced from the repository root README.
- Validation samples cleaned up and re-validated against the v2.1 schema.
Additional context: blog post on v2.1.0 schema improvements.