How open-metadata/openmetadata works
OpenMetadata is an enterprise metadata catalog and context platform. A typical workflow collects metadata through connectors and ingestion, normalizes it into governed entities, and connects assets with lineage, quality, ownership, semantics, and organizational memory. Users and AI systems then access that context through APIs, SDKs, search, MCP, and the UI. The graph highlights documented product stages and sampled implementation areas; several subsystem links reflect README-level architecture rather than inspected calls.
Main entry points: OpenMetadataApplicationConfig.java Metadata Service · ingest.py Ingestion CLI · ingestion_pipeline_mixin.py Ingestion API Client · OntologySparqlQueryService.java Ontology SPARQL
Components 21
Collection
- Data Connectors
ingestion/src/metadata/ingestion/source - Ingestion CLI
ingestion/src/metadata/cli/ingest.py - Ingestion API Client
ingestion/src/metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py - Entity Resolution
ingestion/src/metadata/entity_resolution/engine.py - Data Quality
ingestion/src/metadata/data_quality/runner/core.py - Lineage
ingestion/src/metadata/ingestion/lineage/sql_lineage.py
Metadata Platform
- Metadata Service
openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplicationConfig.java - Entity Repository
openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java - Entity Schema
openmetadata-spec/src/main/java/org/openmetadata/schema/EntityInterface.java
Context and Memory
- Ontology SPARQL
openmetadata-service/src/main/java/org/openmetadata/service/rdf/OntologySparqlQueryService.java - Saved SPARQL
openmetadata-service/src/main/java/org/openmetadata/service/rdf/SavedSparqlQueryService.java - Inference Explanations
openmetadata-service/src/main/java/org/openmetadata/service/rdf/inference/InferenceExplanationService.java - Semantic Embeddings
openmetadata-service/src/main/java/org/openmetadata/service/rdf/semantic/EmbeddingService.java
Access and Activation
- Java SDK
openmetadata-sdk/src/main/java/org/openmetadata/sdk/services/dataassets/QueryService.java - Pipeline SDK
openmetadata-sdk/src/main/java/org/openmetadata/sdk/services/ingestion/IngestionPipelineService.java - MCP Server
openmetadata-mcp/src/main/java/org/openmetadata/mcp/server/auth/handlers/AuthorizationHandler.java
User Interfaces
- Web UI
openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Ingestion/IngestionPipelineList/IngestionPipelineList.component.tsx - Incident Manager
openmetadata-ui/src/main/resources/ui/src/components/IncidentManager/useIncidentManagerListPage.ts - Airflow Provider
ingestion/src/airflow_provider_openmetadata/lineage/backend.py
Other components
- Data User
- AI Agent
Connections 21
- Data Connectors → Ingestion CLI: collects metadata
- Ingestion CLI → Metadata Service: submits metadata
- Ingestion API Client → Metadata Service: calls API
ingestion/src/metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py - Entity Resolution → Ingestion API Client: uses client
ingestion/src/metadata/entity_resolution/engine.py - Metadata Service → Entity Repository: persists entities
- Entity Schema → Metadata Service: normalizes context
- Data Quality → Metadata Service: adds trust signals
- Lineage → Metadata Service: adds lineage
- Metadata Service → Ontology SPARQL: exposes graph queries
- Ontology SPARQL → Saved SPARQL: uses saved queries
- Metadata Service → Inference Explanations: explains relationships
- Metadata Service → Semantic Embeddings: supports semantic search
openmetadata-service/src/main/java/org/openmetadata/service/rdf/semantic/EmbeddingService.java - Data User → Web UI: browses context
- Web UI → Metadata Service: uses APIs
- Incident Manager → Metadata Service: accesses trust signals
- Java SDK → Metadata Service: uses APIs
- Pipeline SDK → Metadata Service: uses APIs
- Airflow Provider → Metadata Service: integrates lineage
- AI Agent → MCP Server: requests context
- MCP Server → Metadata Service: activates context
- Metadata Service → AI Agent: provides governed context