Skip to content

LionWeb-io/lionweb-modelix-adapter

Repository files navigation

LionWeb to Modelix Adapter

This tool provides a minimalistic LionWeb REST bulk API. Requests to this adapter are forwarded to a modelix model-server which is used as the underlying repository.

Check out https://modelix.org/ for more information about modelix.

How to build

Run the following in the root of this project:

$ ./gradlew build

How to run

From Source

Generally, you will need a running model-server to which this adapter will connect.

For testing and development, you can avoid the manual setup of a model-server. You can simply set the modelix.server.embedded option in the application.conf to true (set by default).

Thus, you can simply run

$ ./gradlew run

For more elaborated setups, please consult the modelix documentation on how to start a dedicated model-server. Once the model-server is up and running, you can configure this application to connect to it.

Usage

Once the adapter is running, check the included swaggerUI over at http://127.0.0.1:28102/swagger to get an overview of the provided REST endpoints.

Assumptions / TODOs

This implementation is an early draft. The following assumptions and todos currently remain open:

  • This implementation is stateless. As a result, performance will be bad for large models. If your models are too big or queries take too long, consider using the modelix model-server directly via its SDKs and APIs (e.g. the replicated model, ModelQL, or the REST API)
  • This adapter does not support advanced model-server features, such as real-time collaboration, branches, or repositories. Instead an opinionated mapping from LionWeb specification to modelix model-api is implemented.
  • Reference cardinality: Currently references with cardinality beyond 1:1 are not supported
  • Language structures are not supported. The corresponding fields key and version will always be null
  • 2023.1 is the only supported serializationFormatVersion
  • Docker container builds are missing
  • Test coverage is very low and/or are missing

About

Adapter providing lionweb bulk API access to the modelix model-server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published