/data-modelling-storage-service

Storage service for Data Modelling Tool

Primary LanguagePythonMIT LicenseMIT

Data Modelling Storage Service

Checks SCM Compliance

Backend service for the Marine Analysis Framework

For documentation, usage, and guides regarding the framework, visit https://equinor.github.io/dm-docs/

Development

Prerequisites

In order to run the commands described below, you need:

Running

$ docker compose up

Repository plugins

Repository plugins must be placed in the "storage/repository_plugins" directory (usually done with a docker volume mount).
Each plugin must have a folder with at least one file: __init__.py
This __init__ file must implement a class called "Repository" that inherits from the Repository class.

If the plugin requires any pypi-packages, add a "requirements.txt"-file generated by "pip freeze" in the plugins root folder.

To use this repository plugin, create a repository in a data source definition, with the type matching the plugin name (name of the folder)

Example structure:

src/
    storage/
        repository_plugins/
            my_plugin/
                __init__.py
                requirements.txt

Testing

Running integration tests:

$ docker compose run --rm dmss behave

Run BDD tests by regexp:

$ docker compose run --rm dmss behave -n "Scenario name" # Run single test

Run unit tests:

$ docker compose run --rm dmss pytest

Contributing

If you would like to contribute, please read our Contribution guide.