/edc-ui

EDC-UI for sovity's extended EDC-Connector.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

EDC UI

UI for sovity's extended EDC-Connector.
Report Bug · Request Feature

angular.io

Table of Contents
  1. About The Project
  2. Compatibility
  3. Getting Started
  4. Configuration
  5. Running dev mode
  6. Build docker image
  7. Codegen for Data-Management API
  8. Contributing
  9. License
  10. Contact

About The Project

Eclipse Dataspace Components is a framework for building dataspaces, exchanging data securely with ensured data sovereignity.

sovity extends the EDC functionality to offer enterprise-ready managed "Connector-as-a-Service" services, bringing out-of-the-box fully configured DAPS and integrations to existing other dataspace technologies.

Our extension of EDC DataDashboard functionalities has been made open source and will be kept compatible to mostly stock EDCs with minimal API extending extensions. See Compatibility.

(back to top)

Compatibility

Our compatibility target for the profile sovity-open-source is our open-source built ghcr.io/sovity/edc by sovity/edc-extensions/blob/main/connector.

See https://github.com/sovity/edc-extensions/blob/main/connector/build.gradle.kts#L12 for a list of extensions used.

(back to top)

Getting Started

The fastest way to get started is to run our docker-compose.yaml.

cd docs/getting-started

# Pull latest images
docker compose pull

# On ARM64, e.g. MAC with M1, you need to cross compile your own UI image
# (cd ../../ && docker buildx build -f "docker/Dockerfile" --platform linux/arm64 -t "ghcr.io/sovity/edc-ui:latest" .)

# Runs EDC and EDC UI at localhost:11000
docker compose up

(back to top)

Configuration

A list of all available configuration properties can be found here.

In general, all ENV vars EDC_UI_* are written to an assets/app-config.json, either before starting the angular build server or before starting the nginx to serve static files.

(Optional) Pass a JSON in an ENV Var

The ENV var EDC_UI_CONFIG_JSON can be used to pass a JSON that can contain all properties that would otherwise need to be specified individually. Individually provided ENV vars take precedence, however.

(back to top)

Running dev mode

Requires Node.js version ^16.10.0.

# Fake backend
(cd fake-backend && npm i && npm run start)

# Run Angular Application
npm i
npm run start

Configuring Dev Mode

For dev mode ENV vars are read from:

  • Current Environment Variables (highest precedence)
  • .env file (not committed, in .gitignore)
  • .env.local-dev file (defaults for working with fake backend).
# Example:
# Create a .env file to easily switch between profiles
EDC_UI_ACTIVE_PROFILE=mds-open-source

(back to top)

Build docker image

Requires docker.

# Build docker image
docker build -f "docker/Dockerfile" -t "edc-ui:latest" .

# Docker image will serve at :80

Configuring docker image

ENV vars EDC_UI_* will be collected into assets/app-config.json at container startup and served.

NGINX_BIND and NGINX_PORT are templated into default.conf and can be used to overwrite nginx bind address and port.

(back to top)

Codegen for Data-Management API

  1. Optionally update openapi/openapi.yaml.
  2. Regenerate models and services:
    docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i /local/openapi/openapi.yaml -g typescript-angular -o /local/src/modules/edc-dmgmt-client/

Please note that some client classes were edited manually after generation. When regenerating the classes for the API update be careful especially not to overwrite service constructor methods using the generator!

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Our contribution guide can be found in CONTRIBUTING.md.

(back to top)

License

Distributed under the Apache 2.0 License. See LICENSE for more information.

(back to top)

Contact

contact@sovity.de

(back to top)