Skip to content

Commit

Permalink
Docs updates
Browse files Browse the repository at this point in the history
  • Loading branch information
RoelantVos committed Nov 12, 2023
1 parent 68d7c8c commit c6b86ce
Show file tree
Hide file tree
Showing 20 changed files with 240 additions and 43 deletions.
103 changes: 103 additions & 0 deletions docs/_site/api/DataWarehouseAutomation.DataObjectMappingList.html
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,40 @@ <h2 class="section" id="properties">Properties
</h2>


<a id="DataWarehouseAutomation_DataObjectMappingList_Classifications_" data-uid="DataWarehouseAutomation.DataObjectMappingList.Classifications*"></a>

<h3 id="DataWarehouseAutomation_DataObjectMappingList_Classifications" data-uid="DataWarehouseAutomation.DataObjectMappingList.Classifications">
Classifications

</h3>

<div class="markdown level1 summary"><p>Free-form and optional classification for the mapping for use in data logistics generation logic.</p>
</div>
<div class="markdown level1 conceptual"></div>

<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;classifications&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public List&lt;DataClassification&gt;? Classifications { get; set; }</code></pre>
</div>





<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="DataWarehouseAutomation.DataClassification.html">DataClassification</a>&gt;</dt>
<dd></dd>
</dl>








<a id="DataWarehouseAutomation_DataObjectMappingList_DataObjectMappings_" data-uid="DataWarehouseAutomation.DataObjectMappingList.DataObjectMappings*"></a>

<h3 id="DataWarehouseAutomation_DataObjectMappingList_DataObjectMappings" data-uid="DataWarehouseAutomation.DataObjectMappingList.DataObjectMappings">
Expand Down Expand Up @@ -195,6 +229,75 @@ <h4 class="section">Property Value</h4>



<a id="DataWarehouseAutomation_DataObjectMappingList_Extensions_" data-uid="DataWarehouseAutomation.DataObjectMappingList.Extensions*"></a>

<h3 id="DataWarehouseAutomation_DataObjectMappingList_Extensions" data-uid="DataWarehouseAutomation.DataObjectMappingList.Extensions">
Extensions

</h3>

<div class="markdown level1 summary"><p>The collection of extension Key/Value pairs.</p>
</div>
<div class="markdown level1 conceptual"></div>

<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;extensions&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public List&lt;Extension&gt;? Extensions { get; set; }</code></pre>
</div>





<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="DataWarehouseAutomation.Extension.html">Extension</a>&gt;</dt>
<dd></dd>
</dl>








<a id="DataWarehouseAutomation_DataObjectMappingList_Name_" data-uid="DataWarehouseAutomation.DataObjectMappingList.Name*"></a>

<h3 id="DataWarehouseAutomation_DataObjectMappingList_Name" data-uid="DataWarehouseAutomation.DataObjectMappingList.Name">
Name

</h3>

<div class="markdown level1 summary"><p>The name of the Data Object Mapping List. This is typically provided by one of the data object mappings in the list.
It has been added to allow easy identification of the objects in case a list contains many mappings.</p>
</div>
<div class="markdown level1 conceptual"></div>

<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsonPropertyName(&quot;name&quot;)]
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
public string? Name { get; set; }</code></pre>
</div>





<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>









