DPME Domain
This page presents the ERD for each AggregateRoot, grouping related entities into domain boundaries. Each AggregateRoot enforces business rules, processes commands synchronously, and defines consistency borders within a single transactional scope. An indicative json schema is created to how the export of a aggregate root will approximitly look like
Model Repository
Aggregate Root: ModelRepository
Represents repositories for models with their versions and associated metadata for model management.
erDiagram
"DPME.ModelRepositories" {
uniqueidentifier Id PK
nvarchar Name
nvarchar Description
nvarchar RepositoryHost
nvarchar RepositoryName
nvarchar RepositoryUsername
nvarchar RepositoryPasswordSecretName
uniqueidentifier Tenant
datetimeoffset EntityCreatedDateTime
datetimeoffset EntityUpdatedDateTime
uniqueidentifier EntityCreatedAuthToken
uniqueidentifier EntityUpdatedAuthToken
bit Concealed
}
"DPME.ModelVersions" {
uniqueidentifier Id PK
uniqueidentifier ModelId FK
nvarchar VersionName
nvarchar Description
datetimeoffset ActivationDateTime
uniqueidentifier Tenant
datetimeoffset EntityCreatedDateTime
datetimeoffset EntityUpdatedDateTime
uniqueidentifier EntityCreatedAuthToken
uniqueidentifier EntityUpdatedAuthToken
bit Concealed
}
"DPME.Models" {
uniqueidentifier Id PK
uniqueidentifier ModelRepositoryId FK
nvarchar Name
nvarchar Description
nvarchar ScriptPath
uniqueidentifier Tenant
datetimeoffset EntityCreatedDateTime
datetimeoffset EntityUpdatedDateTime
uniqueidentifier EntityCreatedAuthToken
uniqueidentifier EntityUpdatedAuthToken
bit Concealed
}
"DPME.Models" }o--|| "DPME.ModelRepositories" : "ModelRepositoryId"
"DPME.ModelVersions" }o--|| "DPME.Models" : "ModelId"
erDiagram
"DPME.ModelRepositories" {
uniqueidentifier Id PK
nvarchar Name
nvarchar Description
nvarchar RepositoryHost
nvarchar RepositoryName
nvarchar RepositoryUsername
nvarchar RepositoryPasswordSecretName
uniqueidentifier Tenant
datetimeoffset EntityCreatedDateTime
datetimeoffset EntityUpdatedDateTime
uniqueidentifier EntityCreatedAuthToken
uniqueidentifier EntityUpdatedAuthToken
bit Concealed
}
"DPME.ModelVersions" {
uniqueidentifier Id PK
uniqueidentifier ModelId FK
nvarchar VersionName
nvarchar Description
datetimeoffset ActivationDateTime
uniqueidentifier Tenant
datetimeoffset EntityCreatedDateTime
datetimeoffset EntityUpdatedDateTime
uniqueidentifier EntityCreatedAuthToken
uniqueidentifier EntityUpdatedAuthToken
bit Concealed
}
"DPME.Models" {
uniqueidentifier Id PK
uniqueidentifier ModelRepositoryId FK
nvarchar Name
nvarchar Description
nvarchar ScriptPath
uniqueidentifier Tenant
datetimeoffset EntityCreatedDateTime
datetimeoffset EntityUpdatedDateTime
uniqueidentifier EntityCreatedAuthToken
uniqueidentifier EntityUpdatedAuthToken
bit Concealed
}
"DPME.Models" }o--|| "DPME.ModelRepositories" : "ModelRepositoryId"
"DPME.ModelVersions" }o--|| "DPME.Models" : "ModelId"
{
"definitions": {
"DPME.ModelRepositories": {
"properties": {
"Concealed": {
"type": "boolean",
"description": "bit"
},
"Description": {
"type": "string",
"description": "nvarchar"
},
"EntityUpdatedAuthToken": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"Name": {
"type": "string",
"description": "nvarchar"
},
"RepositoryHost": {
"type": "string",
"description": "nvarchar"
},
"EntityCreatedAuthToken": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"EntityUpdatedDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"RepositoryPasswordSecretName": {
"type": "string",
"description": "nvarchar"
},
"Tenant": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"RepositoryUsername": {
"type": "string",
"description": "nvarchar"
},
"EntityCreatedDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"Id": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"RepositoryName": {
"type": "string",
"description": "nvarchar"
}
},
"type": "object"
},
"DPME.ModelVersions": {
"properties": {
"Concealed": {
"type": "boolean",
"description": "bit"
},
"EntityUpdatedAuthToken": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"Id": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"ModelId": {
"type": "string",
"description": "FK to DPME.Models"
},
"ActivationDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"EntityCreatedDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"EntityUpdatedDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"Description": {
"type": "string",
"description": "nvarchar"
},
"VersionName": {
"type": "string",
"description": "nvarchar"
},
"EntityCreatedAuthToken": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"Tenant": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
}
},
"type": "object"
},
"DPME.Models": {
"properties": {
"Concealed": {
"type": "boolean",
"description": "bit"
},
"EntityUpdatedAuthToken": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"ModelRepositoryId": {
"type": "string",
"description": "FK to DPME.ModelRepositories"
},
"ScriptPath": {
"type": "string",
"description": "nvarchar"
},
"Id": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"Description": {
"type": "string",
"description": "nvarchar"
},
"EntityCreatedDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"Name": {
"type": "string",
"description": "nvarchar"
},
"EntityUpdatedDateTime": {
"format": "date-time",
"description": "datetimeoffset",
"type": "string"
},
"EntityCreatedAuthToken": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
},
"Tenant": {
"format": "uuid",
"description": "uniqueidentifier",
"type": "string"
}
},
"type": "object"
}
},
"title": "DPME.ModelRepository",
"$comment": "Generated from Mermaid ERD with property-level descriptions",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object"
}