Releases: FraunhoferIOSB/FAAAST-Service
Releases · FraunhoferIOSB/FAAAST-Service
v1.2.0
🚀 New Features & Major Changes
- General
- Replaced custom classes with AAS4J classes that are now available as part of AAS4J
- Persistence
- Added Mongo persistence for storing AAS model in MongoDB
- Endpoint
- Supported AAS Profiles can now be configured per Endpoint
- HTTP
- Improved CORS support by introducing additional config properties
corsAllowCredentials
,corsAllowedHeaders
,corsAllowedMethods
,corsAllowedOrigin
,corsExposedHeaders
, andcorsMaxAge
- Improved error messages; stack trace may now be returned in HTTP responses via config property
includeErrorDetails
- New API calls: PUT on /upload will now accept JSON/AASX model files. DELETE on /reset will erase everything including AAS, Submodels and ConceptDescriptions.
- Improved CORS support by introducing additional config properties
- OPC UA
- Added support for all datatypes of the AAS specification
⚙️ Internal Changes & Bugfixes
- General
- Fixed bug when executing an operation asynchronously. When the timeout has expired, the status of the operation was set to timeout, even if the operation already finished successfully. This does no longer happen - the timeout no longer overwrites the result of the operation.
- Fix warning message about missing Log4j2 logging implementation
- Fix registry synchronization because of invalid _interface serialization
- Fixed bug that occured when having multiple elements in a SubmodelElementList with exactly the same attributes
- Invoke asynchronous operation now ignores the clientTimeout
- Model validation no longer throws an error if a model contains multiple instances of exactly the same Identifiable. This is not 100% correct behavior according to the specification as it validates the uniqueness criteria of their ID, however, it helps tremendously when working with existing SMTs as many of them are currently also not 100% standard-compliant and contain such duplicate elements.
- Endpoint
- HTTP
- Fixed query modifier
extent
which has not been working as intended - Fixed bug in JSON valueOnly deserialization that could occur with complex strcutures (e.g. SubmodelElementCollections within SubmodelElementLists)
- Fixed bug caused by null values in JSON payload when inserting data via HTTP - null values are now treated as empty/default values
- Fixed bug "serialization failed" when retrieving a property of type
GDay
- Fixed bug where
/aas/asset-information/thumbnail
incorrectly returns500 Internal Server Error
when propertycontent-type
is not set - Added support for query parameters
assetId
andidShort
for/shells/$reference
/serialization
no longer fails when model contains 'embedded' files but target file format does not. Instead, files are ignored.- Enable paging for
/submodel/submodel-elements/$path
- Upgraded to Jetty 12
- Fixed query modifier
- HTTP
- Serialization
- JSON
- Fixed exception occuring when trying to serialize an element as valueOnly that contains elements that do not support valueOnly serialization
- Fixed serialization of
Message
object to only includecode
property if set - Added support for valueOnly serialization of
BasicEventElement
- JSON
- Asset Connection
- General
- Fixed bug that caused FA³ST Service to crash when an Asset Connection threw an exception on startup
- HTTP
- Remove method and payload from Subscription Provider
- General
📦 Dependencies
- Bump aas4j.version from 1.0.2 to 1.0.3
- Bump bouncycastle.version from 1.78.1 to 1.79
- Bump com.fasterxml.jackson.core:jackson-databind from 2.17.2 to 2.18.2
- Bump com.fasterxml.woodstox:woodstox-core from 7.0.0 to 7.1.0
- Bump com.google.guava:guava from 33.2.1-jre to 33.3.1-jre
- Bump com.google.protobuf:protobuf-java from 4.27.2 to 4.29.1
- Bump com.guardsquare:proguard-base from 7.5.0 to 7.6.0
- Bump com.guardsquare:proguard-core from 9.1.4 to 9.1.6
- Bump com.puppycrawl.tools:checkstyle from 10.17.0 to 10.20.2
- Bump commons-io:commons-io from 2.16.1 to 2.18.0
- Bump de.flapdoodle.embed:de.flapdoodle.embed.mongo from 4.17.0 to 4.18.1
- Bump io.github.classgraph:classgraph from 4.8.174 to 4.8.179
- Bump jackson.version from 2.17.2 to 2.18.2
- Bump jena.version from 5.0.0 to 5.2.0
- Bump jetty.version from 11.0.22 to 12.0.15
- Bump logback.version from 1.5.6 to 1.5.12
- Bump maven.plugin.surefire.version from 3.3.1 3.5.2
- Bump milo.version from 0.6.13 to 0.6.15
- Bump netty.version from 4.1.111.Final to 4.1.115.Final
- Bump nl.jqno.equalsverifier:equalsverifier from 3.16.1 to 3.17.5
- Bump org.apache.commons:commons-compress from 1.26.2 to 1.27.1
- Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0
- Bump org.apache.httpcomponents.client5:httpclient5 from 5.3.1 to 5.4.1
- Bump org.apache.logging.log4j:log4j-to-slf4j from 2.24.0 to 2.24.2
- Bump org.apache.maven.plugins:maven-checkstyle-plugin from 3.4.0 to 3.8.1
- Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.3.1 to 3.5.2
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.4 to 3.2.7
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.7.0 to 3.11.2
- Bump org.awaitility:awaitility from 4.2.1 to 4.2.2
- Bump org.codehaus.mojo:license-maven-plugin from 2.4.0 to 2.5.0
- Bump org.eclipse.parsson:parsson from 1.1.6 to 1.1.7
- Bump org.mockito:mockito-core from 5.12.0 to 5.14.2
- Bump org.mongodb:mongodb-driver-sync from 5.1.3 to 5.2.1
- Bump org.owasp:dependency-check-maven from 10.0.3 to 11.1.1
- Bump slf4j.version from 2.0.13 to 2.0.16
- Bump uk.org.webcompere:system-stubs-core from 2.1.6 to 2.1.7
v1.1.0
🚀 New Features & Major Changes
- General
- Loading AAS models from JSON now fails on unknown JSON properties
- Added lambda operation provider
- Added additional helper methods for resolving idShort and semanticId paths
- Added support for synchronization with multiple AAS and/or submodel registries
- Asset Connection
- MQTT
- Now supports multiple subscription providers to the same topic
- MQTT
- Endpoint
- HTTP
- Added new config property sslEnabled that allows to disable SSL/HTTPS and use HTTP instead. This is intended for development/testing purposes and some scenarios where FA³ST Service is running behind a proxy server that handles SSL/HTTPS.
- Added new config property hostname to provide hostname of endpoint for automatic registration with registries
- HTTP
⚙️ Internal Changes & Bugfixes
- General
- Added log message when starting to indicate that constraint validation is currently not supported
- Fixed error where complementary files within AASX model files where not correctly loaded when specifying the model file via environment variables
- Fixed error that prevented loading models in XML format
- Endpoint
- OPC UA
- Fixed error when loading models with non-unique idShorts
- OPC UA
- Asset Connection
- MQTT
- Fixed error that occured when using asset connection in read/subscribe mode with JSON payload that has string properties containing escaped JSON as text
- MQTT
📦 Dependencies
- Bump aas4j.version from 1.0.1 to 1.0.2
- Bump bouncycastle.version from 1.77 to 1.78.1
- Bump com.fasterxml.jackson.core:jackson-databind from 2.17.0 to 2.17.2
- Bump com.fasterxml.woodstox:woodstox-core from 6.6.2 to 7.0.0
- Bump com.google.guava:guava from 33.1.0-jre to 33.2.1-jre
- Bump com.google.protobuf:protobuf-java from 4.26.1 to 4.27.2
- Bump com.guardsquare:proguard-base from 7.4.2 to 7.5.0
- Bump com.guardsquare:proguard-core from 9.1.1 to 9.1.4
- Bump com.puppycrawl.tools:checkstyle from 10.15.0 to 10.17.0
- Bump commons-codec:commons-codec from 1.16.1 to 1.17.1
- Bump commons-io:commons-io from 2.16.0 to 2.16.1
- Bump docker/build-push-action from 5 to 6
- Bump info.picocli:picocli from 4.7.5 to 4.7.6
- Bump info.picocli:picocli-codegen from 4.7.5 to 4.7.6
- Bump io.github.classgraph:classgraph from 4.8.168 to 4.8.174
- Bump io.github.git-commit-id:git-commit-id-maven-plugin from 8.0.2 to 9.0.1
- Bump jackson.version from 2.17.0 to 2.17.2
- Bump jakarta.servlet:jakarta.servlet-api from 6.0.0 to 6.1.0
- Bump jetty.version from 11.0.20 to 11.0.22
- Bump logback.version from 1.5.3 to 1.5.6
- Bump milo.version from 0.6.12 to 0.6.13
- Bump netty.version from 4.1.108.Final to 4.1.111.Final
- Bump nl.jqno.equalsverifier:equalsverifier from 3.16 to 3.16
- Bump org.apache.commons:commons-compress from 1.26.1 to 1.26.2
- Bump org.apache.maven.plugins:maven-checkstyle-plugin from 3.3.1 to 3.4.0
- Bump org.apache.maven.plugins:maven-dependency-plugin from 3.6.1 to 3.7.1
- Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.5 to 3.3.1
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.2 to 3.4.2
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0
- Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.2 to 3.6.0
- Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
- Bump org.apache.poi:poi-ooxml from 5.2.5 to 5.3.0
- Bump org.codehaus.mojo:build-helper-maven-plugin from 3.5.0 to 3.6.0
- Bump org.eclipse.parsson:parsson from 1.1.5 to 1.1.6
- Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12
- Bump org.mockito:mockito-core from 5.11.0 to 5.12.0
- Bump org.owasp:dependency-check-maven from 10.0.0 to 10.0.3
- Bump org.owasp:dependency-check-maven from 9.1.0 to 10.0.0
- Bump org.skyscreamer:jsonassert from 1.5.1 to 1.5.3
- Bump org.sonatype.plugins:nexus-staging-maven-plugin from 1.6.13 to 1.7.0
- Bump slf4j.version from 2.0.12 to 2.0.13
v1.0.1
⚙️ Internal Changes & Bugfixes
- General
- Fixed some date-related unit tests that failed during daylight saving time at thereby prevented compilation of project
- Changed line-endings of CI workflow files from
CRLF
toLF
- Model
- Updated model files related to registry to meta model v3.0
📦 Dependencies
- Bump
nl.jqno.equalsverifier:equalsverifier
from3.15.8
to3.16
- Bump
org.apache.maven.plugins:maven-gpg-plugin
from3.2.1
to3.2.2
- Bump
com.fasterxml.woodstox:woodstox-core
from6.6.1
to6.6.2
- Bump
com.google.protobuf:protobuf-java
from4.26.0
to4.26.1
- Bump
com.puppycrawl.tools:checkstyle
from10.14.2
to10.15.0
- Bump
org.owasp:dependency-check-maven
from9.0.10
to9.1.0
- Bump
commons-io:commons-io
from2.15.1
to2.16.0
v1.0.0
Important
Version 1.0 is a major update and has breaking changes to all previous versions.
When upgrading to v1.0 please make sure the AAS models and payload you use are compliant to AAS spec v3.0.
Additionally, existing asset connection configurations must be updated in the config file as the serialization format for references has changed in the specificition, e.g., (Submodel)[IRI]http://example.org/foo,(Property)[ID_SHORT]bar
in older configurations new becomes (Submodel)http://example.org/foo, (Property)bar
, i.e. the id type has been removed and segments are not separated only by ,
but by ,
(comma followed by additional space).
New Features & Major Changes
- General
- Updated to AAS metamodel & API v3.0, i.e. older model file (compliant with v2.x, v3.xRCxx) can no longer be loaded with FA³ST Service as-is but have be converted to v3.0
- Now requires Java 17+
- Replaced AAS model & de-/serialization library, now using AAS4J (previously Java Model and Java Serializer
- Default filename for model files changed to
model.*
(previouslyaasenvironment.*
) - Unified way to configure certificate information (See details). Affected components: HTTP Asset Connection, OPC UA Asset Connection, HTTP Endpoint, MQTT MessageBus
- Environment variables now use
_
instead of.
as a separator - Validation - currently completely disabled as AAS4J does not yet offer validation support
- More fine-grained configuration of validation via configuration file
- Enabled validation for API calls creating or updating elements (basic validation enabled by default)
- Renamed CLI argument
--no-modelValidation
to--no-validation
. It now enables any validation when used (overriding validation configuration in configuration file is present)
- Renamed CLI argument
--emptyModel
to--empty-model
- Endpoint
- HTTP
- Updated to AAS API specification v3.0.1
- HTTP no longer supported, only HTTPS
- all URLs are now prefixed with /api/v3.0/
- Added support for AASX serialization
- Added support for uploading, deleting and modifying of asset thumbnails and file attachments through API
- Updated to AAS API specification v3.0.1
- OPC UA Endpoint
- Updated OPC UA Information model to AAS specification version 3.0. As there is no official mapping of AAS v3.0 to OPC UA, the current mapping is proprietary
- Added support for configuring supported security policies (
NONE
,BASIC128RSA15
,BASIC256
,BASIC256SHA256
,AES128_SHA256_RSAOAEP
,AES256_SHA256_RSAPSS
) and authentication methods (Anonymous
,UserName
,Certificate
)
- HTTP
- MessageBus
- MQTT-based MessagBus now available that supports running both as embedded MQTT server or using external one
- Asset Connection
- HTTP
- Now provides a way to explicitely trust server certificates, e.g. useful when servers are using a self-signed certificate
- HTTP
- File-storage
- New file-storage interface provides functionality to store referenced files like thumbnails and files in SubmodelElements
- Implementations for filesystem- and memory-based storages
Internal changes & bugfixes
- General
- Fixed a
ConcurrentModificationException
that could occur when accessing a submodel with subscription-based asset connection via HTTP endpoint
- Fixed a
- HTTP Endpoint
- Now correctly uses base64URL-encoding for all HTTP requests (instead of base64-encoding for some)
- No longer leaks sensitive server information in HTTP response headers (such as server version of the HTTP server library)
- Asset Connection
- OPC UA
- Unit tests no longer create temp files in source folders
- OPC UA
- Starter
- Improved error logging