</article>

Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_exists.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,10 @@ <h1 id="exists">{{exists}}</h1>
<p>The helper can target specific segments in the metadata, and evaluates if either the segment exists at all (without specifying an optional search value) or if the provided optional search value exists in that segment.</p>
<p>Only the <em>multiActiveKey</em> and <em>targetDataItem</em> properties are currently supported.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{#exists &quot;&lt;category / json segment&gt;&quot; &quot;&lt;optional value&gt;&quot;}}
<pre><code class="lang-handlebars">{{#exists &quot;&lt;category / json segment&gt;&quot; &quot;&lt;optional value&gt;&quot;}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">{{#exists multiActiveKey}}There is a multi-active key!{{else}}No multi-active key is found in this data object mapping.{{/exists}}
<pre><code class="lang-handlebars">{{#exists multiActiveKey}}There is a multi-active key!{{else}}No multi-active key is found in this data object mapping.{{/exists}}
{{#exists multiActiveKey &quot;DATE_OF_BIRTH&quot;}}There is a multi-active key which is not DATE_OF_BIRTH{{else}}No multi-active key with DATE_OF_BIRTH is found in this data object mapping.{{/exists}}
{{#exists targetDataItem}}There is a target data item in this mapping!{{else}}No target data items are defined in this mapping.{{/exists}}
</code></pre>
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_lookupextension.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,10 @@ <h1 id="lookupextension">{{lookupExtension}}</h1>
<p>The lookupExtension helper allows a lookup of an extension by key value.</p>
<p>Pass in the extensions list and the string key value.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{lookupExtension &lt;extension list&gt; &quot;&lt;string value&gt;&quot;}}
<pre><code class="lang-handlebars">{{lookupExtension &lt;extension list&gt; &quot;&lt;string value&gt;&quot;}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">The lookup value for the 'type' extension is '{{lookupExtension sourceDataObjects.0.extensions &quot;type&quot;}}'.
<pre><code class="lang-handlebars">The lookup value for the 'type' extension is '{{lookupExtension sourceDataObjects.0.extensions &quot;type&quot;}}'.
</code></pre>
<p>Depending on the metadata, this may result in:</p>
<pre><code class="lang-dotnetcli">The lookup value for the 'type' extension is 'procedure'.
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_now.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="now">{{now}}</h1>

<p>Get the date and time at the moment of execution.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{now}}
<pre><code class="lang-handlebars">{{now}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">The time is {{now}}.
<pre><code class="lang-handlebars">The time is {{now}}.
</code></pre>
<p>This returns the date/time at present.</p>
</article>
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_randomdate.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ <h1 id="randomdate">{{randomdate}}</h1>
<p>Generate a random date somewhere higher than the provided characters as four-digit integer (year) input.</p>
<p>This was originally added to generate test data, and is used for referential-integrity testing purposes.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{randomdate 2020}}
<pre><code class="lang-handlebars">{{randomdate 2020}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">Here is a random date: {{randomdate 2020}}.
<pre><code class="lang-handlebars">Here is a random date: {{randomdate 2020}}.
</code></pre>
<p>This may return:</p>
<pre><code class="lang-dotnetcli">2022-08-03T00:00:00.000000
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_randomnumber.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ <h1 id="randomnumber">{{randomnumber}}</h1>
<p>Generate a random number with the numeric positions provided as input integer.</p>
<p>This was originally added to generate test data, and is used for referential-integrity testing purposes.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{randomnumber 5}}
<pre><code class="lang-handlebars">{{randomnumber 5}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">And here is a random string: {{randomnumber 5}}.
<pre><code class="lang-handlebars">And here is a random string: {{randomnumber 5}}.
</code></pre>
<p>This may return:</p>
<pre><code class="lang-dotnetcli">1346
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_randomstring.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="randomstring">{{randomstring}}</h1>

<p>Generate a random string no longer than the provided characters as integer input.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{randomstring 10}}
<pre><code class="lang-handlebars">{{randomstring 10}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">And here is a random string: {{randomstring 10}}.
<pre><code class="lang-handlebars">And here is a random string: {{randomstring 10}}.
</code></pre>
<p>This returns:</p>
<pre><code class="lang-dotnetcli">Cg8uKuBFS5
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_replicate.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ <h1 id="replicate">{{replicate}}</h1>
<p>Returns the input string value a number of times, as specified by the input integer.</p>
<p>This is often used to generate test data.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{#replicate 10}}
<pre><code class="lang-handlebars">{{#replicate 10}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">{{#replicate 3}}
<pre><code class="lang-handlebars">{{#replicate 3}}
This value is replicated 3 times!
{{/replicate}}
</code></pre>
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_space.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="space">{{space}}</h1>

<p>Space will space out (!?) the name of the input value to 30 characters using tabs for alignment, indentation.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{space &quot;&lt;value&gt;&quot;}}
<pre><code class="lang-handlebars">{{space &quot;&lt;value&gt;&quot;}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">This is {{space &quot;Hello World&quot;}} ...spaced out.
<pre><code class="lang-handlebars">This is {{space &quot;Hello World&quot;}} ...spaced out.
</code></pre>
<p>This results in:</p>
<pre><code class="lang-dotnetcli">This is Hello World ...spaced out.
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_stringcompare.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="stringcompare">{{stringcompare}}</h1>

<p>Block helper to evaluate if the input matches a specified string. Also optionally supports an {{else}} block.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{#stringcompare string1 string2}} do something {{else}} do something else {{/stringcompare}}
<pre><code class="lang-handlebars">{{#stringcompare string1 string2}} do something {{else}} do something else {{/stringcompare}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">A and B {{#stringcompare &quot;A&quot; &quot;B&quot;}}are the same. {{else}}are not the same. {{/stringcompare}}
<pre><code class="lang-handlebars">A and B {{#stringcompare &quot;A&quot; &quot;B&quot;}}are the same. {{else}}are not the same. {{/stringcompare}}
</code></pre>
<p>This results in:</p>
<pre><code class="lang-dotnetcli">A and B are not the same.
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_stringdiff.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="stringdiff">{{stringdiff}}</h1>

<p>Block helper to evaluate if the input does <em>not</em> match a specified string. Also optionally supports an {{else}} block.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{#stringdiff string1 string2}} do something {{else}} do something else {{/stringdiff}}
<pre><code class="lang-handlebars">{{#stringdiff string1 string2}} do something {{else}} do something else {{/stringdiff}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">A and B {{#stringdiff &quot;A&quot; &quot;B&quot;}}are not the same. {{else}}are the same. {{/stringdiff}}
<pre><code class="lang-handlebars">A and B {{#stringdiff &quot;A&quot; &quot;B&quot;}}are not the same. {{else}}are the same. {{/stringdiff}}
</code></pre>
<p>This results in:</p>
<pre><code class="lang-dotnetcli">A and B are not the same.
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_stringreplace.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="stringreplace">{{stringreplace}}</h1>

<p>Parses an input string value, and replaces a specified part of the contents with a replacement value.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{stringreplace &quot;&lt;input string value&gt;&quot; &quot;&lt;lookup character&gt;&quot; &quot;&lt;replacement character&gt;&quot;}}
<pre><code class="lang-handlebars">{{stringreplace &quot;&lt;input string value&gt;&quot; &quot;&lt;lookup character&gt;&quot; &quot;&lt;replacement character&gt;&quot;}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">This replaces the o's in Hello Word with an !: {{StringReplace &quot;Hello World&quot; &quot;o&quot; &quot;!&quot;}}
<pre><code class="lang-handlebars">This replaces the o's in Hello Word with an !: {{StringReplace &quot;Hello World&quot; &quot;o&quot; &quot;!&quot;}}
</code></pre>
<p>This results in:</p>
<pre><code class="lang-dotnetcli">This replaces the o's in Hello Word with an !: Hell! W!rld
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_stringwrap.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ <h1 id="stringwrap">{{stringwrap}}</h1>

<p>Wraps an input character string with two specified characters.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{stringwrap &quot;&lt;start character&gt;&quot; &quot;&lt;end character&gt;&quot;}}
<pre><code class="lang-handlebars">{{stringwrap &quot;&lt;start character&gt;&quot; &quot;&lt;end character&gt;&quot;}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">This adds brackets around the string value: {{stringwrap &quot;Example&quot; &quot;[&quot; &quot;]&quot;}}
<pre><code class="lang-handlebars">This adds brackets around the string value: {{stringwrap &quot;Example&quot; &quot;[&quot; &quot;]&quot;}}
</code></pre>
<p>This results in:</p>
<pre><code class="lang-dotnetcli">[Example]
Expand Down
4 changes: 2 additions & 2 deletions docs/_site/handlebars/extension_targetdataitemexists.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,10 @@ <h1 id="targetdataitemexists">{{targetDataItemExists}}</h1>
<p>The helper performs a search in the target data items within a data item mapping, so evaluate if the input value exists there as a data item name.</p>
<p>This is used in some cases to handle special column names.</p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-json">{{stringwrap &quot;&lt;character value&gt;&quot;}}
<pre><code class="lang-handlebars">{{stringwrap &quot;&lt;character value&gt;&quot;}}
</code></pre>
<h2 id="example">Example</h2>
<pre><code class="lang-json">{{#targetDataItemExists &quot;FIRST_NAME&quot;}}FIRST_NAME exists{{else}}FIRST_NAME does not exist{{/targetDataItemExists}}
<pre><code class="lang-handlebars">{{#targetDataItemExists &quot;FIRST_NAME&quot;}}FIRST_NAME exists{{else}}FIRST_NAME does not exist{{/targetDataItemExists}}
</code></pre>
<p>This results in:</p>
<pre><code class="lang-dotnetcli">FIRST_NAME exists
Expand Down
5 changes: 3 additions & 2 deletions docs/_site/overview/Index.html
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ <h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<article data-uid="">
<h1 id="data-solution-automation-metadata">Data Solution Automation Metadata</h1>

<p>Welcome to the <a href="https://data-solution-automation-engine.github.io/data-warehouse-automation-metadata-schema/">documentation of the schema for data solution automation</a>.</p>
<p>The <strong>interface for data solution automation metadata</strong> provides an agreed (canonical) format for the exchange of relevant metadata for data solution/warehouse automation. The intent is to define a <em>sufficiently generic</em> format, that can be used to record and share information about data solution automation metadata, so that more time can be spent on concepts, patterns, and solution ideas - instead of reinventing the wheel on what exactly is required to automate a data solution.</p>
<p>This in itself aims to facilitate greater interoperability between various data solution / data warehouse automation and data logistics generations approaches and ecosystems.</p>
<p>The schema definition can be directly viewed <a href="https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface/blob/master/GenericInterface/interfaceDataWarehouseAutomationMetadata.json">here</a>, and is part of <a href="https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface">this GitHub repository</a>. The repository contains various supporting components such as:</p>
Expand All @@ -101,9 +102,9 @@ <h1 id="data-solution-automation-metadata">Data Solution Automation Metadata</h1
<p>The schema is and examples are validated / extended using <a href="https://www.jsonschemavalidator.net/">https://www.jsonschemavalidator.net/</a>. Standards are followed from <a href="http://json-schema.org/">json-schema.org</a>. Also see <a href="http://json-schema.org/learn/miscellaneous-examples.html">some miscellaneous examples</a>.</p>
<p>In principle, the schema can be used to generate an entire Data Warehouse, Data Lake and equivalent and/or similar.</p>
<h2 id="schema"><strong>Schema</strong></h2>
<p>The proposed JSON schema has standard components for table (DataObjects) and column (DataItem) structures that are reused for sources and targets. At the mapping level only the classification, filter and load direction are added, the rest is generic reuse of definitions.</p>
<p>The JSON schema for data solution automation has standard components for table (DataObjects) and column (DataItem) structures that are reused for sources and targets. At the mapping level only the classification, filter and load direction are added, the rest is generic reuse of definitions.</p>
<p>The schema is available in the GitHub under: <a href="https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface">https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface</a>.</p>
<p>The schema definition specifically is located here: [https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface/blob/master/Generic%20interface/interfaceDataWarehouseAutomationMetadata.json](<a href="https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface/blob/master/Generic">https://github.com/RoelantVos/Data_Warehouse_Automation_Metadata_Interface/blob/master/Generic</a> interface/interfaceDataWarehouseAutomationMetadata.json).</p>
<p>The schema definition itself is located here: <a href="https://github.com/data-solution-automation-engine/data-warehouse-automation-metadata-schema/blob/main/GenericInterface/interfaceDataWarehouseAutomationMetadataV2_0.json">https://github.com/data-solution-automation-engine/data-warehouse-automation-metadata-schema/blob/main/GenericInterface/interfaceDataWarehouseAutomationMetadataV2_0.json</a>.</p>
<p>It is also referenced in the Class Library.</p>
<h2 id="how-does-the-interface-schema-work">How does the interface schema work?</h2>
<p>The interface is a JSON Schema Definition that has been designed following draft 7 of the JSON schema. It contains a series of reusable defined objects (‘definitions’) that are implemented as a source-to-target mapping object called a ‘Data Object Mapping’.</p>
Expand Down
2 changes: 1 addition & 1 deletion docs/_site/overview/getting-started.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ <h2 id="generating-code">Generating code</h2>
// Display the results to the user
Console.WriteLine(result);
</code></pre>
<p>Validating JSON files against the schema definition</p>
<h2 id="validating-json-files-against-the-schema-definition">Validating JSON files against the schema definition</h2>
<p>Examples are provided to validate Json metadata files in order to assert if they comply with the schema definition. These examples are located in the 'test_project' on the Github.</p>
<p>This project is used for regression testing, making sure that the inputs and outputs provided by the various tools in the Data Warehouse Automation ecosystem provide the metadata in the correct formats.</p>
<p>Validating Json files against the generic schema is easy, a method is provided as part of the JsonHandling class included in the DataWarehouseAutomation.dll. Consider the example below, where a filename (including path) for the schema definition as well as a Json file are provided.</p>
Expand Down
Loading

0 comments on commit c6b86ce

Please sign in to comment.