Marquez Web UI
Marquez is an open source metadata service for the collection, aggregation, and visualization of a data ecosystem's metadata.
This web UI is used to view metadata collected and cataloged by Marquez.
This project is under active development at WeWork (in collaboration with many others organizations).
To develop on this project, you need to have Node version 10.16.3 installed. In order to easily switch between node versions, we recommend using node version manager like nvm
$ npm install
Run webpack (with development server):
$ npm run dev
$ docker build -t marquez-web .
$ docker run -p 3000:3000 -d marquez-web
You can open http://localhost:3000 to begin exploring the web UI.
Run tests in watch mode:
$ npm run test-watch
Run all tests:
$ npm run test
- Jest is our testing framework. It is the test runner; it provides testing language (describe, it, beforeEach), mocking, snapshot, code coverage.
- Enzyme - testing utility for testing React components. Provides methods for (mock) rendering components & DOM traversal.
- run tests by doing
yarn run test
- config files:
- For testing Redux Sagas, we are using
Redux Saga Test Plan. This library gives us both unit testing and integration test functionality. Check out the docs.
This project is written in typescript because it is awesome. See tsconfig.json for our setup.
Our types are defined in the
This project uses ESLint with TypeScript support.
If you have not already done so, you should setup eslint with your editor of choice
You can add / edit the linting rules within the eslintrc.js file.
Please set up Prettier integration with your editor of choice. (Also, be sure to disable any other prettifier, like HookyQR's Beautify tool, for this workspace.)
Ensure that your editor formats on save.
We are leveraging Material UI's SvgIcon components
Specifically, we are using Icons to represent tags on datasets. In order to customize your app's badges, you can edit
Mock data can be found in the
Feel free to edit the mock data if you like. (Grant worked really hard on making it pretty.)
We are using Rollbar for front-end logging.
If you are also using Rollbar, be sure to add your Rollbar config as the first
index.prod.html. (See Rollbar docs for more info)
If you are NOT using Rollbar, be sure to change the global
__ROLLBAR__ variable in
JSON.stringify(false) (this will disable any functionality in the
createRollbarMessage function in
See CONTRIBUTING.md for more details about how to contribute.