KernelModel

Represents an entity definition registered in the solution, serving as a metadata registry for all available entity schemas. Each KernelModel tracks its name, module membership, namespace, and whether it is abstract, enabling runtime introspection and schema-driven development.

6 properties
Schema

Properties

PropertyTypeModeDescriptionRequired
namestring
calculated

Unique name of the entity

Example: "Document"

Required
moduleKernelModule
calculated

Module that this entity belongs to

Required
descriptionstring
calculated

Description of the entity purpose and usage

Optional
namespacestring
calculated

Fully qualified namespace or path for this entity within the solution

Example: "dms.Document"

Optional
abstractboolean
calculated

Whether this entity is abstract and cannot be instantiated directly

Optional
metadatajson
calculated

Additional entity configuration and metadata

Optional

Examples

Example 1

{
  "@type": "KernelModel",
  "name": "BaseParty",
  "module": {
    "@type": "KernelModule",
    "name": "core"
  },
  "description": "Abstract base for all party types (Person, Organization) defining shared properties",
  "namespace": "core.BaseParty",
  "abstract": true
}

Example 2

{
  "@type": "KernelModel",
  "name": "Person",
  "module": {
    "@type": "KernelModule",
    "name": "core"
  },
  "description": "Represents an individual human being with personal and contact information",
  "namespace": "core.Person",
  "abstract": false
}

Example 3

{
  "@type": "KernelModel",
  "name": "Product",
  "module": {
    "@type": "KernelModule",
    "name": "catalog"
  },
  "description": "Represents a sellable item in the product catalog",
  "namespace": "catalog.Product",
  "abstract": false
}

Example 4

{
  "@type": "KernelModel",
  "name": "Invoice",
  "module": {
    "@type": "KernelModule",
    "name": "billing"
  },
  "description": "Represents a billing document for goods or services rendered",
  "namespace": "billing.Invoice",
  "abstract": false
}