Skip to content

Tools for code contributors

Git and GitHub

Git is an open source version control system. The Egeria project uses git to:

  • Store the source code, documentation and other file-based resources.
  • Track changes to the underlying Egeria code as the project evolves
  • Track issues and enhancements, and link these back to the code changes that resolve them
  • Collaborate on and review the issues, enhancements and code changes

As a result, it gives us a definitive source for the latest and greatest source code for Egeria itself, its history, and the rationale behind various decisions that are made over time.

Egeria's git repositories on GitHub

The Egeria project's git repositories are located on GitHub . GitHub is a free, public git service for sharing code and related files. It has a web interface to make it easier for the Egeria community to monitor the activity in the project and process new content.

Egeria has the following repositories:

Repository Purpose
Repository Purpose
OpenDS4All OpenDS4All project, hosted by LF AI & Data
data-governance Egeria's Guidance on Governance as well as large media files such as presentations and movies
egeria-api-mocks Support for mocking Egeria API for UI dev test
egeria-charts Helm chart repository
egeria-connector-hadoop-ecosystem Hadoop ecosystem connectors for Egeria: repository proxy connector for Apache Atlas.
egeria-connector-hivemetastore Egeria repository connector for Hive metastore. Initially targeted at spark metadata
egeria-connector-ibm-information-server IBM Information Server connectors for Egeria: repository proxy connector for IGC, data engine proxy connector for DataStage.
egeria-connector-integration-event-schema Provides an integration connector that extract event schemata from a schema registry (including Confluent schema registry). The connector will be a polling connector and will look in Egeria for new topics that if present in the confluent registry, the associate schema elements will be brought into Egeria.
egeria-connector-integration-lineage-event-driven-sample Sample showing how to bring lineage into Egeria
egeria-connector-integration-topic-strimzi Strimzi Egeria integration connector for Kafka Topics
egeria-connector-jdbc JDBC connectors for Egeria (Integration and Resource)
egeria-connector-omrs-caching Provides an OMRS repository proxy connector that has an embedded repository that can be used to cache entities and relationships.
egeria-connector-repository-file-sample Provides a repository proxy sample that uses polling. The target is a file folder
egeria-connector-sas-viya Egeria connector for SAS Information Catalog
egeria-connector-xtdb Pluggable repository for Egeria, using XTDB (formerly "Crux") as the back-end to natively support historical metadata.
egeria-database-connectors Connectors for exchanging metadata
egeria-dev-projects Fun projects for developers to help them learn about the Egeria technology
egeria-docs Documentation repository for the Egeria project.
egeria-dojo-developer Provides the starting project structure for the developer dojo. The particupant creates a clone of it and works from there - they do not merge their code back into the repository. There is also a branch which includes the sample answers that they cna refer to if they get stuck.
egeria-js-commons Common module for storing static data such as key value objects, SVGs, icon mappings, API urls.
egeria-jupyter-notebooks Egeria Jupiter notebooks used in the Open Metadata Labs
egeria-k8s-operator Egeria Kubernetes operator
egeria-python Python library for Egeria
egeria-react-ui A multi-tenant, role based Egeria React UI for Open Metadata, that has eco-system and solutions capabilities.
egeria-samples-api A collection of samples illustrating the different APIs of Egeria.
egeria-samples various samples that can be useful either for learning or as initial starting points for working with Egeria
egeria-template-newrepo Template for new Egeria repository
egeria-ui-components Encapsulated reactjs components with business logic inside.
egeria-ui-core Core library that includes generic reactjs components used across the user interface.
egeria-ui User interface instance using main Egeria functionalities.
egeria Egeria core
happi-graph Generic graph rendering solution.

All of these repositories are publicly visible. However, if you want to contribute new content then you need to create a GitHub account. This can be done from the top of the GitHub home page .

Further information

Interested to learn more?

IntelliJ IDEA

IntelliJ IDEA by JetBrains is the Interactive Development Environment (IDE) used by most of the Egeria developers. The community edition is free to use and covers all the function needed by an Egeria developer.

We provide our own tutorial for IntelliJ.

Apache Maven and Gradle

Apache Maven is the tool that supports our project build. This includes the code compilation, running unit tests, validating dependencies and Javadoc as well as build our distribution archive.

Maven 3.5 or higher is required to build Egeria. 3.6.x or above is recommended.

Gradle is an alternative build tool to Maven and offers:

  • better support for parallel builds
  • more flexibility for build tasks
  • breaking the link between directory structure and maven artifacts
  • extremely fast incremental builds

Our direction is for a Gradle build to replace Maven; however, that work is still underway . As such, our supported build environment remains Maven

The building Egeria tutorial covers more details on the build process.