Skip to content

Repository files navigation

SME Adapter

A tool for small and medium-sized manufacturers to publish product data as Asset Administration Shell (AAS) submodels conforming to IDTA specifications. Enter your data once, then export it as AASX, JSON or XML, or publish it straight into an AAS repository such as Eclipse BaSyx.

Full documentation is in the Wiki. This page covers installing and running it only.

What it does

  • Generates eight IDTA submodels:
    • Nameplate (IDTA 02006-3-0)
    • TechnicalData (IDTA 02003-2-0)
    • HandoverDocumentation (IDTA 02004-2-0)
    • CarbonFootprint (IDTA 02023)
    • Reliability (IDTA 02013)
    • FunctionalSafety (IDTA 02014)
    • ContactInformation (IDTA 02002)
    • ProvisionOf3DModels (IDTA 02026)
  • Produces both a Type AAS (product blueprint) and Instance AAS (serial-numbered units).
  • Builds a product and its AAS straight from a type code. Describe your order code once as a rule (for example DM-4021-V400-C12-F50-P2-W125-M1), and any matching code is split into its segments, interpreted, and turned into a product. Nothing is re-entered per variant.
  • Exports as AASX (self-contained package with embedded files), JSON, or XML (AAS v3.0).
  • Publishes directly to a BaSyx AAS repository — pushes the shell, submodels, concept descriptions, and embedded document/image files to a running BaSyx AAS Environment via its DotAAS Part 2 REST API (create-or-update, with a per-item result report).
  • Provides a web UI for entering company data, product types and instances, technical data, documents, markings, carbon footprint, reliability and safety characteristics.

Quick start

docker run -d --name sme-adapter -p 8080:8080 -v sme-adapter-data:/app/data davidadap/sme-adapter:latest

Open http://localhost:8080.

The database is created and migrated on first start. There is no manual setup.

Keep the volume. -v sme-adapter-data:/app/data is what preserves your data. Without it everything is lost when the container is removed.

To publish to BaSyx as well, add -e BaSyx__BaseUrl=http://host.docker.internal:8081.

Using compose

docker compose up -d

The provided docker-compose.yml builds from source rather than pulling the published image. Edit it if you want the image instead.

Configuration

All configuration is through environment variables.

Variable Default Description
ASPNETCORE_URLS http://+:8080 Listen address inside the container.
ConnectionStrings__DefaultConnection Data Source=/app/data/smeadapter.db;Foreign Keys=True Database location. Keep it on the mounted volume. Foreign Keys=True is required for correct cascade behaviour.
BaSyx__BaseUrl (empty) AAS Environment to publish to. When set, publishing appears in the UI. Empty means the feature is off and the app runs normally.
BaSyx__TimeoutSeconds 100 HTTP timeout for publish requests.
BaSyx__AutoSync true Re-publishes an already-published product automatically when you edit it. The first publish is always manual. Set to false to publish only on demand.

The target BaSyx must be unsecured. Publishing to a secured repository is not supported yet.

Publishing to BaSyx

Set BaSyx__BaseUrl to a running AAS Environment.

Setup Value
App on the host, BaSyx port-mapped to the host http://localhost:8081
App in Docker, BaSyx on the host http://host.docker.internal:8081
App and BaSyx in the same Docker network http://aas-environment:8081

On the BaSyx side, raise the multipart limit or document uploads will fail. The Spring Boot default is about 1 MB.

SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE=100MB
SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE=100MB

Publishing is server to server, so CORS is not needed for the adapter. CORS only matters if you also run the BaSyx Web UI against the same environment.

Logs

The app logs to standard output.

docker logs sme-adapter --tail 200

These are lost when the container is removed, so capture them before rebuilding if you are investigating a problem.

Build from source

docker build -t sme-adapter .

Or with the .NET 8 SDK:

dotnet run --project BlazorApp

Roadmap

  • Authentication. There is no login for the adapter, and publishing targets an unsecured BaSyx. The deployment perimeter is the boundary today. Both are intended to align with the dataspace identity provider (Keycloak / AAS Security).
  • Persistent BaSyx demo. A compose file bundling the adapter with a BaSyx AAS Environment and MongoDB, so published data survives restarts.
  • AAS import and round-trip. Read an AAS back from BaSyx or an AASX to reconcile edits made outside the adapter.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages