Skip to content

Data Solution Automation Schema v2.1.0

Latest

Choose a tag to compare

@RoelantVos RoelantVos released this 14 May 09:11
· 2 commits to main since this release

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.*; DwaModelDsaModel.
  • NuGet package id: DataWarehouseAutomationDataSolutionAutomation.
  • JSON Schema files: interfaceDataWarehouseAutomationMetadataV*.jsoninterfaceDataSolutionAutomationMetadataV*.json.
  • Solution and project folders renamed; RunDwhAutomationRunDsaAutomation.
  • 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 explicit OrdinalPosition. Backward-compatible reading of the legacy businessKeyComponentMappings form is retained.
  • Relationships and cardinality: relatedDataObjects is replaced by a richer relationships collection of typed Relationship objects with Cardinality (object form with fromRange/toRange) and an optional RelatedDataObjectId for ID-only references.
  • Template references: new TemplateMapping type plumbed through DataObjectMappingList, DataObjectMapping, DataObject, and DataConnection — lets metadata travel with the templates that generate code from it.
  • Inlined queries: queryCode / queryLanguage now sit directly on DataObject and DataItem, retiring the separate DataObjectQuery / DataItemQuery types.
  • DataItemMappingRef: lightweight identifier-based references to data item mappings for use inside Relationship (avoids re-embedding the full mapping).
  • New property additions:
    • DataClassification: group (e.g. "Solution Layer", "Logical", "Physical") and scope (where the classification applies).
    • DataItem: isNullable.
    • DataItemMapping: name and notes.
    • 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 (DataWarehouseAutomationDataSolutionAutomation); downstream code must update using statements and <PackageReference>.
  • DataObjectQuery and DataItemQuery types removed — set queryCode directly on the base DataObject / DataItem instead.
  • IDataObject, IDataItem, IMetadata interfaces removed — they existed only to support the polymorphic Query types.
  • relatedDataObjects is now relationships on DataObjectMapping.
  • businessKeyComponentMappings is retained for backward-compatible reading but new metadata should use businessKeyComponents.

Documentation

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.