File match ntangle.yaml ntangle.yml ntangle.json ntangle.jsn
Schema URL https://catalog.lintel.tools/schemas/schemastore/ntangle/latest.json
Source https://raw.githubusercontent.com/Avanade/NTangle/main/schemas/ntangle.json

Validate with Lintel

npx @lintel/lintel check

All of

Definitions

Root object

The RootConfig object defines the global properties that are used to drive the underlying database-driven CDC-oriented code-generation.

schema string

This is used as the default Schema for all child objects. Defaults to dbo (literal).

cdcSchema string

Defaults to NTangle (literal).

cdcSchemaCreate boolean

Defaults to false.

versionTrackingTable string

Defaults to VersionTracking (literal).

cdcEnable boolean

Defaults to false. This option can be overridden for each underlying table referenced.

identifierMapping boolean

Where set to true each underlying Table and corresponding Join must set IdentifierMapping explicitly.

identifierMappingType string

Defaults to String.

Values: "String" "Int" "Long" "Guid"
identifierMappingTable string

Defaults to IdentifierMapping (literal).

identifierMappingStoredProcedure string

Defaults to spIdentifierMappingCreate (literal).

isDeletedColumn string

Defaults to IsDeleted.

autoDotNetRename string

Defaults to SnakeKebabToPascalCase which will remove any underscores or hyphens separating each word and capitalize the first character of each; e.g. internal-customer_id would be renamed as InternalCustomerId. The PascalCase option will capatilize the first character only.

Values: "None" "PascalCase" "SnakeKebabToPascalCase"
excludeColumnsFromETag string[]
jsonSerializer string

Defaults to SystemText.

Values: "SystemText" "Newtonsoft"
service string

Defaults to None. A HostedService is an IHostedService implementation enabling long-running execution; whereas, Service is intended for self-managed execution.

Values: "None" "HostedService" "Service"
eventSubjectRoot string

Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc.

eventSubjectFormat string

Defaults to NameOnly.

Values: "NameOnly" "NameAndKey" "NameAndTableKey"
eventActionFormat string

Defaults to None (no formatting required, i.e. as-is).

Values: "None" "PastTense"
eventSourceKind string

Defaults to Relative (being a relative path).

Values: "None" "Absolute" "Relative" "RelativeOrAbsolute"
eventSourceRoot string

The event source is only updated where an EventSourceKind is not None.

eventSourceFormat string

Defaults to NameAndTableKey (being the child Cdc.ModelName appended with the corresponding table key).

Values: "NameOnly" "NameAndKey" "NameAndTableKey"
eventTypeRoot string

Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc. Defaults to EventSubjectRoot.

outbox boolean

Defaults to false.

outboxSchema string

Defaults to Outbox (literal).

outboxSchemaCreate boolean

Defaults to false.

outboxTable string

Defaults to EventOutbox (literal).

outboxEnqueueStoredProcedure string

Defaults to spEventOutboxEnqueue (literal).

outboxDequeueStoredProcedure string

Defaults to spEventOutboxDequeue (literal).

pathBase string

Defaults to AppName (runtime parameter). For example Avanade.Application.

pathDatabase string

Defaults to PathBase + .Database (literal). For example Avanade.Application.Database.

pathDatabaseSchema string

Defaults to PathDatabase + /Schema (literal). For example Avanade.Application.Database/Schema.

pathDatabaseMigrations string

Defaults to PathDatabase + /Migrations (literal). For example Avanade.Application.Database/Migrations.

pathDotNetPublisher string

Defaults to PathBase + .Publisher (literal). For example Avanade.Application.Publisher.

pathSidecarDatabase string

Defaults to PathBase + .SidecarDb (literal). For example Avanade.Application.SidecarDb.

pathSidecarDatabaseSchema string

Defaults to PathSidecarDatabase + /Schema (literal). For example Avanade.Application.SidecarDb/Schema.

pathSidecarDatabaseMigrations string

Defaults to PathSidecarDatabase + /Migrations (literal). For example Avanade.Application.SidecarDb/Migrations.

namespaceBase string

Defaults to AppName (runtime parameter). For example Avanade.Application.

namespacePublisher string

Defaults to NamespaceBase + .Publisher (literal). For example Avanade.Application.Publisher.

namespaceOutbox string

Defaults to NamespacePublisher.

tables Table[]

A Table object provides the primary database table configuration for Change Data Capture (CDC), including multiple child table joins to form a composite entity.

Table object

The Table object enables the definition of the primary table, one-or-more child tables and their respective join relationships, to enable Change Data Capture (CDC) event publishing. The IncludeColumns and ExcludeColumns provide a shorthand to include or exclude selected columns; with the AliasColumns providing a means to rename where required.

name string required
schema string

Defaults to Root.Schema.

table string

Defaults to Name. This is used to specify the actual underlying database table name (required where the Name has been changed to enable uniqueness).

alias string

Will automatically default where not specified; for example a table named Person will default to p.

includeColumns string[]

Where not specified this indicates that all Columns are to be included.

excludeColumns string[]

Where not specified this indicates no Columns are to be excluded.

aliasColumns string[]

Each alias value should be formatted as Column + ^ + Alias; e.g. PCODE^ProductCode.

executeStoredProcedure string

Defaults to sp (literal) + Name + BatchExecute (literal); e.g. spNameBatchExecute.

completeStoredProcedure string

Defaults to sp (literal) + Name + BatchComplete (literal); e.g. spNameBatchComplete.

resetStoredProcedure string

Defaults to sp (literal) + Name + BatchReset (literal); e.g. spNameBatchReset.

trackingStoredProcedure string

