Skip to content

Latest commit

 

History

History
132 lines (99 loc) · 8.73 KB

root.md

File metadata and controls

132 lines (99 loc) · 8.73 KB

The Root object (database-driven)

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


Property categories

The Root object supports a number of properties that control the generated code output. These properties are separated into a series of logical categories.

Category Description
Key Provides the key configuration.
Identifier Provides the Identifier configuration.
Infer Provides the special Column Name inference configuration.
.NET Provides the .NET configuration.
Event Provides the event configuration.
Outbox Provides the outbox configuration.
Path Provides the Path (Directory) configuration for the generated artefacts.
Namespace Provides the .NET Namespace configuration for the generated artefacts.
Collections Provides related child (hierarchical) configuration.

The properties with a bold name are those that are more typically used (considered more important).


Key

Provides the key configuration.

Property Description
schema The default Schema name where the existing tables are defined within the database.
† This is used as the default Schema for all child objects. Defaults to dbo (literal).
cdcSchema The schema name for the ntangle generated CDC-related database artefacts.
† Defaults to NTangle (literal).
cdcSchemaCreate Indicates whether to create the CdcSchema within the database.
† Defaults to false.
versionTrackingTable The table name for the Cdc-VersionTracking.
† Defaults to VersionTracking (literal).
cdcEnable Indicates whether to enable Cdc within the database for the tables that participate.
† Defaults to false. This option can be overridden for each underlying table referenced.
outboxSchemaCreate Indicates whether to create the OutboxSchema within the database.
† Defaults to false.

Identifier

Provides the Identifier configuration.

Property Description
identifierMapping Indicates whether to include the generation of the generic CDC-IdentifierMapping database capabilities.
† Where set to true each underlying Table and corresponding Join must set IdentifierMapping explicitly.
identifierMappingType The type for the identifier mapping value. Valid options are: String, Int, Long, Guid.
† Defaults to String.
identifierMappingTable The table name for the Cdc-IdentifierMapping.
† Defaults to IdentifierMapping (literal).
identifierMappingStoredProcedure The stored procedure name for the Cdc-IdentifierMapping create.
† Defaults to spIdentifierMappingCreate (literal).

Infer

Provides the special Column Name inference configuration.

Property Description
isDeletedColumn The column name for the IsDeleted (logical delete) capability (if any).
† Defaults to IsDeleted.

.NET

Provides the .NET configuration.

Property Description
autoDotNetRename The option to automatically rename the SQL Tables and Columns for use in .NET. Valid options are: None, PascalCase, SnakeKebabToPascalCase.
† 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.
excludeColumnsFromETag The default list of Column names that should be excluded from the generated ETag (used for the likes of duplicate send tracking)

Event

Provides the event configuration.

Property Description
eventSubjectRoot The root for the event name by prepending to all event subject names via CDC.
† Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc.
eventSubjectFormat The default formatting for the Subject when an Event is published via CDC. Valid options are: NameOnly, NameAndKey, NameAndTableKey.
† Defaults to NameOnly.
eventActionFormat The formatting for the Action when an Event is published via CDC. Valid options are: None, PastTense.
† Defaults to None (no formatting required, i.e. as-is).
eventSourceKind The URI kind for the event source URIs for CDC. Valid options are: None, Absolute, Relative, RelativeOrAbsolute.
† Defaults to Relative (being a relative path).
eventSourceRoot The URI root for the event source by prepending to all event source URIs for CDC.
† The event source is only updated where an EventSourceKind is not None.
eventSourceFormat The default formatting for the Source when an Event is published via CDC. Valid options are: NameOnly, NameAndKey, NameAndTableKey.
† Defaults to NameAndTableKey (being the child Cdc.ModelName appended with the corresponding table key).
eventTypeRoot The root for the event type by prepending to all event type names via CDC.
† Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc. Defaults to EventSubjectRoot.

Outbox

Provides the outbox configuration.

Property Description
outbox Indicates whether to generate the event outbox SQL and .NET artefacts.
† Defaults to false.
outboxSchema The schema name of the event outbox table.
† Defaults to Outbox (literal).
outboxTable The name of the event outbox table.
† Defaults to EventOutbox (literal).
outboxEnqueueStoredProcedure The stored procedure name for the event outbox enqueue.
† Defaults to spEventOutboxEnqueue (literal).
outboxDequeueStoredProcedure The stored procedure name for the event outbox dequeue.
† Defaults to spEventOutboxDequeue (literal).

Path

Provides the Path (Directory) configuration for the generated artefacts.

Property Description
pathBase The base path (directory) prefix for the Database-related artefacts; other Path* properties append to this value when they are not specifically overridden.
† Defaults to AppName (runtime parameter). For example Avanade.Application.
pathDatabase The root path (directory) for the Database-related artefacts.
† Defaults to PathBase + .Database (literal). For example Avanade.Application.Database.
pathDatabaseSchema The path (directory) for the Schema Database-related artefacts.
† Defaults to PathDatabase + /Schema (literal). For example Avanade.Application.Database/Schema.
pathDatabaseMigrations The path (directory) for the Schema Database-related artefacts.
† Defaults to PathDatabase + /Migrations (literal). For example Avanade.Application.Database/Migrations.
pathDotNetPublisher The path (directory) for the CDC-related (.NET) artefacts.
† Defaults to PathBase + .Publisher (literal). For example Avanade.Application.Publisher.
pathSidecarDatabase The path (directory) for the Schema Database-related artefacts.
† Defaults to PathBase + .SidecarDb (literal). For example Avanade.Application.SidecarDb.
pathSidecarDatabaseSchema The path (directory) for the Schema Database-related artefacts.
† Defaults to PathSidecarDatabase + /Schema (literal). For example Avanade.Application.SidecarDb/Schema.
pathSidecarDatabaseMigrations The path (directory) for the Schema Database-related artefacts.
† Defaults to PathSidecarDatabase + /Migrations (literal). For example Avanade.Application.SidecarDb/Migrations.

Namespace

Provides the .NET Namespace configuration for the generated artefacts.

Property Description
namespaceBase The base Namespace (root) for the .NET artefacts.
† Defaults to AppName (runtime parameter). For example Avanade.Application.
namespacePublisher The Namespace (root) for the CDC-related Publisher .NET artefacts.
† Defaults to NamespaceBase + .Publisher (literal). For example Avanade.Application.Publisher.
namespaceOutbox The Namespace (root) for the Outbox-related Publisher .NET artefacts.
† Defaults to NamespacePublisher.

Collections

Provides related child (hierarchical) configuration.

Property Description
tables The corresponding Table collection.
† A Table object provides the primary database table configuration for Change Data Capture (CDC), including multiple child table joins to form a composite entity.