Giter Club home page Giter Club logo

ids-messaging-services's People

Contributors

dependabot[bot] avatar omarsilva1 avatar sebastianopriel avatar sebbader avatar sebplorenz avatar stefkoslowski avatar tmberthold avatar vdakker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ids-messaging-services's Issues

KeyStoreManager: Dynamic loading of the Keystore

Issue being worked on in the IDS-Framework project, changes to the IDS-Framework also need to be made here.

Problem:
Loading the Keystore if it is not directly in the resources-folder but in a subfolder. (Probably must use Spring-ClassPathResource instead of the current solution)

[MESSAGING] Protocol selection for messages to be sent

The connector developer should be able to choose which protocol to use when sending a message using the framework.
In addition, there should be a default value if the connector developer does not specify a send protocol.
(REST / Multipart)

Info-Model 4.0.2

There seems to be a new Info-Model version 4.0.2, check if this should be used.

[Core & Messaging] Sending IDS-messages without valid DAT

It is possible to send IDS-messages even though they did not get a valid DAPS DAT. In the future this will no longer be possible unless the connector is in test_deployment state. Instead, an exception is returned to the connector developer depending on the reason for the failure of the DAT acquisition.

Already implemented in the IDS-Framework for a new major version 5.0.0, which is yet to be officially released.

International-Data-Spaces-Association/IDS-Connector-Framework#9

[Core] MultiDatapart toString

Wherever the enum MultiDatapart is used in the framework-library, the toString() function should be used instead of name(). function.

[Core] List for tokens / connectors to be blocked

The connector should be enabled to block specific connectors or tokens itself. For this purpose, a functionality should be created to check incoming messages whether their token / connector is on a blacklist.

Monthly Call with IDSA Technology & Architecture Team

Hi all,

I am contacting you on behalf of @ssteinbuss, CTO of IDSA.

As Technology and Architecture team of IDSA, we would like to organize a monthly call (60 mins) with the maintainers of IDSA repositories to discuss about the work and rules (license, code of conduct, issue labels, how to contribute file) for each repo.

As maintainers of this repo, can you please provide us your email address? So that we can create a contact list and organize our kick-off meeting?
(you can either reply here or send a direct e-mail to me at: [email protected])

Thank you,
Best regards,

GitHub Repo Preparation

  • Naming: IDS-Messaging-Services
  • Discussion Area
  • Contribution Guideline
  • Code Of Conduct
  • Labels like other IDSA projects
  • Dependabot
  • Protect Master

[Messaging] Check support for asynchronous IDS-Message flow

The default communication path is that a Response-Message is expected in response to a sent Request-Message. This is synchronous message flow.

Nevertheless, the message types of the IDS also allow asynchronous message flow. It is possible that a RequestInProcessMessage (type of NotificationMessage) is first received in response to a sent Request-Message, and after that then the actual Response-Message. Such a message flow is asynchronous.

It must be checked to what extent the current state of the Unified Lib supports asynchronous message flow, since with an asynchronous message flow the actual Response-Message would arrive at the Endpoint of the Unified-Lib as a normal message without direct connection within a message history.

http://htmlpreview.github.io/?https://github.com/IndustrialDataSpace/InformationModel/blob/feature/message_taxonomy_description/model/communication/Message_Description.htm

[Messaging] Fulltext SPARQL Query

We need to see if we have the ability to send SPARQL-queries to the broker so that the user just has to give us a keyword, so we assemble the query and send the broker a query message.

PREFIX ids: <https://w3id.org/idsa/core/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?resultUri ?res { 
  GRAPH ?g { 
    { ?resultUri a ids:Resource } 
    UNION 
    { ?resultUri a ids:BaseConnector }
    ?resultUri ?predicate ?res .
    FILTER ( DATATYPE(?res) = xsd:string ) .
    FILTER(REGEX(?res, "LOREM IPSUM", "i"))
  }
} LIMIT 5 OFFSET 0

[Core] Forward received RejectionMessage to Connector-Developer