Defaults to sp (literal) + Name + BatchTracking (literal); e.g. spNameBatchTracking.

cdcSchema string

Defaults to Root.CdcSchema.

batchTrackingTable string

Defaults to Name + BatchTracking (literal).

cdcEnable boolean

Defaults to false. This option can be overridden for each underlying table referenced.

model string

Defaults to Name.

orchestratorCtorParams string[]

Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred.

database string

Defaults to IDatabase.

includeColumnsOnDelete string[]

Where a column is not specified in this list its corresponding .NET property will be automatically cleared by the CdcDataOrchestrator as the data is technically considered as non-existing.

service string

Defaults to Root.Service. A HostedService is an IHostedService implementation enabling long-running execution; whereas, Service is intended for self-managed execution.

Values: "None" "HostedService" "Service"
excludeColumnsFromETag string[]

Defaults to Root.CdcExcludeColumnsFromETag.

tenantIdColumns string[]
partitionKey string

A partition key can be specified using either PartitionKey or PartitionKeyColumns.

partitionKeyColumns string[]

A partition key can be specified using either PartitionKey or PartitionKeyColumns.

eventSource string

Defaults to Schema + / (literal) + Name (as lowercase). Note: when used in code-generation the Root.EventSourceRoot will be prepended where specified.

eventSourceFormat string

Defaults to Root.EventSourceFormat.

Values: "NameOnly" "NameAndKey" "NameAndTableKey"
eventSubject string

Defaults to ModelName. Note: when used in code-generation the Root.EventSubjectRoot will be prepended where specified.

eventSubjectFormat string

Defaults to Root.EventSubjectFormat.

Values: "NameOnly" "NameAndKey" "NameAndTableKey"
eventType string

Defaults to ModelName. Note: when used in code-generation the Root.EventTypeRoot will be prepended where specified.

identifierMapping boolean

This indicates whether to create a new GlobalId property on the entity to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s).

identifierName string

This indicates whether to create a new GlobalId property on the entity to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s).

isDeletedColumn string

Defaults to Root.ColumnIsDeleted.

joins Join[]

A Join object provides the configuration for a table join.

where Where[]

A Where object provides the configuration for a table where clause.

mappings TableMapping[]
Join object

The Join object defines a join to another (or same) table within the logical CDC entity. The IncludeColumns and ExcludeColumns provide a shorthand to include or exclude selected columns; with the AliasColumns providing a means to rename where required.

name string required

A unique name is required where the same Table is referenced more than once within a logical CDC entity. However, generally, this will represent the unique name of the table within the database.

schema string

Defaults to Cdc.Schema; i.e. same schema.

table string

Defaults to Name. This is used to specify the actual underlying database table name (required where the Name has been changed to enable uniqueness).

alias string

Will automatically default where not specified.

type string

Defaults to Cdc. The Cdc value indicates this is a related secondary table (within a logical CDC entity) that also has Change Data Capture turned on and equally needs to be monitored for changes.

Values: "Cdc" "Inner" "Left" "Right" "Full"
joinTo string

Defaults to parent Table.Name.

joinCardinality string

Defaults to OneToMany. This represents the Parent (JoinTo) to child (this) relationship.

Values: "OneToMany" "OneToOne"
cdcEnable boolean

Defaults to false. This option can be overridden for each underlying table referenced.

querySizeMultiplier number

Defaults to 1.0. This is applied to the execute stored procedure @MaxQuerySize parameter to allow tailoring on the join query (TOP) sizes to optimize selection. Must be greater than zero and less than or equal to 100.

includeColumns string[]

Where not specified this indicates that all Columns are to be included.

excludeColumns string[]

Where not specified this indicates no Columns are to be excluded.

aliasColumns string[]

Each alias value should be formatted as Column + ^ + Alias; e.g. PCODE^ProductCode

model string

Defaults to Name.

property string

Defaults to Model where JoinCardinality is OneToOne; otherwise, it will be the Model pluralized.

includeColumnsOnDelete string[]

Where a column is not specified in this list its corresponding .NET property will be automatically cleared by the CdcDataOrchestrator as the data is technically considered as non-existing.

excludeColumnsFromETag string[]

Defaults to CodeGeneration.CdcExcludeColumnsFromETag.

identifierMapping boolean

This indicates whether to create a new GlobalId property on the entity to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s).

identifierName string

This indicates whether to create a new GlobalId property on the entity to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s).

mappings JoinMapping[]
JoinOn object

The JoinOn object defines the join on characteristics for a Join object.

name string required
toColumn string

Defaults to Name; i.e. assumes same name.

toStatement string
JoinMapping object

The JoinMapping object defines one or more related table identifier mappings.

name string required
table string required
schema string

Defaults to the owning (parent) table schema.

Where object

This should only be used where the column value is largely immutable; otherwise, unintended side-effects may occur. NTangle uses the condition explictily and does not attempt to handle value change to infer creation or deletion of data as a result of the underlying change; as such, this should be used cautiously. Note that the where is applied when querying the cdc.fn_cdc_get_all_changes_... function, not the underlying table itself.

name string required

The column name.

nullable string

This enables statements such as WHERE (COL IS NULL) or WHERE (COL IS NULL OR COL = VALUE) (where .

Values: "ISNULL" "ISNOTNULL"
operator string

Defaults to EQ where Value is specified.

Values: "EQ" "NE" "LT" "LE" "GT" "GE" "LIKE"
value string

This must be valid formatted/escaped SQL.

TableMapping object

The TableMapping object defines one or more related table identifier mappings.

name string required
table string required
schema string

Defaults to the owning (parent) table schema.