datahub/assets/js/04b0ffe3.0c22eb9c.js
2025-08-08 21:37:06 +00:00

1 line
97 KiB
JavaScript

"use strict";(self.webpackChunkdocs_website=self.webpackChunkdocs_website||[]).push([[39801],{15680:(e,n,a)=>{a.d(n,{xA:()=>c,yg:()=>y});var t=a(96540);function i(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function o(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function s(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?o(Object(a),!0).forEach((function(n){i(e,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}))}return e}function r(e,n){if(null==e)return{};var a,t,i=function(e,n){if(null==e)return{};var a,t,i={},o=Object.keys(e);for(t=0;t<o.length;t++)a=o[t],n.indexOf(a)>=0||(i[a]=e[a]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)a=o[t],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=t.createContext({}),m=function(e){var n=t.useContext(l),a=n;return e&&(a="function"==typeof e?e(n):s(s({},n),e)),a},c=function(e){var n=m(e.components);return t.createElement(l.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},u=t.forwardRef((function(e,n){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),d=m(a),u=i,y=d["".concat(l,".").concat(u)]||d[u]||p[u]||o;return a?t.createElement(y,s(s({ref:n},c),{},{components:a})):t.createElement(y,s({ref:n},c))}));function y(e,n){var a=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=a.length,s=new Array(o);s[0]=u;var r={};for(var l in n)hasOwnProperty.call(n,l)&&(r[l]=n[l]);r.originalType=e,r[d]="string"==typeof e?e:i,s[1]=r;for(var m=2;m<o;m++)s[m]=a[m];return t.createElement.apply(null,s)}return t.createElement.apply(null,a)}u.displayName="MDXCreateElement"},16075:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>r,metadata:()=>m,toc:()=>d});a(96540);var t=a(15680);function i(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function o(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}(Object(n)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})),e}function s(e,n){if(null==e)return{};var a,t,i=function(e,n){if(null==e)return{};var a,t,i={},o=Object.keys(e);for(t=0;t<o.length;t++)a=o[t],n.indexOf(a)>=0||(i[a]=e[a]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)a=o[t],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}const r={sidebar_position:15,title:"GlossaryTerm",slug:"/generated/metamodel/entities/glossaryterm",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/generated/metamodel/entities/glossaryTerm.md"},l="GlossaryTerm",m={unversionedId:"docs/generated/metamodel/entities/glossaryTerm",id:"version-1.1.0/docs/generated/metamodel/entities/glossaryTerm",title:"GlossaryTerm",description:"Aspects",source:"@site/versioned_docs/version-1.1.0/docs/generated/metamodel/entities/glossaryTerm.md",sourceDirName:"docs/generated/metamodel/entities",slug:"/generated/metamodel/entities/glossaryterm",permalink:"/docs/1.1.0/generated/metamodel/entities/glossaryterm",draft:!1,editUrl:"https://github.com/datahub-project/datahub/blob/master/docs/generated/metamodel/entities/glossaryTerm.md",tags:[],version:"1.1.0",sidebarPosition:15,frontMatter:{sidebar_position:15,title:"GlossaryTerm",slug:"/generated/metamodel/entities/glossaryterm",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/generated/metamodel/entities/glossaryTerm.md"},sidebar:"overviewSidebar",previous:{title:"Tag",permalink:"/docs/1.1.0/generated/metamodel/entities/tag"},next:{title:"GlossaryNode",permalink:"/docs/1.1.0/generated/metamodel/entities/glossarynode"}},c={},d=[{value:"Aspects",id:"aspects",level:2},{value:"glossaryTermKey",id:"glossarytermkey",level:3},{value:"glossaryTermInfo",id:"glossaryterminfo",level:3},{value:"ownership",id:"ownership",level:3},{value:"status",id:"status",level:3},{value:"browsePaths",id:"browsepaths",level:3},{value:"glossaryRelatedTerms",id:"glossaryrelatedterms",level:3},{value:"institutionalMemory",id:"institutionalmemory",level:3},{value:"schemaMetadata",id:"schemametadata",level:3},{value:"deprecation",id:"deprecation",level:3},{value:"domains",id:"domains",level:3},{value:"structuredProperties",id:"structuredproperties",level:3},{value:"forms",id:"forms",level:3},{value:"testResults",id:"testresults",level:3},{value:"subTypes",id:"subtypes",level:3},{value:"Relationships",id:"relationships",level:2},{value:"Self",id:"self",level:3},{value:"Outgoing",id:"outgoing",level:3},{value:"Incoming",id:"incoming",level:3},{value:"Global Metadata Model",id:"global-metadata-model",level:2}],p={toc:d},u="wrapper";function y(e){var{components:n}=e,a=s(e,["components"]);return(0,t.yg)(u,o(function(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),t.forEach((function(n){i(e,n,a[n])}))}return e}({},p,a),{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h1",{id:"glossaryterm"},"GlossaryTerm"),(0,t.yg)("h2",{id:"aspects"},"Aspects"),(0,t.yg)("h3",{id:"glossarytermkey"},"glossaryTermKey"),(0,t.yg)("p",null,"Key for a GlossaryTerm"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "glossaryTermKey"\n },\n "name": "GlossaryTermKey",\n "namespace": "com.linkedin.metadata.key",\n "fields": [\n {\n "Searchable": {\n "enableAutocomplete": true,\n "fieldName": "id",\n "fieldType": "WORD_GRAM"\n },\n "type": "string",\n "name": "name",\n "doc": "The term name, which serves as a unique id"\n }\n ],\n "doc": "Key for a GlossaryTerm"\n}\n'))),(0,t.yg)("h3",{id:"glossaryterminfo"},"glossaryTermInfo"),(0,t.yg)("p",null,"Properties associated with a GlossaryTerm"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "glossaryTermInfo"\n },\n "name": "GlossaryTermInfo",\n "namespace": "com.linkedin.glossary",\n "fields": [\n {\n "Searchable": {\n "/*": {\n "fieldType": "TEXT",\n "queryByDefault": true\n }\n },\n "type": {\n "type": "map",\n "values": "string"\n },\n "name": "customProperties",\n "default": {},\n "doc": "Custom property bag."\n },\n {\n "Searchable": {\n "fieldType": "TEXT_PARTIAL"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "id",\n "default": null,\n "doc": "Optional id for the term"\n },\n {\n "Searchable": {\n "boostScore": 10.0,\n "enableAutocomplete": true,\n "fieldNameAliases": [\n "_entityName"\n ],\n "fieldType": "WORD_GRAM"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "name",\n "default": null,\n "doc": "Display name of the term"\n },\n {\n "Searchable": {},\n "type": "string",\n "name": "definition",\n "doc": "Definition of business term."\n },\n {\n "Relationship": {\n "entityTypes": [\n "glossaryNode"\n ],\n "name": "IsPartOf"\n },\n "Searchable": {\n "fieldName": "parentNode",\n "fieldType": "URN",\n "hasValuesFieldName": "hasParentNode"\n },\n "java": {\n "class": "com.linkedin.common.urn.GlossaryNodeUrn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "parentNode",\n "default": null,\n "doc": "Parent node of the glossary term"\n },\n {\n "Searchable": {\n "fieldType": "KEYWORD"\n },\n "type": "string",\n "name": "termSource",\n "doc": "Source of the Business Term (INTERNAL or EXTERNAL) with default value as INTERNAL"\n },\n {\n "Searchable": {\n "fieldType": "KEYWORD"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "sourceRef",\n "default": null,\n "doc": "External Reference to the business-term"\n },\n {\n "java": {\n "class": "com.linkedin.common.url.Url",\n "coercerClass": "com.linkedin.common.url.UrlCoercer"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "sourceUrl",\n "default": null,\n "doc": "The abstracted URL such as https://spec.edmcouncil.org/fibo/ontology/FBC/FinancialInstruments/FinancialInstruments/CashInstrument."\n },\n {\n "deprecated": true,\n "type": [\n "null",\n "string"\n ],\n "name": "rawSchema",\n "default": null,\n "doc": "Schema definition of the glossary term"\n }\n ],\n "doc": "Properties associated with a GlossaryTerm"\n}\n'))),(0,t.yg)("h3",{id:"ownership"},"ownership"),(0,t.yg)("p",null,"Ownership information of an entity."),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "ownership"\n },\n "name": "Ownership",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "Owner",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Relationship": {\n "entityTypes": [\n "corpuser",\n "corpGroup"\n ],\n "name": "OwnedBy"\n },\n "Searchable": {\n "addToFilters": true,\n "fieldName": "owners",\n "fieldType": "URN",\n "filterNameOverride": "Owned By",\n "hasValuesFieldName": "hasOwners",\n "queryByDefault": false\n },\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "owner",\n "doc": "Owner URN, e.g. urn:li:corpuser:ldap, urn:li:corpGroup:group_name, and urn:li:multiProduct:mp_name\\n(Caveat: only corpuser is currently supported in the frontend.)"\n },\n {\n "deprecated": true,\n "type": {\n "type": "enum",\n "symbolDocs": {\n "BUSINESS_OWNER": "A person or group who is responsible for logical, or business related, aspects of the asset.",\n "CONSUMER": "A person, group, or service that consumes the data\\nDeprecated! Use TECHNICAL_OWNER or BUSINESS_OWNER instead.",\n "CUSTOM": "Set when ownership type is unknown or a when new one is specified as an ownership type entity for which we have no\\nenum value for. This is used for backwards compatibility",\n "DATAOWNER": "A person or group that is owning the data\\nDeprecated! Use TECHNICAL_OWNER instead.",\n "DATA_STEWARD": "A steward, expert, or delegate responsible for the asset.",\n "DELEGATE": "A person or a group that overseas the operation, e.g. a DBA or SRE.\\nDeprecated! Use TECHNICAL_OWNER instead.",\n "DEVELOPER": "A person or group that is in charge of developing the code\\nDeprecated! Use TECHNICAL_OWNER instead.",\n "NONE": "No specific type associated to the owner.",\n "PRODUCER": "A person, group, or service that produces/generates the data\\nDeprecated! Use TECHNICAL_OWNER instead.",\n "STAKEHOLDER": "A person or a group that has direct business interest\\nDeprecated! Use TECHNICAL_OWNER, BUSINESS_OWNER, or STEWARD instead.",\n "TECHNICAL_OWNER": "person or group who is responsible for technical aspects of the asset."\n },\n "deprecatedSymbols": {\n "CONSUMER": true,\n "DATAOWNER": true,\n "DELEGATE": true,\n "DEVELOPER": true,\n "PRODUCER": true,\n "STAKEHOLDER": true\n },\n "name": "OwnershipType",\n "namespace": "com.linkedin.common",\n "symbols": [\n "CUSTOM",\n "TECHNICAL_OWNER",\n "BUSINESS_OWNER",\n "DATA_STEWARD",\n "NONE",\n "DEVELOPER",\n "DATAOWNER",\n "DELEGATE",\n "PRODUCER",\n "CONSUMER",\n "STAKEHOLDER"\n ],\n "doc": "Asset owner types"\n },\n "name": "type",\n "doc": "The type of the ownership"\n },\n {\n "Relationship": {\n "entityTypes": [\n "ownershipType"\n ],\n "name": "ownershipType"\n },\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "typeUrn",\n "default": null,\n "doc": "The type of the ownership\\nUrn of type O"\n },\n {\n "type": [\n "null",\n {\n "type": "record",\n "name": "OwnershipSource",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": {\n "type": "enum",\n "symbolDocs": {\n "AUDIT": "Auditing system or audit logs",\n "DATABASE": "Database, e.g. GRANTS table",\n "FILE_SYSTEM": "File system, e.g. file/directory owner",\n "ISSUE_TRACKING_SYSTEM": "Issue tracking system, e.g. Jira",\n "MANUAL": "Manually provided by a user",\n "OTHER": "Other sources",\n "SERVICE": "Other ownership-like service, e.g. Nuage, ACL service etc",\n "SOURCE_CONTROL": "SCM system, e.g. GIT, SVN"\n },\n "name": "OwnershipSourceType",\n "namespace": "com.linkedin.common",\n "symbols": [\n "AUDIT",\n "DATABASE",\n "FILE_SYSTEM",\n "ISSUE_TRACKING_SYSTEM",\n "MANUAL",\n "SERVICE",\n "SOURCE_CONTROL",\n "OTHER"\n ]\n },\n "name": "type",\n "doc": "The type of the source"\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "url",\n "default": null,\n "doc": "A reference URL for the source"\n }\n ],\n "doc": "Source/provider of the ownership information"\n }\n ],\n "name": "source",\n "default": null,\n "doc": "Source information for the ownership"\n }\n ],\n "doc": "Ownership information"\n }\n },\n "name": "owners",\n "doc": "List of owners of the entity."\n },\n {\n "Searchable": {\n "/*": {\n "fieldType": "MAP_ARRAY",\n "queryByDefault": false\n }\n },\n "type": [\n {\n "type": "map",\n "values": {\n "type": "array",\n "items": "string"\n }\n },\n "null"\n ],\n "name": "ownerTypes",\n "default": {},\n "doc": "Ownership type to Owners map, populated via mutation hook."\n },\n {\n "type": {\n "type": "record",\n "name": "AuditStamp",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "impersonator",\n "default": null,\n "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "message",\n "default": null,\n "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."\n }\n ],\n "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."\n },\n "name": "lastModified",\n "default": {\n "actor": "urn:li:corpuser:unknown",\n "impersonator": null,\n "time": 0,\n "message": null\n },\n "doc": "Audit stamp containing who last modified the record and when. A value of 0 in the time field indicates missing data."\n }\n ],\n "doc": "Ownership information of an entity."\n}\n'))),(0,t.yg)("h3",{id:"status"},"status"),(0,t.yg)("p",null,"The lifecycle status metadata of an entity, e.g. dataset, metric, feature, etc.\nThis aspect is used to represent soft deletes conventionally."),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "status"\n },\n "name": "Status",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Searchable": {\n "fieldType": "BOOLEAN"\n },\n "type": "boolean",\n "name": "removed",\n "default": false,\n "doc": "Whether the entity has been removed (soft-deleted)."\n }\n ],\n "doc": "The lifecycle status metadata of an entity, e.g. dataset, metric, feature, etc.\\nThis aspect is used to represent soft deletes conventionally."\n}\n'))),(0,t.yg)("h3",{id:"browsepaths"},"browsePaths"),(0,t.yg)("p",null,"Shared aspect containing Browse Paths to be indexed for an entity."),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "browsePaths"\n },\n "name": "BrowsePaths",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Searchable": {\n "/*": {\n "fieldName": "browsePaths",\n "fieldType": "BROWSE_PATH"\n }\n },\n "type": {\n "type": "array",\n "items": "string"\n },\n "name": "paths",\n "doc": "A list of valid browse paths for the entity.\\n\\nBrowse paths are expected to be forward slash-separated strings. For example: \'prod/snowflake/datasetName\'"\n }\n ],\n "doc": "Shared aspect containing Browse Paths to be indexed for an entity."\n}\n'))),(0,t.yg)("h3",{id:"glossaryrelatedterms"},"glossaryRelatedTerms"),(0,t.yg)("p",null,"Has A / Is A lineage information about a glossary Term reporting the lineage"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "glossaryRelatedTerms"\n },\n "name": "GlossaryRelatedTerms",\n "namespace": "com.linkedin.glossary",\n "fields": [\n {\n "Relationship": {\n "/*": {\n "entityTypes": [\n "glossaryTerm"\n ],\n "name": "IsA"\n }\n },\n "Searchable": {\n "/*": {\n "fieldName": "isRelatedTerms",\n "fieldType": "URN",\n "queryByDefault": false\n }\n },\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "isRelatedTerms",\n "default": null,\n "doc": "The relationship Is A with glossary term"\n },\n {\n "Relationship": {\n "/*": {\n "entityTypes": [\n "glossaryTerm"\n ],\n "name": "HasA"\n }\n },\n "Searchable": {\n "/*": {\n "fieldName": "hasRelatedTerms",\n "fieldType": "URN",\n "queryByDefault": false\n }\n },\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "hasRelatedTerms",\n "default": null,\n "doc": "The relationship Has A with glossary term"\n },\n {\n "Relationship": {\n "/*": {\n "entityTypes": [\n "glossaryTerm"\n ],\n "name": "HasValue"\n }\n },\n "Searchable": {\n "/*": {\n "fieldName": "values",\n "fieldType": "URN"\n }\n },\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "values",\n "default": null,\n "doc": "The relationship Has Value with glossary term.\\nThese are fixed value a term has. For example a ColorEnum where RED, GREEN and YELLOW are fixed values."\n },\n {\n "Relationship": {\n "/*": {\n "entityTypes": [\n "glossaryTerm"\n ],\n "name": "IsRelatedTo"\n }\n },\n "Searchable": {\n "/*": {\n "fieldName": "relatedTerms",\n "fieldType": "URN"\n }\n },\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "relatedTerms",\n "default": null,\n "doc": "The relationship isRelatedTo with glossary term"\n }\n ],\n "doc": "Has A / Is A lineage information about a glossary Term reporting the lineage"\n}\n'))),(0,t.yg)("h3",{id:"institutionalmemory"},"institutionalMemory"),(0,t.yg)("p",null,"Institutional memory of an entity. This is a way to link to relevant documentation and provide description of the documentation. Institutional or tribal knowledge is very important for users to leverage the entity."),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "institutionalMemory"\n },\n "name": "InstitutionalMemory",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "InstitutionalMemoryMetadata",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.url.Url",\n "coercerClass": "com.linkedin.common.url.UrlCoercer"\n },\n "type": "string",\n "name": "url",\n "doc": "Link to an engineering design document or a wiki page."\n },\n {\n "type": "string",\n "name": "description",\n "doc": "Description of the link."\n },\n {\n "type": {\n "type": "record",\n "name": "AuditStamp",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "impersonator",\n "default": null,\n "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "message",\n "default": null,\n "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."\n }\n ],\n "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."\n },\n "name": "createStamp",\n "doc": "Audit stamp associated with creation of this record"\n }\n ],\n "doc": "Metadata corresponding to a record of institutional memory."\n }\n },\n "name": "elements",\n "doc": "List of records that represent institutional memory of an entity. Each record consists of a link, description, creator and timestamps associated with that record."\n }\n ],\n "doc": "Institutional memory of an entity. This is a way to link to relevant documentation and provide description of the documentation. Institutional or tribal knowledge is very important for users to leverage the entity."\n}\n'))),(0,t.yg)("h3",{id:"schemametadata"},"schemaMetadata"),(0,t.yg)("p",null,"SchemaMetadata to describe metadata related to store schema"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "schemaMetadata"\n },\n "name": "SchemaMetadata",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "validate": {\n "strlen": {\n "max": 500,\n "min": 1\n }\n },\n "type": "string",\n "name": "schemaName",\n "doc": "Schema name e.g. PageViewEvent, identity.Profile, ams.account_management_tracking"\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.DataPlatformUrn"\n },\n "type": "string",\n "name": "platform",\n "doc": "Standardized platform urn where schema is defined. The data platform Urn (urn:li:platform:{platform_name})"\n },\n {\n "type": "long",\n "name": "version",\n "doc": "Every change to SchemaMetadata in the resource results in a new version. Version is server assigned. This version is differ from platform native schema version."\n },\n {\n "type": {\n "type": "record",\n "name": "AuditStamp",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "impersonator",\n "default": null,\n "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "message",\n "default": null,\n "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."\n }\n ],\n "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."\n },\n "name": "created",\n "default": {\n "actor": "urn:li:corpuser:unknown",\n "impersonator": null,\n "time": 0,\n "message": null\n },\n "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."\n },\n {\n "type": "com.linkedin.common.AuditStamp",\n "name": "lastModified",\n "default": {\n "actor": "urn:li:corpuser:unknown",\n "impersonator": null,\n "time": 0,\n "message": null\n },\n "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."\n },\n {\n "type": [\n "null",\n "com.linkedin.common.AuditStamp"\n ],\n "name": "deleted",\n "default": null,\n "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.DatasetUrn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "dataset",\n "default": null,\n "doc": "Dataset this schema metadata is associated with."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "cluster",\n "default": null,\n "doc": "The cluster this schema metadata resides from"\n },\n {\n "type": "string",\n "name": "hash",\n "doc": "the SHA1 hash of the schema content"\n },\n {\n "type": [\n {\n "type": "record",\n "name": "EspressoSchema",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "documentSchema",\n "doc": "The native espresso document schema."\n },\n {\n "type": "string",\n "name": "tableSchema",\n "doc": "The espresso table schema definition."\n }\n ],\n "doc": "Schema text of an espresso table schema."\n },\n {\n "type": "record",\n "name": "OracleDDL",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "tableSchema",\n "doc": "The native schema in the dataset\'s platform. This is a human readable (json blob) table schema."\n }\n ],\n "doc": "Schema holder for oracle data definition language that describes an oracle table."\n },\n {\n "type": "record",\n "name": "MySqlDDL",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "tableSchema",\n "doc": "The native schema in the dataset\'s platform. This is a human readable (json blob) table schema."\n }\n ],\n "doc": "Schema holder for MySql data definition language that describes an MySql table."\n },\n {\n "type": "record",\n "name": "PrestoDDL",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "rawSchema",\n "doc": "The raw schema in the dataset\'s platform. This includes the DDL and the columns extracted from DDL."\n }\n ],\n "doc": "Schema holder for presto data definition language that describes a presto view."\n },\n {\n "type": "record",\n "name": "KafkaSchema",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "documentSchema",\n "doc": "The native kafka document schema. This is a human readable avro document schema."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "documentSchemaType",\n "default": null,\n "doc": "The native kafka document schema type. This can be AVRO/PROTOBUF/JSON."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "keySchema",\n "default": null,\n "doc": "The native kafka key schema as retrieved from Schema Registry"\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "keySchemaType",\n "default": null,\n "doc": "The native kafka key schema type. This can be AVRO/PROTOBUF/JSON."\n }\n ],\n "doc": "Schema holder for kafka schema."\n },\n {\n "type": "record",\n "name": "BinaryJsonSchema",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "schema",\n "doc": "The native schema text for binary JSON file format."\n }\n ],\n "doc": "Schema text of binary JSON schema."\n },\n {\n "type": "record",\n "name": "OrcSchema",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "schema",\n "doc": "The native schema for ORC file format."\n }\n ],\n "doc": "Schema text of an ORC schema."\n },\n {\n "type": "record",\n "name": "Schemaless",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "The dataset has no specific schema associated with it"\n },\n {\n "type": "record",\n "name": "KeyValueSchema",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "keySchema",\n "doc": "The raw schema for the key in the key-value store."\n },\n {\n "type": "string",\n "name": "valueSchema",\n "doc": "The raw schema for the value in the key-value store."\n }\n ],\n "doc": "Schema text of a key-value store schema."\n },\n {\n "type": "record",\n "name": "OtherSchema",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "rawSchema",\n "doc": "The native schema in the dataset\'s platform."\n }\n ],\n "doc": "Schema holder for undefined schema types."\n }\n ],\n "name": "platformSchema",\n "doc": "The native schema in the dataset\'s platform."\n },\n {\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "SchemaField",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "Searchable": {\n "boostScore": 1.0,\n "fieldName": "fieldPaths",\n "fieldType": "TEXT",\n "queryByDefault": "true"\n },\n "type": "string",\n "name": "fieldPath",\n "doc": "Flattened name of the field. Field is computed from jsonPath field."\n },\n {\n "Deprecated": true,\n "type": [\n "null",\n "string"\n ],\n "name": "jsonPath",\n "default": null,\n "doc": "Flattened name of a field in JSON Path notation."\n },\n {\n "type": "boolean",\n "name": "nullable",\n "default": false,\n "doc": "Indicates if this field is optional or nullable"\n },\n {\n "Searchable": {\n "boostScore": 0.1,\n "fieldName": "fieldDescriptions",\n "fieldType": "TEXT"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "description",\n "default": null,\n "doc": "Description"\n },\n {\n "Deprecated": true,\n "Searchable": {\n "boostScore": 0.2,\n "fieldName": "fieldLabels",\n "fieldType": "TEXT"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "label",\n "default": null,\n "doc": "Label of the field. Provides a more human-readable name for the field than field path. Some sources will\\nprovide this metadata but not all sources have the concept of a label. If just one string is associated with\\na field in a source, that is most likely a description.\\n\\nNote that this field is deprecated and is not surfaced in the UI."\n },\n {\n "type": [\n "null",\n "com.linkedin.common.AuditStamp"\n ],\n "name": "created",\n "default": null,\n "doc": "An AuditStamp corresponding to the creation of this schema field."\n },\n {\n "type": [\n "null",\n "com.linkedin.common.AuditStamp"\n ],\n "name": "lastModified",\n "default": null,\n "doc": "An AuditStamp corresponding to the last modification of this schema field."\n },\n {\n "type": {\n "type": "record",\n "name": "SchemaFieldDataType",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": [\n {\n "type": "record",\n "name": "BooleanType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Boolean field type."\n },\n {\n "type": "record",\n "name": "FixedType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Fixed field type."\n },\n {\n "type": "record",\n "name": "StringType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "String field type."\n },\n {\n "type": "record",\n "name": "BytesType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Bytes field type."\n },\n {\n "type": "record",\n "name": "NumberType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Number data type: long, integer, short, etc.."\n },\n {\n "type": "record",\n "name": "DateType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Date field type."\n },\n {\n "type": "record",\n "name": "TimeType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Time field type. This should also be used for datetimes."\n },\n {\n "type": "record",\n "name": "EnumType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Enum field type."\n },\n {\n "type": "record",\n "name": "NullType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Null field type."\n },\n {\n "type": "record",\n "name": "MapType",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": [\n "null",\n "string"\n ],\n "name": "keyType",\n "default": null,\n "doc": "Key type in a map"\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "valueType",\n "default": null,\n "doc": "Type of the value in a map"\n }\n ],\n "doc": "Map field type."\n },\n {\n "type": "record",\n "name": "ArrayType",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "nestedType",\n "default": null,\n "doc": "List of types this array holds."\n }\n ],\n "doc": "Array field type."\n },\n {\n "type": "record",\n "name": "UnionType",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "nestedTypes",\n "default": null,\n "doc": "List of types in union type."\n }\n ],\n "doc": "Union field type."\n },\n {\n "type": "record",\n "name": "RecordType",\n "namespace": "com.linkedin.schema",\n "fields": [],\n "doc": "Record field type."\n }\n ],\n "name": "type",\n "doc": "Data platform specific types"\n }\n ],\n "doc": "Schema field data types"\n },\n "name": "type",\n "doc": "Platform independent field type of the field."\n },\n {\n "type": "string",\n "name": "nativeDataType",\n "doc": "The native type of the field in the dataset\'s platform as declared by platform schema."\n },\n {\n "type": "boolean",\n "name": "recursive",\n "default": false,\n "doc": "There are use cases when a field in type B references type A. A field in A references field of type B. In such cases, we will mark the first field as recursive."\n },\n {\n "Relationship": {\n "/tags/*/tag": {\n "entityTypes": [\n "tag"\n ],\n "name": "SchemaFieldTaggedWith"\n }\n },\n "Searchable": {\n "/tags/*/attribution/actor": {\n "fieldName": "fieldTagAttributionActors",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/tags/*/attribution/source": {\n "fieldName": "fieldTagAttributionSources",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/tags/*/attribution/time": {\n "fieldName": "fieldTagAttributionDates",\n "fieldType": "DATETIME",\n "queryByDefault": false\n },\n "/tags/*/tag": {\n "boostScore": 0.5,\n "fieldName": "fieldTags",\n "fieldType": "URN"\n }\n },\n "type": [\n "null",\n {\n "type": "record",\n "Aspect": {\n "name": "globalTags"\n },\n "name": "GlobalTags",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Relationship": {\n "/*/tag": {\n "entityTypes": [\n "tag"\n ],\n "name": "TaggedWith"\n }\n },\n "Searchable": {\n "/*/tag": {\n "addToFilters": true,\n "boostScore": 0.5,\n "fieldName": "tags",\n "fieldType": "URN",\n "filterNameOverride": "Tag",\n "hasValuesFieldName": "hasTags",\n "queryByDefault": true\n }\n },\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "TagAssociation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.urn.TagUrn"\n },\n "type": "string",\n "name": "tag",\n "doc": "Urn of the applied tag"\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "context",\n "default": null,\n "doc": "Additional context about the association"\n },\n {\n "Searchable": {\n "/actor": {\n "fieldName": "tagAttributionActors",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/source": {\n "fieldName": "tagAttributionSources",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/time": {\n "fieldName": "tagAttributionDates",\n "fieldType": "DATETIME",\n "queryByDefault": false\n }\n },\n "type": [\n "null",\n {\n "type": "record",\n "name": "MetadataAttribution",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When this metadata was updated."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) responsible for applying the assocated metadata. This can\\neither be a user (in case of UI edits) or the datahub system for automation."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "source",\n "default": null,\n "doc": "The DataHub source responsible for applying the associated metadata. This will only be filled out\\nwhen a DataHub source is responsible. This includes the specific metadata test urn, the automation urn."\n },\n {\n "type": {\n "type": "map",\n "values": "string"\n },\n "name": "sourceDetail",\n "default": {},\n "doc": "The details associated with why this metadata was applied. For example, this could include\\nthe actual regex rule, sql statement, ingestion pipeline ID, etc."\n }\n ],\n "doc": "Information about who, why, and how this metadata was applied"\n }\n ],\n "name": "attribution",\n "default": null,\n "doc": "Information about who, why, and how this metadata was applied"\n }\n ],\n "doc": "Properties of an applied tag. For now, just an Urn. In the future we can extend this with other properties, e.g.\\npropagation parameters."\n }\n },\n "name": "tags",\n "doc": "Tags associated with a given entity"\n }\n ],\n "doc": "Tag aspect used for applying tags to an entity"\n }\n ],\n "name": "globalTags",\n "default": null,\n "doc": "Tags associated with the field"\n },\n {\n "Relationship": {\n "/terms/*/urn": {\n "entityTypes": [\n "glossaryTerm"\n ],\n "name": "SchemaFieldWithGlossaryTerm"\n }\n },\n "Searchable": {\n "/terms/*/attribution/actor": {\n "fieldName": "fieldTermAttributionActors",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/terms/*/attribution/source": {\n "fieldName": "fieldTermAttributionSources",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/terms/*/attribution/time": {\n "fieldName": "fieldTermAttributionDates",\n "fieldType": "DATETIME",\n "queryByDefault": false\n },\n "/terms/*/urn": {\n "boostScore": 0.5,\n "fieldName": "fieldGlossaryTerms",\n "fieldType": "URN"\n }\n },\n "type": [\n "null",\n {\n "type": "record",\n "Aspect": {\n "name": "glossaryTerms"\n },\n "name": "GlossaryTerms",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "GlossaryTermAssociation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Relationship": {\n "entityTypes": [\n "glossaryTerm"\n ],\n "name": "TermedWith"\n },\n "Searchable": {\n "addToFilters": true,\n "fieldName": "glossaryTerms",\n "fieldType": "URN",\n "filterNameOverride": "Glossary Term",\n "hasValuesFieldName": "hasGlossaryTerms",\n "includeSystemModifiedAt": true,\n "systemModifiedAtFieldName": "termsModifiedAt"\n },\n "java": {\n "class": "com.linkedin.common.urn.GlossaryTermUrn"\n },\n "type": "string",\n "name": "urn",\n "doc": "Urn of the applied glossary term"\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "actor",\n "default": null,\n "doc": "The user URN which will be credited for adding associating this term to the entity"\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "context",\n "default": null,\n "doc": "Additional context about the association"\n },\n {\n "Searchable": {\n "/actor": {\n "fieldName": "termAttributionActors",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/source": {\n "fieldName": "termAttributionSources",\n "fieldType": "URN",\n "queryByDefault": false\n },\n "/time": {\n "fieldName": "termAttributionDates",\n "fieldType": "DATETIME",\n "queryByDefault": false\n }\n },\n "type": [\n "null",\n "com.linkedin.common.MetadataAttribution"\n ],\n "name": "attribution",\n "default": null,\n "doc": "Information about who, why, and how this metadata was applied"\n }\n ],\n "doc": "Properties of an applied glossary term."\n }\n },\n "name": "terms",\n "doc": "The related business terms"\n },\n {\n "type": "com.linkedin.common.AuditStamp",\n "name": "auditStamp",\n "doc": "Audit stamp containing who reported the related business term"\n }\n ],\n "doc": "Related business terms information"\n }\n ],\n "name": "glossaryTerms",\n "default": null,\n "doc": "Glossary terms associated with the field"\n },\n {\n "type": "boolean",\n "name": "isPartOfKey",\n "default": false,\n "doc": "For schema fields that are part of complex keys, set this field to true\\nWe do this to easily distinguish between value and key fields"\n },\n {\n "type": [\n "null",\n "boolean"\n ],\n "name": "isPartitioningKey",\n "default": null,\n "doc": "For Datasets which are partitioned, this determines the partitioning key.\\nNote that multiple columns can be part of a partitioning key, but currently we do not support\\nrendering the ordered partitioning key."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "jsonProps",\n "default": null,\n "doc": "For schema fields that have other properties that are not modeled explicitly,\\nuse this field to serialize those properties into a JSON string"\n }\n ],\n "doc": "SchemaField to describe metadata related to dataset schema."\n }\n },\n "name": "fields",\n "doc": "Client provided a list of fields from document schema."\n },\n {\n "type": [\n "null",\n {\n "type": "array",\n "items": "string"\n }\n ],\n "name": "primaryKeys",\n "default": null,\n "doc": "Client provided list of fields that define primary keys to access record. Field order defines hierarchical espresso keys. Empty lists indicates absence of primary key access patter. Value is a SchemaField@fieldPath."\n },\n {\n "deprecated": "Use foreignKeys instead.",\n "type": [\n "null",\n {\n "type": "map",\n "values": {\n "type": "record",\n "name": "ForeignKeySpec",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": [\n {\n "type": "record",\n "name": "DatasetFieldForeignKey",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.urn.DatasetUrn"\n },\n "type": "string",\n "name": "parentDataset",\n "doc": "dataset that stores the resource."\n },\n {\n "type": {\n "type": "array",\n "items": "string"\n },\n "name": "currentFieldPaths",\n "doc": "List of fields in hosting(current) SchemaMetadata that conform a foreign key. List can contain a single entry or multiple entries if several entries in hosting schema conform a foreign key in a single parent dataset."\n },\n {\n "type": "string",\n "name": "parentField",\n "doc": "SchemaField@fieldPath that uniquely identify field in parent dataset that this field references."\n }\n ],\n "doc": "For non-urn based foregin keys."\n },\n {\n "type": "record",\n "name": "UrnForeignKey",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "currentFieldPath",\n "doc": "Field in hosting(current) SchemaMetadata."\n }\n ],\n "doc": "If SchemaMetadata fields make any external references and references are of type com.linkedin.common.Urn or any children, this models can be used to mark it."\n }\n ],\n "name": "foreignKey",\n "doc": "Foreign key definition in metadata schema."\n }\n ],\n "doc": "Description of a foreign key in a schema."\n }\n }\n ],\n "name": "foreignKeysSpecs",\n "default": null,\n "doc": "Map captures all the references schema makes to external datasets. Map key is ForeignKeySpecName typeref."\n },\n {\n "type": [\n "null",\n {\n "type": "array",\n "items": {\n "type": "record",\n "name": "ForeignKeyConstraint",\n "namespace": "com.linkedin.schema",\n "fields": [\n {\n "type": "string",\n "name": "name",\n "doc": "Name of the constraint, likely provided from the source"\n },\n {\n "Relationship": {\n "/*": {\n "entityTypes": [\n "schemaField"\n ],\n "name": "ForeignKeyTo"\n }\n },\n "type": {\n "type": "array",\n "items": "string"\n },\n "name": "foreignFields",\n "doc": "Fields the constraint maps to on the foreign dataset"\n },\n {\n "type": {\n "type": "array",\n "items": "string"\n },\n "name": "sourceFields",\n "doc": "Fields the constraint maps to on the source dataset"\n },\n {\n "Relationship": {\n "entityTypes": [\n "dataset"\n ],\n "name": "ForeignKeyToDataset"\n },\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "foreignDataset",\n "doc": "Reference to the foreign dataset for ease of lookup"\n }\n ],\n "doc": "Description of a foreign key constraint in a schema."\n }\n }\n ],\n "name": "foreignKeys",\n "default": null,\n "doc": "List of foreign key constraints for the schema"\n }\n ],\n "doc": "SchemaMetadata to describe metadata related to store schema"\n}\n'))),(0,t.yg)("h3",{id:"deprecation"},"deprecation"),(0,t.yg)("p",null,"Deprecation status of an entity"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "deprecation"\n },\n "name": "Deprecation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Searchable": {\n "addToFilters": true,\n "fieldType": "BOOLEAN",\n "filterNameOverride": "Deprecated",\n "weightsPerFieldValue": {\n "true": 0.5\n }\n },\n "type": "boolean",\n "name": "deprecated",\n "doc": "Whether the entity is deprecated."\n },\n {\n "type": [\n "null",\n "long"\n ],\n "name": "decommissionTime",\n "default": null,\n "doc": "The time user plan to decommission this entity."\n },\n {\n "type": "string",\n "name": "note",\n "doc": "Additional information about the entity deprecation plan, such as the wiki, doc, RB."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The user URN which will be credited for modifying this deprecation content."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "replacement",\n "default": null\n }\n ],\n "doc": "Deprecation status of an entity"\n}\n'))),(0,t.yg)("h3",{id:"domains"},"domains"),(0,t.yg)("p",null,"Links from an Asset to its Domains"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "domains"\n },\n "name": "Domains",\n "namespace": "com.linkedin.domain",\n "fields": [\n {\n "Relationship": {\n "/*": {\n "entityTypes": [\n "domain"\n ],\n "name": "AssociatedWith"\n }\n },\n "Searchable": {\n "/*": {\n "addToFilters": true,\n "fieldName": "domains",\n "fieldType": "URN",\n "filterNameOverride": "Domain",\n "hasValuesFieldName": "hasDomain"\n }\n },\n "type": {\n "type": "array",\n "items": "string"\n },\n "name": "domains",\n "doc": "The Domains attached to an Asset"\n }\n ],\n "doc": "Links from an Asset to its Domains"\n}\n'))),(0,t.yg)("h3",{id:"structuredproperties"},"structuredProperties"),(0,t.yg)("p",null,"Properties about an entity governed by StructuredPropertyDefinition"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "structuredProperties"\n },\n "name": "StructuredProperties",\n "namespace": "com.linkedin.structured",\n "fields": [\n {\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "StructuredPropertyValueAssignment",\n "namespace": "com.linkedin.structured",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "propertyUrn",\n "doc": "The property that is being assigned a value."\n },\n {\n "type": {\n "type": "array",\n "items": [\n "string",\n "double"\n ]\n },\n "name": "values",\n "doc": "The value assigned to the property."\n },\n {\n "type": [\n "null",\n {\n "type": "record",\n "name": "AuditStamp",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "impersonator",\n "default": null,\n "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "message",\n "default": null,\n "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."\n }\n ],\n "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."\n }\n ],\n "name": "created",\n "default": null,\n "doc": "Audit stamp containing who created this relationship edge and when"\n },\n {\n "type": [\n "null",\n "com.linkedin.common.AuditStamp"\n ],\n "name": "lastModified",\n "default": null,\n "doc": "Audit stamp containing who last modified this relationship edge and when"\n }\n ]\n }\n },\n "name": "properties",\n "doc": "Custom property bag."\n }\n ],\n "doc": "Properties about an entity governed by StructuredPropertyDefinition"\n}\n'))),(0,t.yg)("h3",{id:"forms"},"forms"),(0,t.yg)("p",null,"Forms that are assigned to this entity to be filled out"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "forms"\n },\n "name": "Forms",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Searchable": {\n "/*/completedPrompts/*/id": {\n "fieldName": "incompleteFormsCompletedPromptIds",\n "fieldType": "KEYWORD",\n "queryByDefault": false\n },\n "/*/completedPrompts/*/lastModified/time": {\n "fieldName": "incompleteFormsCompletedPromptResponseTimes",\n "fieldType": "DATETIME",\n "queryByDefault": false\n },\n "/*/incompletePrompts/*/id": {\n "fieldName": "incompleteFormsIncompletePromptIds",\n "fieldType": "KEYWORD",\n "queryByDefault": false\n },\n "/*/urn": {\n "fieldName": "incompleteForms",\n "fieldType": "URN",\n "queryByDefault": false\n }\n },\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "FormAssociation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "urn",\n "doc": "Urn of the applied form"\n },\n {\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "FormPromptAssociation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "string",\n "name": "id",\n "doc": "The id for the prompt. This must be GLOBALLY UNIQUE."\n },\n {\n "type": {\n "type": "record",\n "name": "AuditStamp",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "impersonator",\n "default": null,\n "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "message",\n "default": null,\n "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."\n }\n ],\n "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."\n },\n "name": "lastModified",\n "doc": "The last time this prompt was touched for the entity (set, unset)"\n },\n {\n "type": [\n "null",\n {\n "type": "record",\n "name": "FormPromptFieldAssociations",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": [\n "null",\n {\n "type": "array",\n "items": {\n "type": "record",\n "name": "FieldFormPromptAssociation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "string",\n "name": "fieldPath",\n "doc": "The field path on a schema field."\n },\n {\n "type": "com.linkedin.common.AuditStamp",\n "name": "lastModified",\n "doc": "The last time this prompt was touched for the field on the entity (set, unset)"\n }\n ],\n "doc": "Information about the status of a particular prompt for a specific schema field\\non an entity."\n }\n }\n ],\n "name": "completedFieldPrompts",\n "default": null,\n "doc": "A list of field-level prompt associations that are not yet complete for this form."\n },\n {\n "type": [\n "null",\n {\n "type": "array",\n "items": "com.linkedin.common.FieldFormPromptAssociation"\n }\n ],\n "name": "incompleteFieldPrompts",\n "default": null,\n "doc": "A list of field-level prompt associations that are complete for this form."\n }\n ],\n "doc": "Information about the field-level prompt associations on a top-level prompt association."\n }\n ],\n "name": "fieldAssociations",\n "default": null,\n "doc": "Optional information about the field-level prompt associations."\n }\n ],\n "doc": "Information about the status of a particular prompt.\\nNote that this is where we can add additional information about individual responses:\\nactor, timestamp, and the response itself."\n }\n },\n "name": "incompletePrompts",\n "default": [],\n "doc": "A list of prompts that are not yet complete for this form."\n },\n {\n "type": {\n "type": "array",\n "items": "com.linkedin.common.FormPromptAssociation"\n },\n "name": "completedPrompts",\n "default": [],\n "doc": "A list of prompts that have been completed for this form."\n }\n ],\n "doc": "Properties of an applied form."\n }\n },\n "name": "incompleteForms",\n "doc": "All incomplete forms assigned to the entity."\n },\n {\n "Searchable": {\n "/*/completedPrompts/*/id": {\n "fieldName": "completedFormsCompletedPromptIds",\n "fieldType": "KEYWORD",\n "queryByDefault": false\n },\n "/*/completedPrompts/*/lastModified/time": {\n "fieldName": "completedFormsCompletedPromptResponseTimes",\n "fieldType": "DATETIME",\n "queryByDefault": false\n },\n "/*/incompletePrompts/*/id": {\n "fieldName": "completedFormsIncompletePromptIds",\n "fieldType": "KEYWORD",\n "queryByDefault": false\n },\n "/*/urn": {\n "fieldName": "completedForms",\n "fieldType": "URN",\n "queryByDefault": false\n }\n },\n "type": {\n "type": "array",\n "items": "com.linkedin.common.FormAssociation"\n },\n "name": "completedForms",\n "doc": "All complete forms assigned to the entity."\n },\n {\n "Searchable": {\n "/*/form": {\n "fieldName": "verifiedForms",\n "fieldType": "URN",\n "queryByDefault": false\n }\n },\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "FormVerificationAssociation",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "form",\n "doc": "The urn of the form that granted this verification."\n },\n {\n "type": [\n "null",\n "com.linkedin.common.AuditStamp"\n ],\n "name": "lastModified",\n "default": null,\n "doc": "An audit stamp capturing who and when verification was applied for this form."\n }\n ],\n "doc": "An association between a verification and an entity that has been granted\\nvia completion of one or more forms of type \'VERIFICATION\'."\n }\n },\n "name": "verifications",\n "default": [],\n "doc": "Verifications that have been applied to the entity via completed forms."\n }\n ],\n "doc": "Forms that are assigned to this entity to be filled out"\n}\n'))),(0,t.yg)("h3",{id:"testresults"},"testResults"),(0,t.yg)("p",null,"Information about a Test Result"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "testResults"\n },\n "name": "TestResults",\n "namespace": "com.linkedin.test",\n "fields": [\n {\n "Relationship": {\n "/*/test": {\n "entityTypes": [\n "test"\n ],\n "name": "IsFailing"\n }\n },\n "Searchable": {\n "/*/test": {\n "fieldName": "failingTests",\n "fieldType": "URN",\n "hasValuesFieldName": "hasFailingTests",\n "queryByDefault": false\n }\n },\n "type": {\n "type": "array",\n "items": {\n "type": "record",\n "name": "TestResult",\n "namespace": "com.linkedin.test",\n "fields": [\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "test",\n "doc": "The urn of the test"\n },\n {\n "type": {\n "type": "enum",\n "symbolDocs": {\n "FAILURE": " The Test Failed",\n "SUCCESS": " The Test Succeeded"\n },\n "name": "TestResultType",\n "namespace": "com.linkedin.test",\n "symbols": [\n "SUCCESS",\n "FAILURE"\n ]\n },\n "name": "type",\n "doc": "The type of the result"\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "testDefinitionMd5",\n "default": null,\n "doc": "The md5 of the test definition that was used to compute this result.\\nSee TestInfo.testDefinition.md5 for more information."\n },\n {\n "type": [\n "null",\n {\n "type": "record",\n "name": "AuditStamp",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "type": "long",\n "name": "time",\n "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": "string",\n "name": "actor",\n "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."\n },\n {\n "java": {\n "class": "com.linkedin.common.urn.Urn"\n },\n "type": [\n "null",\n "string"\n ],\n "name": "impersonator",\n "default": null,\n "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."\n },\n {\n "type": [\n "null",\n "string"\n ],\n "name": "message",\n "default": null,\n "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."\n }\n ],\n "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."\n }\n ],\n "name": "lastComputed",\n "default": null,\n "doc": "The audit stamp of when the result was computed, including the actor who computed it."\n }\n ],\n "doc": "Information about a Test Result"\n }\n },\n "name": "failing",\n "doc": "Results that are failing"\n },\n {\n "Relationship": {\n "/*/test": {\n "entityTypes": [\n "test"\n ],\n "name": "IsPassing"\n }\n },\n "Searchable": {\n "/*/test": {\n "fieldName": "passingTests",\n "fieldType": "URN",\n "hasValuesFieldName": "hasPassingTests",\n "queryByDefault": false\n }\n },\n "type": {\n "type": "array",\n "items": "com.linkedin.test.TestResult"\n },\n "name": "passing",\n "doc": "Results that are passing"\n }\n ],\n "doc": "Information about a Test Result"\n}\n'))),(0,t.yg)("h3",{id:"subtypes"},"subTypes"),(0,t.yg)("p",null,"Sub Types. Use this aspect to specialize a generic Entity\ne.g. Making a Dataset also be a View or also be a LookerExplore"),(0,t.yg)("details",null,(0,t.yg)("summary",null,"Schema"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-javascript"},'{\n "type": "record",\n "Aspect": {\n "name": "subTypes"\n },\n "name": "SubTypes",\n "namespace": "com.linkedin.common",\n "fields": [\n {\n "Searchable": {\n "/*": {\n "addToFilters": true,\n "fieldType": "KEYWORD",\n "filterNameOverride": "Sub Type",\n "queryByDefault": false\n }\n },\n "type": {\n "type": "array",\n "items": "string"\n },\n "name": "typeNames",\n "doc": "The names of the specific types."\n }\n ],\n "doc": "Sub Types. Use this aspect to specialize a generic Entity\\ne.g. Making a Dataset also be a View or also be a LookerExplore"\n}\n'))),(0,t.yg)("h2",{id:"relationships"},"Relationships"),(0,t.yg)("h3",{id:"self"},"Self"),(0,t.yg)("p",null,"These are the relationships to itself, stored in this entity's aspects"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"IsA (via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryRelatedTerms.isRelatedTerms"),")"),(0,t.yg)("li",{parentName:"ul"},"HasA (via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryRelatedTerms.hasRelatedTerms"),")"),(0,t.yg)("li",{parentName:"ul"},"HasValue (via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryRelatedTerms.values"),")"),(0,t.yg)("li",{parentName:"ul"},"IsRelatedTo (via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryRelatedTerms.relatedTerms"),")"),(0,t.yg)("li",{parentName:"ul"},"SchemaFieldWithGlossaryTerm (via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.fields.glossaryTerms"),")"),(0,t.yg)("li",{parentName:"ul"},"TermedWith (via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.fields.glossaryTerms.terms.urn"),")")),(0,t.yg)("h3",{id:"outgoing"},"Outgoing"),(0,t.yg)("p",null,"These are the relationships stored in this entity's aspects"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"IsPartOf"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"GlossaryNode via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTermInfo.parentNode")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"OwnedBy"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Corpuser via ",(0,t.yg)("inlineCode",{parentName:"li"},"ownership.owners.owner")),(0,t.yg)("li",{parentName:"ul"},"CorpGroup via ",(0,t.yg)("inlineCode",{parentName:"li"},"ownership.owners.owner")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"ownershipType"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"OwnershipType via ",(0,t.yg)("inlineCode",{parentName:"li"},"ownership.owners.typeUrn")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"SchemaFieldTaggedWith"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Tag via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.fields.globalTags")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"TaggedWith"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Tag via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.fields.globalTags.tags")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"ForeignKeyTo"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"SchemaField via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.foreignKeys.foreignFields")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"ForeignKeyToDataset"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Dataset via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.foreignKeys.foreignDataset")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"AssociatedWith"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Domain via ",(0,t.yg)("inlineCode",{parentName:"li"},"domains.domains")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"IsFailing"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Test via ",(0,t.yg)("inlineCode",{parentName:"li"},"testResults.failing")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"IsPassing"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Test via ",(0,t.yg)("inlineCode",{parentName:"li"},"testResults.passing"))))),(0,t.yg)("h3",{id:"incoming"},"Incoming"),(0,t.yg)("p",null,"These are the relationships stored in other entity's aspects"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"SchemaFieldWithGlossaryTerm"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Dataset via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.fields.glossaryTerms")),(0,t.yg)("li",{parentName:"ul"},"Chart via ",(0,t.yg)("inlineCode",{parentName:"li"},"inputFields.fields.schemaField.glossaryTerms")),(0,t.yg)("li",{parentName:"ul"},"Dashboard via ",(0,t.yg)("inlineCode",{parentName:"li"},"inputFields.fields.schemaField.glossaryTerms")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"TermedWith"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Dataset via ",(0,t.yg)("inlineCode",{parentName:"li"},"schemaMetadata.fields.glossaryTerms.terms.urn")),(0,t.yg)("li",{parentName:"ul"},"DataJob via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTerms.terms.urn")),(0,t.yg)("li",{parentName:"ul"},"DataFlow via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTerms.terms.urn")),(0,t.yg)("li",{parentName:"ul"},"Chart via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTerms.terms.urn")),(0,t.yg)("li",{parentName:"ul"},"Dashboard via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTerms.terms.urn")),(0,t.yg)("li",{parentName:"ul"},"Notebook via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTerms.terms.urn")),(0,t.yg)("li",{parentName:"ul"},"Container via ",(0,t.yg)("inlineCode",{parentName:"li"},"glossaryTerms.terms.urn")))),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"EditableSchemaFieldWithGlossaryTerm"),(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"Dataset via ",(0,t.yg)("inlineCode",{parentName:"li"},"editableSchemaMetadata.editableSchemaFieldInfo.glossaryTerms"))))),(0,t.yg)("h2",{id:"global-metadata-model"},(0,t.yg)("a",{parentName:"h2",href:"https://github.com/datahub-project/static-assets/raw/main/imgs/datahub-metadata-model.png"},"Global Metadata Model")),(0,t.yg)("p",null,(0,t.yg)("img",{parentName:"p",src:"https://github.com/datahub-project/static-assets/raw/main/imgs/datahub-metadata-model.png",alt:"Global Graph"})))}y.isMDXComponent=!0}}]);