Currently a received RejectionMessage is not forwarded to the connector-developer upon receiving it at the endpoints of the Unified-Lib due to failed DAT-validation of the received RejectionMessage within the Unified-Lib.

Background: When sending a RejectionMessage, the own DAT is NOT specified in the send RejectionMessage for security reasons. Therefore the receiving framework usually rejects the message because of a missing DAT without forwarding the message itself to the connector developer.

The received RejectionMessage should be forwarded to the connector developer so that the developer can evaluate it and the information contained like the correlationMessage, regardless of the status of the DAT-validation of the received message.

The problem is already addressed in the original IDS-Framework and, depending on the solution, will be adopted here.

IDS-Framework Issue: International-Data-Spaces-Association/IDS-Connector-Framework#11

Infomodel 4.0.5

A new stable version of the Infomodel Java classes is expected to be released on 26.04., we should switch to it as soon as the stable version is released.

[Service-Modules] Use HttpService for sending messages from TokenManagerService and BrokerService or have a Service setting Timeout settings for all HTTP Clients

The BrokerService and TokenManagers currently get their own HttpClients from the ClientProvider sending them independently from the HttpService, so their Timeout Settings are always the OkHttp default values. They should use the HttpService, so the Timeouts set there apply to the Broker and DAPS messages, too.

Another way to solve this would be to add a Method to the ClientProvider to override the default Timeouts for all generated Clients (instead of just a method to get an alternative client with other timeout settings once).

[Messaging] Adapt response types

Currently the Broker classes return Response objects. The interaction library uses MessageAndPayload(MAP) Objects to return more defined return values. This feature should be copied in the IDS Messaging Service

[Framework] Checking licenses of dependencies

Since at the moment not much is happening with the used dependencies, here is the list of licenses.

Our goal should be: Apache License, Version 2.0

Currently, we have the following dependencies with corresponding top-level licenses:

Syntax: groupId:artifactId:version License

parent:framework

  • org.springframework.boot:spring-boot-starter:2.4.2 Apache License, Version 2.0
  • com.squareup.okhttp3:okhttp:4.9.1 Apache License, Version 2.0
  • commons-fileupload:commons-fileupload:1.4 Apache License, Version 2.0
  • org.projectlombok:lombok:1.18.18 The MIT License
  • javax.servlet:javax.servlet-api:4.0.1 CDDL + GPLv2 with classpath exception
  • de.fraunhofer.iais.eis.ids.infomodel:java:4.0.0 Apache Version 2.0 (?)
  • de.fraunhofer.iais.eis.ids:infomodel-serializer:4.0.2-SNAPSHOT Apache Version 2.0 (?)

module:core (inherits from framework)

module:messaging (inherits from core)

  • org.springframework:spring-web:5.3.3 Apache License, Version 2.0
  • org.springframework:spring-webmvc:5.3.3 Apache License, Version 2.0
  • org.springframework:spring-tx:5.3.3 Apache License, Version 2.0
  • org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.1 Apache License, Version 2.0

module:broker (inherits from messaging)

  • no additional dependencies

module:clearinghouse (inherits from messaging)

  • no additional dependencies

Last Updated: February 25, 2021

[Messaging] ErrorResponse > Include DAT in tokenValue for RejectionMessages

Currently, for security reasons, the DAT is not sent with the automatic sending of RejectionMessages triggered by the Unified-Lib (see tokenValue in ErrorResponse withDefaultHeader).

