This repository is for the portal web-client and related packages for DataHub, LinkedIn's premier data search and
discovery tool. It is written as an Ember application in a mono-repository. For more information about our code
architecture choices and logic, please visit the documentation
folder here.
Our mono-repository consists of an Ember application and multiple Ember addons and libraries. For more information
about our mono-repo, you can refer to the documentation available here,
found in the documentation
folder.
packages/data-portal
- This is the host Ember application into which all of our addons will be imported.
@datahub/entities
- This Ember addon consists of logic specific to specific entities supported by DataHub.
@datahub/shared
- This Ember addon consists of features and functionality that is either shared by multiple entities
or may not necessarily be related to any specific entity but rather for the general functionality of the application.
@datahub/data-models
- This Ember addon consists of our classes for our entities and behavior definitions known as
"render props" (for more information, visit the documentation
folder here). It also
contains the API calls that each entity can make to fetch data and information.
@datahub/metadata-types
- This Ember addon houses the translated PDSC/PDL models that are defined at the GMA level.
These models are converted to typescript in order to be consumed by our application in a way that JavaScript can
understand.
@datahub/utils
- This Ember addon contains general utility and helper functions that assist with the operation
with the rest of the application and have no specific dependency on any other part of the application or any models
@dh-tools/pdsc
- This library translates the PDSC/PDL models from our GMA backend to TypeScript.
@dh-tools/eslint-plugin
- This plugin works with our eslint-tool to promote good and clean code practices
@dh-tools/dependencies
- This tool was created for dependency management to improve build times in the application.
@nacho-ui/core
- This Ember addon is a remnant of our shared component library efforts internally that is now a
general purpose library within DataHub to provide some generic components to be used by the application.
blueprints/datahub-addon
- This provides Ember with a template for creating new addons whenever needed
Use the following command and follow the prompts to generate a new addon. However, before doing so, please make sure the content of the addon does not better fit in one of the other packages. Additionally, it may be helpful to read our documentation notes here to understand the logic of how the addons came about and why the application is laid out the way it is.
ember g datahub-addon
First, follow the instructions on the DataHub Quickstart Guide, which will run an instance of the backend for DataHub
and also serve the static docker image from http://localhost:9001
. This is the best way to see the current latest
frontend/UI in action as well. However, if you want to make changes and see them live without having to rebuild a
docker image, you can, from this datahub-web
folder run the following:
cd packages/data-portal
ember s --proxy=http://localhost:9001
If necessary, it may ask you to run yarn install
first.
This will rely on ember's proxy functionality, which will redirect all API calls to the proxy target (which in this
case is running our API from localhost), and allow us to run a hot-reloading UI while still connecting to a live API.
Simply open up a browser and go to localhost:4200
and see the results.