/legend-sdlc

Legend SDLC module

Primary LanguageJavaApache License 2.0Apache-2.0

FINOS - Incubating Maven Central Build CI Security Rating Bugs

legend-sdlc

The Legend SDLC Server provides a rich REST API allowing users to safely manage metadata. Most SDLCs are file- and text-centric, but the Legend SDLC is model-centric. That is, users interact with model entities rather than with files and folders.

To this end, the Legend SDLC enables:

  • Users to develop with tools designed for editing models (rather than files or code)
  • Users to view changes with tools designed for viewing model-level changes (rather than text changes)
  • Clients to create their own tools for their own particular use cases

Usage example

Start by creating a configuration file based on your particular environment, which can be either JSON or YAML. A sample configuration file is included to help you get started. You will need to supply some information, such as the host your server is running on.

You will also need an instance of GitLab to connect to, such as gitlab.com. On GitLab, you will need to create an "Application", which is used for authorization so that the SDLC Server can act on behalf of users. See GitLab's documentation for general information about creating an application in GitLab. The application will need to have "api" scope and have http://SDLC_SERVER/api/auth/callback as a redirect URI, where SDLC_SERVER is the host and possibly port needed to connect to the SDLC Server. (For testing purposes, you can use 127.0.0.1:6100 or localhost:6100 or both. You can have many redirect URIs specified for the application, so it is advisable to add all you think you might want.) This redirect URI will also need to appear in your configuration file.

If you are using the GitlabClient for authentication (see the pac4j section of the configuration), you will need a GitLab application for that as well. It will need "openid" and "profile" scopes, and will require http://SDLC_SERVER/api/pac4j/login/callback as a redirect URI. Again, SDLC_SERVER is the host and port needed to connect to the SDLC Server, and the same advice mentioned above applies for this case as well. You can either create a new application for this, or you can add these scopes and redirect URIs to your existing application. We recommend you use a single application for both purposes, as it makes the authentication and authorization process simpler and faster.

Once you have your configuration file, you can run the server with Java 8 or later. You can use a command such as this to start the server:

java -cp $SHADED_JAR_PATH org.finos.legend.sdlc.server.LegendSDLCServer server $CONFIG_DIR/config.yaml

If you want to use the shaded JAR built by mvn install in this project, you can get it from legend-sdlc-server/target/legend-sdlc-server-*-shaded.jar. You may also include additional libraries on the classpath to add functionality extensions.

Development setup

This application uses Maven 3.6+ and JDK 11 or 17 to build. Simply run mvn install to compile.

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