The DAT cannot be sent until the validation routines for the DAT of an incoming message have been expanded (Issue #15).

As a result, the DAT can be checked again for incoming RejectionMessages, otherwise they are forwarded to the connector-devloper regardless of the DAT status.

[Demo-Connector] Integrating the Demo-Connector as a test module

Check if the Demo-Connector can be built into the Unified-Library as a separate module in its setup with the connection to the Unified-Library instead of maintaining two artifacts.

If the integration of the Demo-Connector connected with the Unified-Lib into a Test-Module is possible, the Demo-Connector should be implemented as a new Unified-Lib module.

[Clearing-House] Connection to the Clearing House

It looks like the AISEC Clearing-House does not support multi-part messages and therefore cannot be connected with the Unified-Lib at the moment.

Further development of the functionalities of the connection of the Unified-Lib to the Clearing-House must wait for our development regarding support of further protocols.

Questions to be answered:
What protocols are supported by the Clearing-House?

[Update 12.02.21]
Clearing-House uses the Trusted-Connector. Currently, when sending messages to the clearing house, an internal server error message is returned. This may be due to the infomodel-version used.

image

[Broker] Connection to the IDS-Broker

First, the Broker-Connection functionalities of the original IDS-Framework are migrated to the Unified-Lib in order to subsequently make adjustments along to the functionalities of the Interaction-Library.

[GitHub-Main] Merge v1.5 Dev-Branch in Main

The status of release version 1.5 should be merged from Dev-Branch into Main, so that Main corresponds to the status of the latest release. Ideal would be to release new versions from the Main when the Dev/Release-branch is merged into Main and tag the merge commit as new release-version. (git-flow)

[Core] Orbiter-DAPS: Persist Certificate?

TODO taken from the OrbiterTokenManagerService class.
//TODO persist certificate, keypair and id (or decide if we even need them inside the library)

The Orbiter DAPS gives us the certificate for the connector automated instead of having it next to the library as a file. Should we persist it or not?

[Clearinghouse] Support for querying the ClearingHouse

Sending logs to the clearing house seems to work.

Querying the ClearingHouse as another functionality still seems to return an internal server error as response, should be clarified.

Taken from Clearing-Module:
//TODO QueryMessages provoke HTTP 500 at clearing house

[Messaging] Connector-Developer: no more building multipart messages

Currently, the connector developer typically builds a multipart-body-message with header and payload to pass the multipart-body on to us with the recipient info.

Since we will soon be supporting different transmission protocols, a general approach is needed here to become protocol-independent at this point for the connector-developer.

[Messaging] Deserialize incoming message

Currently, for implemented connector message-handlers, the complete payload input-stream of an incoming message is passed to the connector(-developer). Thus the Unified-Lib is independent of the IDS-MessageType of the incoming message, however, the connector developer must then deserialize the incoming message for the corresponding message type in the implementation of the connector instead.

It would be desirable to perform all serialization and deserialization in the Unified-Lib instead of leaving this to the connector developer.

[Core] "ids:trustStore" in configmodel.json should be optional

As said in the title, "ids:trustStore" is redundant in some scenarios:
Certificates for server-keys and CAroot are often provided as *.pem files. When using docker, a automated keytool call like

keytool -import -storepass changeit -noprompt -trustcacerts -alias mkcert_development_ca -file $JAVA_HOME/lib/security/mkCertRootCA.pem -keystore cacerts

will integrate a rootCA for dev very nicely. Because the Framework is already able to read certs form the default store, the configmodel.json won't need a second truststore.

My current workaround: I've configured a truststore with a single dummy cert...

[Messaging] Remove untested MQTT methods

At the moment, the Unified-Lib roadmap includes support for Multipart, IDS-LDP/REST and IDSCPv2.
The untested MQTT-methods will be removed for now and rebuilt as needed in the further future.

Validate DAT against Trusted Issuers

In the current Interaction Libary the issuer of the JWT is chacked against a list of trusted issuers that are stored in the AppConfig file.
The IDS Messaging Service should access these values from the ConfigManager.

Code Refactoring

The code style needs to be rechecked again, after the further development in the meantime, against the current code-style state of the other IDSA repos around the DSC.

[Project Software-Artifact Name] What was our name again?

We need a name for the software artifact, what we are developing in the context of the Unified-Library project (IDS-Framework + Interaction-Library) and this repo itself.

Proposals so far:

  • Joined/Combined/Merged IDS Framework
  • IDS-Messaging-Services
  • IDS-Messaging-SDK
  • IDS-SDK
  • SIML (Standard Info Model Lib)
  • SIMU (Standard Info Model Utility)
  • IDS Library
  • IDS Framework

Currently, IDS-SDK seems to be quite popular.

We will probably tie this up in the next few meetings.

Other suggestions of course welcome at any time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.