Domain¶
A Domain is a bounded context that is aligned with a Business Unit or a function within an organization.
Overview¶
Domains provide a way to organize data assets by business domains, enabling better ownership and governance. They support hierarchical structures with parent-child relationships and can be categorized by type (Source-aligned, Consumer-aligned, or Aggregate).
JSON Schema¶
{
"$id": "https://open-metadata.org/schema/entity/domains/domain.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Domain",
"description": "A `Domain` is a bounded context that is aligned with a Business Unit or a function within an organization.",
"type": "object",
"properties": {
"id": {
"description": "Unique ID of the Domain",
"$ref": "../../type/basic.json#/definitions/uuid"
},
"domainType": {
"description": "Domain type",
"type": "string",
"enum": ["Source-aligned", "Consumer-aligned", "Aggregate"]
},
"name": {
"description": "A unique name of the Domain",
"$ref": "../../type/basic.json#/definitions/entityName"
},
"fullyQualifiedName": {
"description": "FullyQualifiedName same as `name`.",
"$ref": "../../type/basic.json#/definitions/fullyQualifiedEntityName"
},
"displayName": {
"description": "Name used for display purposes. Example 'Marketing', 'Payments', etc.",
"type": "string"
},
"description": {
"description": "Description of the Domain.",
"$ref": "../../type/basic.json#/definitions/markdown"
},
"style": {
"$ref": "../../type/basic.json#/definitions/style"
},
"version": {
"description": "Metadata version of the entity.",
"$ref": "../../type/entityHistory.json#/definitions/entityVersion"
},
"updatedAt": {
"description": "Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"updatedBy": {
"description": "User who made the update.",
"type": "string"
},
"impersonatedBy": {
"description": "Bot user that performed the action on behalf of the actual user.",
"$ref": "../../type/basic.json#/definitions/impersonatedBy"
},
"href": {
"description": "Link to the resource corresponding to this entity.",
"$ref": "../../type/basic.json#/definitions/href"
},
"parent": {
"description": "Parent domains. When 'null' or not set, indicates that this is the top level domain.",
"$ref": "../../type/entityReference.json"
},
"children": {
"description": "Children domains or sub-domains.",
"$ref": "../../type/entityReferenceList.json"
},
"childrenCount": {
"description": "Count of all nested children domains under this domain",
"type": "integer"
},
"owners": {
"description": "Owners of this Domain.",
"$ref": "../../type/entityReferenceList.json"
},
"experts": {
"description": "List of users who are experts in this Domain.",
"$ref": "../../type/entityReferenceList.json"
},
"assets": {
"description": "Data assets collection that is part of this domain.",
"$ref": "../../type/entityReferenceList.json",
"deprecated": true
},
"tags": {
"description": "Tags associated with the Domain.",
"type": "array",
"items": {
"$ref": "../../type/tagLabel.json"
}
},
"changeDescription": {
"description": "Change that lead to this version of the entity.",
"$ref": "../../type/entityHistory.json#/definitions/changeDescription"
},
"incrementalChangeDescription": {
"description": "Change that lead to this version of the entity.",
"$ref": "../../type/entityHistory.json#/definitions/changeDescription"
},
"extension": {
"description": "Entity extension data with custom attributes added to the entity.",
"$ref": "../../type/basic.json#/definitions/entityExtension"
},
"followers": {
"description": "Followers of this entity.",
"$ref": "../../type/entityReferenceList.json"
}
},
"required": ["id", "name", "description", "domainType"]
}
Properties¶
Core Properties¶
- id (uuid, required): Unique identifier of the Domain
- name (string, required): A unique name of the Domain
- fullyQualifiedName (string): FullyQualifiedName same as
name - displayName (string): Name used for display purposes (e.g., 'Marketing', 'Payments')
- description (markdown, required): Description of the Domain
- domainType (enum, required): Type of domain - one of:
Source-aligned: Domain aligned with data sourcesConsumer-aligned: Domain aligned with data consumersAggregate: Aggregate domain combining multiple domains
Hierarchy Properties¶
- parent (EntityReference): Parent domain. When null or not set, indicates this is a top-level domain
- children (EntityReferenceList): Child domains or sub-domains
- childrenCount (integer): Count of all nested children domains under this domain
Ownership & Collaboration¶
- owners (EntityReferenceList): Owners of this Domain
- experts (EntityReferenceList): List of users who are experts in this Domain
- followers (EntityReferenceList): Followers of this entity
Asset Management¶
- assets (EntityReferenceList, deprecated): Data assets collection that is part of this domain
- Note: This property is deprecated. Use
GET /v1/domains/{id}/assetsAPI endpoint for paginated access to domain assets
Metadata Properties¶
- style (Style): Visual styling information for the domain
- tags (array of TagLabel): Tags associated with the Domain
- version (number): Metadata version of the entity
- updatedAt (timestamp): Last update time in Unix epoch time milliseconds
- updatedBy (string): User who made the update
- impersonatedBy (string): Bot user that performed the action on behalf of the actual user
- href (string): Link to the resource corresponding to this entity
- changeDescription (ChangeDescription): Change that led to this version of the entity
- incrementalChangeDescription (ChangeDescription): Incremental change information
- extension (EntityExtension): Entity extension data with custom attributes
RDF Representation¶
@prefix om: <https://open-metadata.org/schema/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
om:Domain a owl:Class ;
rdfs:label "Domain" ;
rdfs:comment "A Domain is a bounded context that is aligned with a Business Unit or a function within an organization." ;
rdfs:subClassOf om:Entity .
om:domainType a owl:DatatypeProperty ;
rdfs:label "domainType" ;
rdfs:comment "Domain type" ;
rdfs:domain om:Domain ;
rdfs:range xsd:string .
om:parent a owl:ObjectProperty ;
rdfs:label "parent" ;
rdfs:comment "Parent domains. When null or not set, indicates that this is the top level domain." ;
rdfs:domain om:Domain ;
rdfs:range om:Domain .
om:children a owl:ObjectProperty ;
rdfs:label "children" ;
rdfs:comment "Children domains or sub-domains." ;
rdfs:domain om:Domain ;
rdfs:range om:Domain .
om:childrenCount a owl:DatatypeProperty ;
rdfs:label "childrenCount" ;
rdfs:comment "Count of all nested children domains under this domain" ;
rdfs:domain om:Domain ;
rdfs:range xsd:integer .
om:experts a owl:ObjectProperty ;
rdfs:label "experts" ;
rdfs:comment "List of users who are experts in this Domain." ;
rdfs:domain om:Domain ;
rdfs:range om:User .
om:assets a owl:ObjectProperty ;
rdfs:label "assets" ;
rdfs:comment "Data assets collection that is part of this domain." ;
rdfs:domain om:Domain ;
owl:deprecated true .
JSON-LD Context¶
{
"@context": {
"@vocab": "https://open-metadata.org/schema/",
"om": "https://open-metadata.org/schema/",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"id": "@id",
"type": "@type",
"Domain": "om:Domain",
"domainType": {
"@id": "om:domainType",
"@type": "xsd:string"
},
"name": {
"@id": "om:name",
"@type": "xsd:string"
},
"fullyQualifiedName": {
"@id": "om:fullyQualifiedName",
"@type": "xsd:string"
},
"displayName": {
"@id": "om:displayName",
"@type": "xsd:string"
},
"description": {
"@id": "om:description",
"@type": "xsd:string"
},
"parent": {
"@id": "om:parent",
"@type": "@id"
},
"children": {
"@id": "om:children",
"@type": "@id",
"@container": "@set"
},
"childrenCount": {
"@id": "om:childrenCount",
"@type": "xsd:integer"
},
"owners": {
"@id": "om:owners",
"@type": "@id",
"@container": "@set"
},
"experts": {
"@id": "om:experts",
"@type": "@id",
"@container": "@set"
},
"assets": {
"@id": "om:assets",
"@type": "@id",
"@container": "@set"
},
"tags": {
"@id": "om:tags",
"@type": "@id",
"@container": "@set"
},
"followers": {
"@id": "om:followers",
"@type": "@id",
"@container": "@set"
},
"version": {
"@id": "om:version",
"@type": "xsd:decimal"
},
"updatedAt": {
"@id": "om:updatedAt",
"@type": "xsd:dateTime"
},
"updatedBy": {
"@id": "om:updatedBy",
"@type": "xsd:string"
},
"href": {
"@id": "om:href",
"@type": "@id"
}
}
}
Example¶
{
"@context": "https://open-metadata.org/schema/entity/domains/domain.jsonld",
"@type": "Domain",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "marketing",
"fullyQualifiedName": "marketing",
"displayName": "Marketing",
"description": "Marketing domain containing all marketing-related data assets",
"domainType": "Consumer-aligned",
"owners": [
{
"id": "user123",
"type": "user",
"name": "john.doe"
}
],
"experts": [
{
"id": "user456",
"type": "user",
"name": "jane.smith"
}
],
"parent": null,
"children": [
{
"id": "subdomain123",
"type": "domain",
"name": "marketing.campaigns"
}
],
"childrenCount": 1,
"tags": [
{
"tagFQN": "PII.Sensitive",
"labelType": "Manual"
}
],
"version": 1.0,
"updatedAt": 1701234567890,
"updatedBy": "admin",
"href": "https://open-metadata.org/api/v1/domains/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}