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.
- 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.
docker run -d --name sme-adapter -p 8080:8080 -v sme-adapter-data:/app/data davidadap/sme-adapter:latestOpen 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.
docker compose up -dThe provided docker-compose.yml builds from source rather than pulling the published
image. Edit it if you want the image instead.
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.
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.
The app logs to standard output.
docker logs sme-adapter --tail 200These are lost when the container is removed, so capture them before rebuilding if you are investigating a problem.
docker build -t sme-adapter .Or with the .NET 8 SDK:
dotnet run --project BlazorApp- 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.