Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
9c1eb7f
initial commit
mjacoby May 22, 2024
d60eaaf
fix tests
mjacoby May 23, 2024
edfff11
initialize assetConnectionManager before calling submodel template pr…
mjacoby Jun 27, 2024
9598fcd
Merge branch 'main' into feature/submodel-template-processor
mjacoby Jun 27, 2024
f113ac0
refactor idShortPath and semanticIdPath resolving
mjacoby Jun 27, 2024
934b482
fix initialization of SMT processors
mjacoby Jul 1, 2024
f180789
Merge branch 'main' into feature/submodel-template-processor
mjacoby Jul 2, 2024
a46e228
Merge branch 'main' into feature/submodel-template-processor
mjacoby Aug 12, 2024
1cc2d6a
add support for cardinality qualifiers
mjacoby Sep 9, 2024
e0a2db8
Merge branch 'main' into feature/submodel-template-processor
mjacoby Sep 9, 2024
52eb03b
add apiGateway
fvolz Sep 19, 2024
a64b4a2
additional verification of jwt
fvolz Sep 19, 2024
26715e2
update gateway and delegation to authServer
fvolz Sep 20, 2024
1a070be
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Oct 30, 2024
a0b2d39
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Nov 4, 2024
8a06fdd
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Nov 4, 2024
9a95a01
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Nov 6, 2024
95f4631
integrate MessageBus
tbischoff2 Nov 6, 2024
89b09ec
fix sonar warnings
tbischoff2 Nov 15, 2024
69e5937
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Nov 18, 2024
b72d02c
adaptions for new main Branch
tbischoff2 Nov 18, 2024
055782e
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Nov 21, 2024
c505bf7
add updateSubmodel
tbischoff2 Nov 21, 2024
32f45f5
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Nov 26, 2024
c0f8127
change SMT processor interface
tbischoff2 Nov 26, 2024
7b30408
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Dec 2, 2024
75141a8
remove sonar warning
tbischoff2 Dec 2, 2024
00f9a43
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Dec 4, 2024
f802c00
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Dec 10, 2024
edc5867
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Dec 12, 2024
04a1e86
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Dec 13, 2024
9ab2eef
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Dec 18, 2024
ddb4ec1
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Jan 7, 2025
a491a00
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Jan 8, 2025
4939ee9
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Jan 14, 2025
90cac87
ServiceConfig: add submodelTemplateProcessor to Builder
tbischoff2 Jan 16, 2025
0b6868a
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Jan 16, 2025
de302ac
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Feb 6, 2025
fbfddb8
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Feb 18, 2025
ffd1b5e
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Mar 4, 2025
a01e7b9
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Mar 11, 2025
d2d387d
add SMT Processor tests
tbischoff2 Mar 11, 2025
dbfdb51
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Mar 11, 2025
de34161
refactoring
tbischoff2 Mar 12, 2025
efbefab
remove sonar warnings
tbischoff2 Mar 14, 2025
947b3ac
Merge remote-tracking branch 'remotes/origin/main' into feature/submo…
tbischoff2 Mar 19, 2025
0e49c4f
Merge remote-tracking branch 'origin/feature/submodel-template-proces…
fvolz Apr 9, 2025
9488ade
merge SMT processor
fvolz Apr 9, 2025
590cb64
add security submodel processor
fvolz Apr 9, 2025
25946f2
update ACL
fvolz May 12, 2025
e0ff405
remove SMT Processor
fvolz May 12, 2025
f56fe98
Merge branch 'main' into feature/security
fvolz May 12, 2025
c1ece40
add folder monitoring for ACL rules
fvolz May 12, 2025
c210947
add simple auth rule checks
fvolz May 12, 2025
aaa94df
add simple authServer
fvolz May 13, 2025
0e19056
add null checks and initial documentation
fvolz May 13, 2025
24c17c0
add simple identifiable submodel check
fvolz May 16, 2025
e05e467
Merge branch 'main' into feature/security
fvolz Jun 30, 2025
620f66f
add junit test
fvolz Jul 7, 2025
fa3157d
spotless
tbischoff2 Jul 16, 2025
7b62d4b
refactor ACL classes
tbischoff2 Jul 18, 2025
eae2eca
Merge remote-tracking branch 'remotes/origin/main' into feature/security
tbischoff2 Jul 18, 2025
130cd41
Merge remote-tracking branch 'remotes/origin/main' into feature/security
tbischoff2 Jul 23, 2025
5a54578
add complex formula evaluator
fvolz Aug 11, 2025
178b6c3
Update ApiGateway.java
fvolz Aug 11, 2025
f4163c8
Update ApiGateway.java
fvolz Aug 11, 2025
7d7f006
fix errors
tbischoff2 Aug 13, 2025
7c2c7ec
use all configured claims for evaluateFormula
tbischoff2 Aug 14, 2025
3f0aa1c
Merge remote-tracking branch 'remotes/origin/main' into feature/security
tbischoff2 Aug 26, 2025
f395fd7
feat: extract request filtering (#1187)
carlos-schmidt Sep 15, 2025
0fc4d41
fix checkstyle violations
carlos-schmidt Sep 15, 2025
e64d030
DefACL: fix errors
tbischoff2 Sep 16, 2025
d43212c
implement reusable ACL
tbischoff2 Sep 16, 2025
58e4454
feat: enhance right evaluation (#1195)
carlos-schmidt Sep 18, 2025
3f3d434
extend security objects
tbischoff2 Sep 26, 2025
ad13785
implement DEFATTRIBUTES, DEFOBJECTS, DEFFORMULA
tbischoff2 Sep 26, 2025
6184c26
add filtering to /submodels and /shells
fvolz Oct 16, 2025
e7ffc72
temporary workaround for Zip bomb error
tbischoff2 Oct 20, 2025
cd01860
Merge branch 'main' into feature/security
fvolz Oct 27, 2025
e35367c
switch to jsonschema2pojo generator
fvolz Oct 27, 2025
4949770
Support for SMT AID-AIMC (#1233)
mjacoby Oct 27, 2025
ebb9a3c
Release v1.3.0
mjacoby Oct 27, 2025
83decd6
Prepare for next development iteration
mjacoby Oct 27, 2025
aa25962
add query evaluator and Query AAS endpoint, modify persistence
fvolz Oct 28, 2025
5ddc4e5
bugfix: string claim parsing
fvolz Oct 29, 2025
5bf8e54
extend persistence for query/submodels and query/concept-descriptions
fvolz Oct 29, 2025
6fc2776
add request handlers mappers requests responses for query/submodels q…
fvolz Oct 29, 2025
19cc04a
extend servicespecification for queries
fvolz Oct 29, 2025
3dc6572
handle values as string
fvolz Oct 29, 2025
2de4a52
remove comments
fvolz Oct 29, 2025
eb2c0e4
add evaluator test
fvolz Oct 29, 2025
cd819c6
Merge branch 'main' into feature/security
fvolz Oct 29, 2025
1cd037d
Merge branch 'main' into feature/security
fvolz Oct 29, 2025
6180cfd
spotless
fvolz Oct 29, 2025
86d50f2
Merge branch 'feature/security' of https://github.com/FraunhoferIOSB/…
fvolz Oct 29, 2025
8c4d8d0
refactoring
fvolz Oct 30, 2025
b21b925
sonarcloud fixes
fvolz Oct 30, 2025
5f684be
codacy fixes
fvolz Oct 30, 2025
5fe39bc
checkstyle
fvolz Oct 30, 2025
fdbea22
checkstyle apigateway
fvolz Oct 30, 2025
50ed54e
revert route comparison
fvolz Oct 30, 2025
bb94811
fix equals with non-string
fvolz Oct 30, 2025
52f9ce3
refactoring
fvolz Oct 30, 2025
cf26fb9
fix json schema of idta
fvolz Oct 30, 2025
326765c
spotless
fvolz Oct 30, 2025
5a62975
several fixes
tbischoff2 Oct 30, 2025
7e0ba36
Bugfix: do not execute request without auth
fvolz Nov 18, 2025
2940d94
Update docs
fvolz Nov 18, 2025
ca36f48
update docs
fvolz Nov 18, 2025
c21ebe7
use records instead of class
fvolz Nov 18, 2025
0faff04
spotless
fvolz Nov 18, 2025
c31fbb3
add semantic id filter to /submodels
fvolz Nov 20, 2025
a2e54cb
add semanticID matching to /submodel/{submodelId}
fvolz Nov 20, 2025
94b14b9
refactor into method
fvolz Nov 20, 2025
4adadd9
url match submodel requests more closely, change docs
fvolz Nov 20, 2025
af17ca6
Merge branch 'main' into feature/security
fvolz Nov 25, 2025
ffbb18e
merge conflicts
fvolz Nov 25, 2025
7a5b43e
add wait with awaitility in test file
fvolz Nov 25, 2025
b365e43
Merge remote-tracking branch 'remotes/origin/main' into feature/security
tbischoff2 Dec 16, 2025
59c16a7
Merge remote-tracking branch 'remotes/origin/main' into feature/security
tbischoff2 Dec 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import de.fraunhofer.iosb.ilt.faaast.service.model.api.paging.PagingInfo;
import de.fraunhofer.iosb.ilt.faaast.service.model.exception.PersistenceException;
import de.fraunhofer.iosb.ilt.faaast.service.model.exception.ResourceNotFoundException;
import de.fraunhofer.iosb.ilt.faaast.service.model.messagebus.SubscriptionId;
import de.fraunhofer.iosb.ilt.faaast.service.model.serialization.DataFormat;
import de.fraunhofer.iosb.ilt.faaast.service.persistence.AssetAdministrationShellSearchCriteria;
import de.fraunhofer.iosb.ilt.faaast.service.persistence.ConceptDescriptionSearchCriteria;
Expand Down Expand Up @@ -73,6 +74,8 @@
public class Service implements ServiceContext {

private static final Logger LOGGER = LoggerFactory.getLogger(Service.class);
private static final String VALUE_NULL = "value must not be null";
private static final String ELEMENT_NULL = "element must not be null";
private final ServiceConfig config;
private AssetConnectionManager assetConnectionManager;
private List<Endpoint> endpoints;
Expand All @@ -84,6 +87,8 @@ public class Service implements ServiceContext {

private RegistrySynchronization registrySynchronization;
private RequestHandlerManager requestHandler;
private List<SubmodelTemplateProcessor> submodelTemplateProcessors;
private List<SubscriptionId> subscriptions;

/**
* Creates a new instance of {@link Service}.
Expand Down Expand Up @@ -121,6 +126,8 @@ public Service(CoreConfig coreConfig,
else {
this.endpoints = endpoints;
}
this.submodelTemplateProcessors = submodelTemplateProcessors;
this.subscriptions = new ArrayList<>();
this.config = ServiceConfig.builder()
.core(coreConfig)
.build();
Expand Down Expand Up @@ -149,6 +156,7 @@ public Service(ServiceConfig config)
throws ConfigurationException, AssetConnectionException, PersistenceException, MessageBusException {
Ensure.requireNonNull(config, "config must be non-null");
this.config = config;
this.subscriptions = new ArrayList<>();
init();
}

Expand Down Expand Up @@ -306,7 +314,7 @@ public void stop() {
}


private void init() throws ConfigurationException {
private void init() throws ConfigurationException, PersistenceException, MessageBusException {
Ensure.requireNonNull(config.getPersistence(), new InvalidConfigurationException("config.persistence must be non-null"));
Ensure.requireNonNull(config.getFileStorage(), new InvalidConfigurationException("config.filestorage must be non-null"));
Ensure.requireNonNull(config.getMessageBus(), new InvalidConfigurationException("config.messagebus must be non-null"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.io.InputStream;
import java.nio.charset.Charset;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.eclipse.digitaltwin.aas4j.v3.dataformat.aasx.AASXDeserializer;


Expand All @@ -35,6 +36,8 @@ public class AasxEnvironmentDeserializer implements EnvironmentDeserializer {
@Override
public EnvironmentContext read(InputStream in, Charset charset) throws DeserializationException {
try {
// temporary workaround to make sure, that all AASX files can be loaded.
ZipSecureFile.setMinInflateRatio(0);
AASXDeserializer deserializer = new AASXDeserializer(in);
return EnvironmentContext.builder()
.environment(deserializer.read())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import de.fraunhofer.iosb.ilt.faaast.service.model.exception.ResourceAlreadyExistsException;
import de.fraunhofer.iosb.ilt.faaast.service.model.exception.ResourceNotAContainerElementException;
import de.fraunhofer.iosb.ilt.faaast.service.model.exception.ResourceNotFoundException;
import de.fraunhofer.iosb.ilt.faaast.service.model.query.json.Query;
import de.fraunhofer.iosb.ilt.faaast.service.util.Ensure;
import de.fraunhofer.iosb.ilt.faaast.service.util.ReferenceHelper;
import java.util.Objects;
Expand Down Expand Up @@ -233,6 +234,21 @@ public Page<AssetAdministrationShell> findAssetAdministrationShells(AssetAdminis
throws PersistenceException;


/**
* Finds {@code org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell}s by search criteria and query.
*
* @param criteria the search criteria
* @param modifier the modifier
* @param paging paging information
* @param query the query to be executed
* @return the found {@code org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell}s
* @throws PersistenceException if there was an error with the storage.
*/
public Page<AssetAdministrationShell> findAssetAdministrationShellsWithQuery(AssetAdministrationShellSearchCriteria criteria, QueryModifier modifier, PagingInfo paging,
Query query)
throws PersistenceException;


/**
* Finds {@code org.eclipse.digitaltwin.aas4j.v3.model.Submodel}s by search criteria.
*
Expand All @@ -245,6 +261,19 @@ public Page<AssetAdministrationShell> findAssetAdministrationShells(AssetAdminis
public Page<Submodel> findSubmodels(SubmodelSearchCriteria criteria, QueryModifier modifier, PagingInfo paging) throws PersistenceException;


/**
* Finds {@code org.eclipse.digitaltwin.aas4j.v3.model.Submodel}s by search criteria and query.
*
* @param criteria the search criteria
* @param modifier the modifier
* @param paging paging information
* @param query query to execute
* @return the found {@code org.eclipse.digitaltwin.aas4j.v3.model.Submodel}s
* @throws PersistenceException if there was an error with the storage.
*/
public Page<Submodel> findSubmodelsWithQuery(SubmodelSearchCriteria criteria, QueryModifier modifier, PagingInfo paging, Query query) throws PersistenceException;


/**
* Finds {@code org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement}s by search criteria.
*
Expand All @@ -271,6 +300,20 @@ public Page<SubmodelElement> findSubmodelElements(SubmodelElementSearchCriteria
public Page<ConceptDescription> findConceptDescriptions(ConceptDescriptionSearchCriteria criteria, QueryModifier modifier, PagingInfo paging) throws PersistenceException;


/**
* Finds {@code org.eclipse.digitaltwin.aas4j.v3.model.ConceptDescription}s by search criteria and query.
*
* @param criteria the search criteria
* @param modifier the modifier
* @param paging paging information
* @param query query to execute
* @return the found {@code org.eclipse.digitaltwin.aas4j.v3.model.ConceptDescription}s
* @throws PersistenceException if there was an error with the storage.
*/
public Page<ConceptDescription> findConceptDescriptionsWithQuery(ConceptDescriptionSearchCriteria criteria, QueryModifier modifier, PagingInfo paging, Query query)
throws PersistenceException;


/**
* Save an {@code org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell}.
*
Expand Down
Loading
Loading