Skip to content

Data Solution Automation Schema v2.1.0

Latest

Choose a tag to compare

@RoelantVos RoelantVos released this 14 May 09:11

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.