AAS Repository#

Docker Pulls GitHub Metamodel API

The AAS Repository is a component that provides a REST API to interact with Asset Administration Shells. It allows the creation, retrieval, update, and deletion of AAS instances.

Features#

Configuration#

Server Configuration#

The following shows how to configure the server port, application name and AAS Repository Name.

server.port = 8081
spring.application.name = AAS Repository
basyx.aasrepo.name = aas-repo

Backend Configuration Default#

By default, it uses InMemory. Optionally, you can configure MongoDB.

InMemory Default#

basyx.backend = InMemory

MongoDB Default#

basyx.backend = MongoDB
spring.data.mongodb.host=mongo
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.database=aas
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=mongoAdmin
spring.data.mongodb.password=mongoPassword

Registry Integration#

These settings allow the configuration of registry integration and the external URL of the repository.

To enable this feature, the following two properties should be configured:

basyx.aasrepository.feature.registryintegration = {AAS-Registry-Base-Url}
basyx.externalurl = {AAS-Repo-Base-Url}

MQTT configuration#

This section provides the configuration for enabling MQTT.

basyx.aasrepository.feature.mqtt.enabled = true
mqtt.clientId = TestClient
mqtt.hostname = localhost
mqtt.port = 1883

CORS Configuration Default Default#

Configure CORS settings to specify allowed origins and methods.

Warning

To use the component with the BaSyx Web GUI this configuration is required.

To do this, you need to add the URL of the Web GUI to the allowed origins.

This is what an example configuration looks like:

basyx.cors.allowed-origins = http://localhost:3000, https://my-url/*
basyx.cors.allowed-methods = GET,POST,PATCH,DELETE,PUT,OPTIONS,HEAD

Authorization Configuration Default Default#

Enable and configure authorization features, such as Role-Based Access Control (RBAC) and JWT Bearer Token Provider.

basyx.feature.authorization.enabled = true
basyx.feature.authorization.type = rbac
basyx.feature.authorization.jwtBearerTokenProvider = keycloak
basyx.feature.authorization.rbac.file = classpath:rbac_rules.json
spring.security.oauth2.resourceserver.jwt.issuer-uri= http://localhost:9096/realms/BaSyx

Favicon Configuration Default Default#

Note

A favicon is a small 16×16 or 32×32 pixel icon, symbol or logo used by web browsers to identify a website in a recognizable way

To configure the favicon, mount your favicon to the static directory of the component using Docker:

docker run --name=aas-repo -p:8081:8081 -v C:/path/to/favicon.ico:/application/static/favicon.ico eclipsebasyx/aas-repository:2.0.0-SNAPSHOT

or

aas-repo:
    image: eclipsebasyx/aas-repository:2.0.0-SNAPSHOT
    container_name: aas-repo
    volumes:
      - ./basyx/aas-repo.properties:/application/application.properties
	  - ./basyx/static/favicon.ico:/application/static/favicon.ico
    ports:
      - '8081:8081'

Docker#

Eclipse BaSyx provides the AAS Repository as off-the-shelf component via DockerHub. The following command pulls the image and starts a container for the AAS Repository:

docker run --name=aas-repo -p:8081:8081 -v C:/path/to/application.properties:/application/application.properties eclipsebasyx/aas-repository:2.0.0-SNAPSHOT

Warning

When running this component inside Docker, do not modify the internal port configuration.
Changing the port setting may prevent the service from being accessible from outside the container.

Virtual Machine#

Eclipse BaSyx provides the AAS Repository as a virtual machine image for Oracle VirtualBox and VMware Workstation Player.

The image can be found here. How to use it is described here.

Swagger UI#

In the Swagger UI, you can find the API documentation for the AAS Repository.

You can also execute all the API calls directly from the Swagger UI.

The Aggregated API endpoint documentation is available at:

http://{host}:{port}/v3/api-docs

The Aggregated Swagger UI for the endpoints is available at:

http://{host}:{port}/swagger-ui/index.html