/legend-depot

Legend Depot component

Primary LanguageJavaApache License 2.0Apache-2.0

FINOS - Incubating Maven Central Build CI Security Rating Bugs

legend-depot

The Legend Depot servers provide a rich REST API allowing users to query metadata fast and reliably which has been authored in Legend Studio and Legend SDLC Legend Depot has two main components:

  • Depot Server: provides read only metadata query REST API
  • Depot Store Server: manages internal metadata cache and sources it from maven style repository where models artifacts have been published.

Getting started

Development setup

This application uses Maven 3.6+ and JDK 11 to build. Simply run mvn install to compile. In order to start the Depot Server and Depot Store Server, follow the instructions below.

Setup Gitlab OAuth

Follow the instructions here to set up Gitlab authentication Add following callback url to config: http://127.0.0.1:6201/depot-store/callback

Certain store APIs required elevated permissions, add your Gitlab handle to authorisedIdentities.json

Depot Store Server

  • Create a JSON configuration: check out the sample config
  • Configure your Artifacts Repository provider (artifactRepositoryProviderConfiguration) Check out the instructions here
  • Start an instance of Mongo DB: this is where your metadata will be stored: Add the MongoDB URL and database name to the mongo section of your config file
  • Start the server:
java -cp $SHADED_JAR_PATH org.finos.legend.depot.store.server.LegendDepotStoreServer server $CONFIG_DIR/config.json

Depot Server

  • Create a JSON configuration: Make sure to specify the Mongo DB where store server would cache metadata. Check out the sample config
  • Start the server:
java -cp $SHADED_JAR_PATH org.finos.legend.depot.server.LegendDepotServer server $CONFIG_DIR/config.json

Register metadata projects with Depot Store Server

Metadata projects need to be registered in depot store so that the server can start fetching and caching the models for this project. This is a one off task and can be done:

  • Manually: using the end point api/projects/{projectId}/{groupId}/{artifactId}
  • Automatically: more to come on this space

Crucially, key information are the maven coordinates and the modeling project its publishing its artifacts to.

Roadmap

Visit our roadmap to know more about the upcoming features.

Contributing

Visit Legend Contribution Guide to learn how to contribute to Legend.

License

Copyright 2020 Goldman Sachs

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0