DataspaceConnector project

Overview

Project

The Data Appliance GX project is intended as a proving ground for GAIA-X and data transfer techologies.

Getting Started

The project requires JDK 11+. To get started:

git clone https://github.com/microsoft/Data-Appliance-GX

cd Data-Appliance-GX

./gradlew clean shadowJar

To launch the runtime and client from the root build directory, respectively:

java -jar runtime/build/libs/edc-runtime.jar

java -jar client/build/libs/edc-client.jar

Build Profiles

The runtime can be configured with custom modules be enabling various build profiles.

By default, no vault is configured. To build with the file system vault, enable the security profile:

./gradlew -Dsecurity.type=fs clean shadowJar

The runtime can then be started from the root clone directory using:

java -Dedc.vault=secrets/edc-vault.properties -Dedc.keystore=secrets/edc-test-keystore.jks -Dedc.keystore.password=test123 -jar runtime/build/libs/edc-runtime.jar

Note the secrets directory referenced above is configured to be ignored. A test key store and vault must be added (or the launch command modified to point to different locations). Also, set the keystore password accordingly.

A word on launchers

The code base is organized in many different modules, some of which are grouped together using so-called "feature bundles". For example, accessing IDS requires a total of 4 modules, which are grouped together in the ids feature bundle. So developers wanting to use that feature only need to reference ids instead all of the 4 modules individually. This allows for a flexible and easy composition of the runtime. We'll call those compositions " launchers".

A distribution basically is a Gradle module that - in its simplest form - consists only of a build.gradle.kts file which declares its dependencies and how the distribution is assembled, e.g. in a *.jar file, as a native binary, as docker image etc. It may also contain further assets like configuration files. An example of this is shown in the launchers/demo folder.

Building and running with Docker

We suggest that all docker interaction be done with a Gradle plugin, because it makes it very easy to encapsulate complex docker commands. An example of its usage can be seen in launchers/demo/build.gradle.kts

The docker image is built with

./gradlew clean buildDemo

which will assemble a JAR file that contains all required modules for the "Demo" configuration (i.e. file-based config and vaults). It will also generate a Dockerfile in build/docker and build an image based upon it.

The container can then be built and started with

./gradlew startDemo

which will launch a docker container based on the previously built image.

Setup Azure resources

NB: This section is currently out-of-date and will be revised shortly

A working connector instance will use several resources on Azure, all of which can be easily deployed using a so-called "genesis script" located at ./scripts/genesis.sh. Most Azure resources are grouped together in so-called "resource groups" which makes management quite easy. The Genesis Script will take care of provisioning the most essential resources and put them in a resource group:

  • KeyVault
  • Blob Store Account
  • an AKS cluster
  • two app registrations / service principals

App registrations are used to authenticate apps against Azure AD and are secured with certificates, so before provisioning any resources, the Genesis Script will generate a certificate (interactively) and upload it to the app registrations.

The script requires Azure CLI (az) and jq (a JSON processor) and you need to be logged in to Azure CLI. Once that's done, simply cd scripts and invoke

./genesis.sh <optional-prefix>

the <optional-prefix> is not necessary, but if specified it should be a string without special characters, as it is used as resource suffix in the Azure resources. If omitted, the current Posix timestamp is used.

After having completed its work, which could take >10mins, the scripts can automatically cleanup resources, please observe the cli output.

Note that the Genesis Script does not deploy any applications such as Nifi, this is handled in a second stage!

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines . Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Comments
  • Architecture - Essential -

    Architecture - Essential - "at-least-once" TransferProcessListener

    Triggering custom logic on TransferProcess state changes requires registering a TransferProcessListener. However listeners are not guaranteed to be called, e.g. if the instance crashes after persisting the state change but before invoking the listener. Custom logic in the listener can be crucial for the functioning of client applications, thus EDC needs to guarantee that these are called before advancing a transfer process to the next state.   Suggestion for improvements:

    • Add additional TransferProcess states to indicate that a TP has advanced state but listeners have not yet been called.
    • Add processing for these new states in the TransferProcessManager, ensuring that listeners are always called.
    • (Optional) Consider introducing a retry strategy for failing listeners (#416 might be a general solution for addressing this)
    • (Optional) Consider executing listeners in parallel to improve performance
    opened by marcgs 20
  • Replace MetadataStore with AssetIndex

    Replace MetadataStore with AssetIndex

    Ref #118 The PR is still draft because there are some points I need help with:

    • DataEntry could be completely replaced by Asset and deleted from the codebase?
    • a mapping between a List<Policy> and AssetSelectorExpression is still missing (see QueryEngineImpl), how can we convert them?
    opened by ndr-brt 20
  • Run locally CosmosDB tests

    Run locally CosmosDB tests

    Fix #360

    Context

    Currently, it's not possible to run the CosmosDB integration tests locally, making working to that code hard and error prone.

    What brings

    I explored the CosmosDB Emulator tool, with this PR will be possible to run the CosmosDB tests by running a local instance of CosmosDB emulator as explained in the azure-test readme.

    The scope was to make those running also on Actions, but seems like there are some performance problems, as the tests start to fail after some time (e.g. https://github.com/ndr-brt/DataSpaceConnector/runs/5277051610), so for the moment I think the improvement is enough.

    opened by ndr-brt 18
  • Specification of the Data Management API

    Specification of the Data Management API

    This Issue deals with creating a specification of the Data Management API based on the design considerations and recommendations stated in the test listed below ~~I didn't want to paste directly here, to avoid walls of text.~~

    Core aspects

    1. Endpoints vs Use cases

    Following the REST principles, every endpoint should modify the state of an object rather than trigger behaviour. For example, to initiate a data transfer the endpoints should be POST http://your-connector.com/api/v1/transfer/transfer-request rather than POST http://your-connector.com/api/v1/transfer/start-transfer Consequently, uses cases (as outlined below) might not have a 1-to-1 translation into API endpoints, they might even involve several consecutive API calls.

    2. delete is only possible sometimes

    objects may only be deleted if they are not involved in ongoing contracts, etc. Updating is (initially) done through "delete-and-recreate"

    3. support pagination

    every GET endpoint should support pagination, sorting and filtering

    4. Desired outcome

    We should have a (or several) YAML files containing the specification of each of the endpoints. In addition, we should have Controller classes that implement that spec, even if most of them are just stubs returning dummy data for the immediate future. So, by referencing the data-management-BOM, a controller implicitly exposes the entire API. Note: we will NOT consider the standalone deployment scenario, especially the communication channel, in this issue

    5. Module structure

    Every domain object should be reflected in the module

    extensions/api/data-management/asset                      //includes DataAddress
    extensions/api/data-management/contractdefinition
    extensions/api/data-management/contractnegotiation
    extensions/api/data-management/transferprocess
    extensions/api/data-management/policy                      //includes PolicyDefinition
    

    a BOM should exist for the entire API.

    Full proposal

    Cross-cutting aspects

    Terminology

    • domain object: (or "business object") an object such as Asset, DataAddress, ContractDefinition etc. May contain potentially internal information.
    • entity: separate database-specific object, that is used to persist a domain object. May differ from business objects and may contain database-specific information, such as IDs, foreign keys. For example, the ContractAgreementEntity would not contain the entire Asset, but merely maintain a foreign key to an AssetEntity. Entities are never to be passed outside the persistence layer.
    • DTO: public representation of a domain object that is specific to a use case. Should contain only the information that is necessary. Different use cases may warrant different DTOs for the same business object.

    Object Lifecycle

    Most domain objects go through a lifecycle where transitions might or might not be possible at a given time. Or, certain transitions may trigger subsequent actions, which could potentially be long-running or even involve human interaction. For example, decommissioning an Asset that is involved in a ContractAgreement might cause the contract to expire, or not be possible at all. A similar situation exists for ContractDefinitions.

    We'll assume that domain objects have some sort of state associated with them, regardless whether that is implemented using an actual state field, or a computed state, or anything else.

    We propose the following definition of states domain objects can make use of:

    • INITIAL: object is not included in any communication with other dataspace participants. This state is optional, API clients may choose to "publish immediately".
    • PUBLISHED: object is (potentially) visible to other participants.
    • DEPRECATED: object is only available to existing relations, e.g. an Asset is not included in new contract offers anymore.
    • DECOMMISSIONED: object is not in use anymore (i.e. not included in any active contract agreement or offer)
    • DELETED: object is not visible to clients anymore, just exists for traceability reasons.

    Decommissioning: as a starting point let's go with option a) as it is simpler to implement. If necessary, we can change this later.

    Authentication

    This solely deals with access to the API and is completely separate from the IdentityService and connector-to-connector authentication. There should be a thin authentication-spi extension that contains an AuthenticationService, which could then be backed by an implementation extension LDAP, AAD, Apache Shiro, Keycloak, OAuth2/OIDC, etc. In a first PoC it could be sufficient to have an API-Key-based authentication implementation.

    Updating and deleting items

    Modifying certain domain objects could potentially have complicated and legally relevant consequences, therefor there is no UPDATE API for those domain objects. There will be DELETE endpoints, which return an error when the item in question cannot be deleted, e.g. when an Asset is already involved in a ContractAgreement.

    Consequently, whether or not an item can be "updated" (i.e. deleted and recreated) depends on its state, which could be an explicit field on the domain object, or it could be a computed property, e.g. by checking whether an Asset is involved in a ContractAgreement or ContractNegotiation.

    That said, creating new items is always possible, but they will have a different identity.

    API layer

    In order to decouple the API from the internal domain objects and entities there should be a dedicated API layer, that contains:

    • domain objects: those are the data objects we have now, e.g. Asset, ContractAgreement, etc. They are not database entities!
    • DTOs: specific to a use case. should contain as little information as possible (e.g. ID instead of full object). Cannot contain internal information.
    • transformers: convert DTOs into the corresponding domain objects (Asset, DataAddress, ContractDefinition, etc.) and back.
    • services: must model a particular use case. For example, there should be an AssetService, that has methods uploadAsset(), publishAsset(), and rescindAsset(). Such a service would then maintain references to the AssetIndex, the ContractDefinitionStore, etc and be responsible for transactional consistency.
    • Pagination/Sorting: all Read endpoints must support filtering, sorting and pagination. Even though cursor-based pagination is widely used nowadays, it is mostly used for real-time applications (things like Facebook) where data is expected to change constantly. Here, we'll deal with mostly static data, so we can reap the benefits of offset pagination as it is easier to implement. A Pagination object could like this:
      class PagingSpec {
        int getOffset(); // default: 0
        int getLimit(); // default: 50
        @Nullable String getSortCriteria(); // refers to one particular field of the object
        @Nullable String getFilterExpression();
        SortOrder getSortOrder(); // can be ASC or DESC
      }
      

      This will greatly improve usability and performance in UI views such as tables and lists, and will reduce stress on the involved systems.

    On a related note, the entities that we have now, e.g. Asset, ContractDefinition will most certainly differ from the actual database entities. For example, a ContractDefinition would not contain the Asset as nested object, but would maintain a foreign key to it. Thus, the way domain objects are modeled may/will differ from how database entities are modeled.

    Assets + DataAddress

    Create

    • request must contain the Asset and the DataAddress, both stored transactionally. The DataAddress may initially be an empty skeleton.
    • DataLoader can be used to do that.

    Read

    • GET endpoints for Asset and DataAddress should exist.
    • use the AssetIndex with a SELECT_ALL query
    • UI implementations could create filter expressions -> use Criterion and add pagination

    Update

    • Updating the DataAddress is done through a separate endpoint. Copy/clone is not needed, DataAddresses can just be modified as they are an internal concept and do not modify the characteristics of an Asset.
    • Assets can not be updated.

    Delete

    • Deleting Assets is only possible while they are not included in an ongoing ContractNegotation or ContractAgreement. The request will fail otherwise.
    • If an Asset is still in this manner "unpublished", deleting it is straight-forward.
    • again, a Danger Zone could be implemented to blindly delete an Asset without looking left or right.

    Danger Zone

    As a convenience feature we could implement a danger zone, where deleting assets is possible but no validation is performed, which could put the application's data backend in an invalid or inconsistent state.

    Policies + PolicyTemplates

    Policies are pre-loaded as so-called PolicyTemplates and are stored in a PolicyTemplateStore. Upon instantiation of a policy e.g. in the ContractDefinition, the template is copied into the ContractDefinition with a new policy ID.

    The reason we propose to actually copy the policy, as opposed to reference it, is that copying them would clutter the Read endpoint with a potentially high number of almost identical policies. Assuming that this endpoint will be used to select policies for the creation of ContractDefinition, it is simply a matter of usability. Furthermore, a ContractDefinition is legally binding and should remain in place, even if the backing policy changes at some point.

    In order to bring this feature back in line with other domain endpoints, there could be an additional PolicyStore, where all instantiated policies are stored, so as not to persist them embedded in a ContractDefinitions.

    Create

    no special considerations. Copies a PolicyTemplate into the PolicyStore effectively "instantiating" it.

    Update

    PolicyTemplates can simply be updated using copy/clone semantics, without special considerations. Instantiated Policy objects are immutable.

    Delete

    PolicyTemplates can simply be decommissioned (using the lifecycle process), without special considerations.

    ContractDefinitions

    Create

    • request must contain ID of contractPolicy and accessPolicy (cf. previous section)
    • Policies must pre-exist in a PolicyTemplateStore and upon creating the ContractDefinition the policy is simply copied.
    • Those copies have different PolicyId values, so they are technically different policies, there is no way to backreference the PolicyTemplate.

    Read

    • the GET endpoint should accept an optional paging object
    • if we want to re-use the ContractDefinitionStore, the interface needs to be amended to accept those parameters

    Update

    no update, just "create-new"

    Delete

    Deleting a ContractNegotation is only possible as long as there is no ContractAgreement based off of it. There is no way of knowing whether a ContractDefinition is involved in an ongoing ContractNegotation, so deleting it will cause the CN to fail. ``

    Lifecycle aspects Decommissioning: The ContractDefinitionStore cannot return decommissioned or deprecated definitions.

    ContractNegotiations

    Read

    no special considerations, filtering and pagination must be implemented.

    Update

    not possible through the API.

    Delete

    not possible throught the API.

    Cancel

    There could be a CANCEL endpoint which would effectively move it to a (new) CANCELLING/CANCELLED state.

    Decline

    see Cancel, would move it to the DECLINING/DECLINED state.

    Q: Should the ContractNegotiationManager use copy/clone semantics as well?upd

    ContractOffers

    Create/Read/Update/Delete

    ContractOffers are not domain objects in the conventional sense, they are generated on the fly for every participant, so we cannot directly "touch" those. They are protocol details rather than domain objects. Rescinding an offer would have to be done by updating the ContractDefinition. To browse other participants' offerings, see use case "Browse Catalog"

    TransferProcesses

    Create/Update/Delete

    not possible

    Read

    no special considerations, filtering and paging must be implemented.

    Cancel

    Since there is no delete operation, the CANCEL endpoint would effectively send a TransferProcess to a CANCELLED state in the next tick-over. The CommandQueue must be used for this.

    Note: there will be other APIs pertaining to TransferProcesses where they can be updated. Necessary endpoints would be:

    • PROVISIONING/DEPROVISIONING done (= state changes, could be done with status checkers that listen on a webhook)
    • USAGE POLICY expired
    • DELETION confirmed
    • DATA HAS CHANGED (sending notifications to EDC, e.g. when an AI model has improved)
    • The API of backend data services needs to be done as well.

    Use Cases

    • Upload an Asset
    • Publish Asset
    • Rescind/unpublish an Asset
    • Browse Catalog
    • Request access to an Asset (i.e. start negotiation)
    • Cancel request (= decline or cancel negotiation)
    • Transfer an asset, potentially enter data destination on-the-fly
    • Cancel data transfer, up until it's actually in IN_PROGRESS
    • Deprovision data transfer

    Linked Issues - Preliminary work:

    • [x] #583
    • [x] #584
    • [x] #593
    • [x] #586

    Linked Issues - endpoints

    • [x] #587
    • [x] #588
    • [x] #589
    • [x] #590
    • [x] #591

    This Issue replaces/supersedes #476 [EDIT 1] kicked "copy/clone" [EDIT 2] corrected some whitespaces [EDIT 3] update description and changed "TL;DR" -> "Core aspects", added sub-issues

    documentation core feature api 
    opened by paullatzelsperger 17
  • Feature: SQL contract definition

    Feature: SQL contract definition

    What this PR changes/adds

    Adds an implementation for ContractDefinitionStore, ContractDefinitionLoader via SQL based on a ContractDefinitionSchema.

    Why it does that

    To allow for SQL persistence of Contract Definitions.

    Further notes

    none

    Linked Issue(s)

    Closes #460 #461

    Brendan Cronin [email protected], Daimler TSS GmbH, legal info/Impressum

    opened by bcronin90 16
  • InMemoryCacheQueryAdapterRegistry and fcc-query-adapter-registry-memory are misleadingly named

    InMemoryCacheQueryAdapterRegistry and fcc-query-adapter-registry-memory are misleadingly named

    Hello everyone,

    I found something strange in the fcc memory store extensions and I assume it hints to some kind of implementation error. The two extensions in question are

    • fcc-store-memory
    • fcc-query-adapter-registry-memory

    The fcc-store-memory extension has a storage class that implements the FederatedCacheStore interface. It looks like this:

    public class InMemoryFederatedCacheStore implements FederatedCacheStore {
            // content
    }
    

    The fcc-query-adapter-registry-memory extension has a storage class that stores implementations of the CacheQueryAdapter interface. The default implementation of this interface is the DefaultCacheQueryAdapter and looks like this:

    public class DefaultCacheQueryAdapter implements CacheQueryAdapter {
    
        private final FederatedCacheStore store;
    
        public DefaultCacheQueryAdapter(FederatedCacheStore store) {
            this.store = store;
        }
      
       // content
    }
    

    I assume it's an implementation error that one stored class contains another store.

    opened by DominikPinsel 16
  • Cannot request catalog from connector with 1000+ Assets

    Cannot request catalog from connector with 1000+ Assets

    Bug Report

    Describe the Bug

    When the connector has more than 1000 assets it returns a 503 for catalog requests.

    Expected Behavior

    There should not be something like "too many assets to send out contract offers".

    Observed Behavior

    Steps to Reproduce

    Steps to reproduce the behavior:

    1. Create 1000 Assets with one contract offer per Asset
    2. Request Catalog

    Context Information

    Detailed Description

    Possible Implementation

    Dominik Pinsel [email protected], Mercedes-Benz Tech Innovation GmbH, legal info/Impressum

    bug 
    opened by DominikPinsel 15
  • Automatic swagger generation

    Automatic swagger generation

    This PR adds two Gradle tasks to automatically scan the code base and generate a *.yaml specification:

    ./gradlew clean resolve
    ./gradlew mergeOpenApiFiles
    

    Unfortunately I'm not savvy enough in Gradle and Kotlin to have those two tasks somehow depend on each other, so we need to execute them separately. Also updated docs.

    opened by paullatzelsperger 14
  • Use Serializer instead of ObjectMapper for Infomodel objects

    Use Serializer instead of ObjectMapper for Infomodel objects

    In the IDS modules the class de.fraunhofer.iais.eis.ids.jsonld.Serializer should be used to map Infomodel objects to and from JSON. Currently, an ObjectMapper is used to perform these operations. Thus, the required context information is missing in the JSON and it cannot be deserialized by an Infomodel serializer.

    Also, the MultipartController takes a RequestMessage as parameter, so that the header part is automatically mapped to a RequestMessage object upon request. This mapping should also be performed by the Infomodel serializer.

    opened by ronjaquensel 14
  • Feature/538 avoid negotiation loop

    Feature/538 avoid negotiation loop

    Ref #538

    This fix the referred issue introducing an INITIAL state that goes between UNSAVED and REQUESTING. However, there are still some problems, probably introduced (or, better, unearthed) by the correct evaluation of the futures.

    Before, for every state there was a single intermediate state:

    • REQUESTED -> REQUESTING
    • PROVIDER_OFFERED -> PROVIDER_OFFERING
    • ...

    But now we would need another intermediate states, like: INITIAL: the negotiation is initialized, and it's retrievable by the state machine loop for being processed REQUESTING: the negotiation has been retrieved from the store and sent to the provider, it should be not retrieved anymore by the state machine loop, otherwise it would be sent multiple times REQUESTED: the request has been successfully sent to the provider.

    To better describe these async transitions there could be 3 states for every "real state":

    • TO_BE_xxxED
    • xxxING
    • xxxED (replace xxx with, e.g. "REQUEST", "PROVIDER_OFFER", etc...)

    This 3-state pattern need to be implemented for every state transition, otherwise there will be multiple and uncontrollable state changes.

    I ask thoughts to those who worked on the state machines @jimmarino @paullatzelsperger @juliapampus @ronjaquensel , somebody else?

    opened by ndr-brt 13
  • ContractService and Policy Integration

    ContractService and Policy Integration

    Overview

    We need to support policy-based data contracts in the runtime. This issue will outline the work required to achieve this functionality in the EDC.

    Policies are used for two purposes:

    1. To define access rights for 1..N Assets
    2. To define usage requirements for 1..N Assets

    For example, to restrict an asset to "gold partners" and require users to store the asset data in a geographic region, two policy Permissions may be used:

    • Permission: Partner=GOLD
    • Permission: Region=EU

    A policy associated with an asset is evaluated against the claims (e.g. verifiable credentials) and attributes of a ParticipantAgent. If the claims and attributes satisfy the policy, a ParticipantAgent will be granted access to the asset.

    Participant Agent

    A ParticipantAgent is a connector system running on behalf of a dataspace Participant. A ParticipantAgent is not the same as a dataspace Participant since the former may have claims and attributes that are distinct from the latter. For example, the Acme organization may have connector systems deployed in different geographical regions. While Acme may possess the claim/attribute Partner=GOLD, only the connector running in the EU will have the claim Region=EU.

    A ParticipantAgent is constructed by the ParticipantAgentService based on the ClaimsToken associated with the request.

    Claims and Attributes

    When a ParticipantAgent is constructed, its claims derive from verifiable credentials; attributes are key/value pairs that are decorated by extension(s) in the provider runtime. For example, Partner=GOLD may be an attribute added to the ParticipantAgent by an extension that performs a lookup in a back-end system using the identity associated with the ClaimsToken.

    Contract Offers

    A ContractOffer defines the policy that is attached to a set of assets. The relationship between a ContractOffer and an asset is a multiplicity: a ContractOffer may be attached to multiple assets and an asset may have multiple ContractOffers attached to it. Policy attachment is the process of associating a policy with 1..N assets; this is performed using an AssetSelectorExpression. The latter are serializable representations of an asset grouping.

    ContractOfferFramework and ContractDefinition

    A ContractOfferFramework is an extensible service that returns the set of ContractDefinitionss a ParticipantAgent qualifies for. In business terms, a ContractDefinition is the terms of use associated with one or more assets a ParticipantAgent has access to. It may be based on an existing business relationship between the data provider and data requester, or it may be ad-hoc terms constructed by the data provider based on automated rules.

    A ContractDefinition contains one Policy that encapsulates the usage requirements and an AssetSelectorExpression.

    ContractOfferService

    The ContractOfferService receives a ContractOfferQuery from a client and delegates to the ParticipantAgentService and then requests the set of ContractDefinitions for a ParticipantAgent from the ContractOfferFramework. It takes the results and queries the AssetIndex for matching assets. Each ContractDefinition is combined with the returned assets to construct contract offers.

    Query Criterion

    The ContractOfferQuery may contain a collection of Criterion that narrow the scope of assets a client connector is interested in. For example, a client may query assets belonging to a particular category or a specific set of assets using their ids. The Criterion is passed to the AssetIndex along with the AssetSelector.

    ContractOfferFramework Implementations

    The default ContractOfferFramework implementation will return an empty set of ContractOffers. This implementation can be replaced by a custom one or the sample implementation.

    The sample ContractOfferFramework implementation will offer more capabilities. It will take a set of ContractDescriptors (this is just a working term; the name is not finalized) that will contain two Policy instances, access policy and usage policy. The reason for the separation is that access policy should not be advertised to clients (e.g. Partner = GOLD or Partner = PLATINUM). The implementation will invoke the Policy Engine, passing it the union of the access and usage policies for evaluation against the ParticipantAgent. When a policy union is satisfied, the associated ContractDescriptor will be returned as a ContractDefinition. The ContractDefinition will only contain the usage policies.

    It is intended that the sample ContractOfferFramework use the DataLoader to register ContractDescriptors. The DataLoader will be described in a separate issue.

    PolicyEngine

    The PolicyEngine is a runtime service that performs policy evaluation. Policy functions contributed to the runtime as extensions can be registered with the engine. These functions will be invoked at specific points in the evaluation process. For example, determining if a ParticipantAgent has an attribute Partner=GOLD. Policy functions can act as a Policy Information Point (PIP) common to many policy systems.

    The PolicyEngine will construct and use a PolicyEvaluator.

    Catalog Query Engine

    The catalog QueryEngine will use the ContractOfferService infrastructure.

    PR Descriptions

    Part 1: Refactor ContractService and ContractOfferFramework interfaces

    The ContractOfferService and ContractOfferFramework interfaces will be refactored to implement the approach detailed in this document. This will involve removal of the ContractTemplate and reorganization of functionality by placing it in the ContractService. This refactoring will decouple the ContractOfferFramework from assets (the latter will only refer to AssetSelectorExpressions). Criterion will also be added to the input for the ContractOfferService but not passed to the AssetIndex.

    Part 2: Policy Engine implementation and working ContractDescriptors

    The PolicyEngine will be implemented and integrated into the sample ContractOfferFramework. A mechanism for loading ContractDescriptors will also be provided, along with test descriptors that match on publicly available data and Partner=GOLD.

    Part 3: Catalog and AssetIndex integration

    The AssetIndex will be updated to take additional Criterion passed to the ContractOfferService. Since Criterion is now a general type, it will be moved from the asset package to its own package.

    The Catalog subsystem (QueryEngineImpl) will be integrated with the ContractService.

    Related Work Items: Refactor Criterion

    In a future PR, we may want to refactor the Criterion type to allow for OR conditions. This will require the introduction of an expression concept that can group multiple Criterion. Note the goal should NOT be to create a generalized query language as that can lead to an attack vector in the runtime. At most, simple AND and OR conditions should be supported.

    Related Work Items: DataLoader

    We will require a generalized framework for loading data into a connector system. This loader must support multiple data types through extensibility (e.g. assets and their associated data, contract descriptors, etc.), high-volume batch processing, and multiple ingress methods. For example, the loader may be invoked from the command line and fed a file, from a REST API, or as an embedded SDK from a messaging system sink.

    The loader should be provided in a set of separate PRs.

    core feature 
    opened by jimmarino 13
  • build(deps): bump edc-versions from 0.0.1-SNAPSHOT to 0.0.1-20221229-SNAPSHOT

    build(deps): bump edc-versions from 0.0.1-SNAPSHOT to 0.0.1-20221229-SNAPSHOT

    Bumps edc-versions from 0.0.1-SNAPSHOT to 0.0.1-20221229-SNAPSHOT.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 2
  • IDS: make the dispatcher and endpoint independent of other services

    IDS: make the dispatcher and endpoint independent of other services

    Feature Request

    The ids-api-multipart-dispatcher-v1 and ids-api-multipart-endpoint-v1 modules should be usable independently of other services.

    Currently when using only those modules, a CatalogOfferResolver is required by the IdsCoreServicesExtension, which is pulled in through a transitive dependency of the dispatcher module.

    Which Areas Would Be Affected?

    IDS

    Why Is the Feature Desired?

    Some runtimes, for example a standalone catalog runtime, need IDS capabilities for fetching catalogs, but do not need contract negotiation or offer resolution capabilities.

    Solution Proposal

    Move the registration of the DynamicAttributeTokenService and the IdsTransformerRegistry out into a slim new modules, effectively splitting the ids-core module into two modules:

    • ids-base: (the new one) provides the DynamicAttributeTokenService and the IdsTransformerRegistry
    • ids-core: provides opinionated services like the CatalogService and the ConnectorService
    enhancement core feature 
    opened by paullatzelsperger 0
  • feat(dataPlaneS3): adds support for vault on data source address

    feat(dataPlaneS3): adds support for vault on data source address

    What this PR changes/adds

    Adds the support for key and secret from the vault

    Why it does that

    security improvement

    Linked Issue(s)

    Closes #2364

    Checklist

    • [x] added appropriate tests?
    • [x] performed checkstyle check locally?
    • [ ] added/updated copyright headers?
    • [ ] documented public classes/methods?
    • [ ] added/updated relevant documentation?
    • [x] assigned appropriate label? (exclude from changelog with label no-changelog)
    • [x] formatted title correctly? (take a look at the CONTRIBUTING and Etiquette for pull requests for details)
    enhancement dpf 
    opened by wolf4ood 1
  • fix: Fix `baseUrl` handling in `HttpRequestParams`

    fix: Fix `baseUrl` handling in `HttpRequestParams`

    What this PR changes/adds

    Use OkHttp API to build the URL in HttpRequestParams

    Why it does that

    URL was previously built manually, which could lead to issues in case wherein the provided baseUrl already contains path segments and/or request params.

    Linked Issue(s)

    Closes #2367

    Checklist

    • [ ] added appropriate tests?
    • [ ] performed checkstyle check locally?
    • [ ] added/updated copyright headers?
    • [ ] documented public classes/methods?
    • [ ] added/updated relevant documentation?
    • [ ] assigned appropriate label? (exclude from changelog with label no-changelog)
    • [ ] formatted title correctly? (take a look at the CONTRIBUTING and Etiquette for pull requests for details)
    bug 
    opened by bscholtes1A 0
  • build(deps): bump BouncyCastle to 1.72 Jdk18on

    build(deps): bump BouncyCastle to 1.72 Jdk18on

    What this PR changes/adds

    Bumps BouncyCastle to 1.72 Jdk18on

    Why it does that

    dependency update

    Checklist

    • [ ] added appropriate tests?
    • [ ] performed checkstyle check locally?
    • [ ] added/updated copyright headers?
    • [ ] documented public classes/methods?
    • [ ] added/updated relevant documentation?
    • [x] assigned appropriate label? (exclude from changelog with label no-changelog)
    • [x] formatted title correctly? (take a look at the CONTRIBUTING and Etiquette for pull requests for details)
    dependencies 
    opened by ndr-brt 0
  • refactor: improve `Event` hierarchy

    refactor: improve `Event` hierarchy

    What this PR changes/adds

    provides <entity>Event base classes with proper Builder and Payload related a specific entity.

    Why it does that

    Tidy up hierarchy tree

    Further notes

    • added some missing references in verify.yaml

    Linked Issue(s)

    Closes #2375

    Checklist

    • [x] added appropriate tests?
    • [x] performed checkstyle check locally?
    • [x] added/updated copyright headers?
    • [x] documented public classes/methods?
    • [x] added/updated relevant documentation?
    • [x] assigned appropriate label? (exclude from changelog with label no-changelog)
    • [x] formatted title correctly? (take a look at the CONTRIBUTING and Etiquette for pull requests for details)
    refactoring 
    opened by ndr-brt 2
Releases(v0.0.1-milestone-7)
  • v0.0.1-milestone-7(Nov 8, 2022)

    What's Changed

    Bugfixes

    • fix: jwt-core module produces jwt-core named jar artifact by @denisneuling in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1907
    • fix: map policy properties to contract request by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1921
    • test: S3DataPlaneIntegrationTest should be annotated with AwsS3IntegrationTest by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1897
    • fix: avoid loop on initiate transfer failure by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1955
    • fix: map DataRequest properties to DataFlowRequest by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1973
    • fix(data management api): validate criteria on contract definition post method by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1989
    • fix: Add missing result check in DecentralizedIdentityService by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2005
    • fix(MultipartController): use message recipient as token audience by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2025
    • fix(BaseRuntime): adds the exception messagge in the log before exit by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2035
    • fix(CatalogApi): adds @NotNull to providerUrl param by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2037
    • fix(DataPlaneTransferSyncExtension): remove default value for publickey alias by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2045
    • fix: use IdsId as type for connector ID by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2031
    • fix: use the range to limit offers, not definitions by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2018
    • fix(transferprocessApi): add id field in DataRequestDTO by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2056
    • fix(ContractOffer): add asset not null check when building a ContractOffer by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2053
    • fix(validation): avoid policy evaluation on consumer side after agreement by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2068
    • fix(jerseyExtension): flaky test ExceptionMappersIntegrationTest by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2147
    • fix: avoid default limit 50 on catalog creation by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2168

    New Features & Improvements

    • docs: add decision record for GCS integration by @benjamin-fleischmann in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1909
    • refactor: move common modules to core/common by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1920
    • docs: add previous and next links to samples tutorial by @egekorkan in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1929
    • refactor: merge AssetLoader/AssetIndex and ContractDefinitionLoader/ContractDefinitionStore by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1922
    • refactor: Replace CountDownLatch with Awaitility by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1933
    • build(deps): bump agilepathway/label-checker from 1.2.0 to 1.2.7 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1935
    • build(deps): bump everlytic/branch-merge from 1.1.3 to 1.1.4 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1936
    • build(deps): bump openapi-generator-cli from 6.0.1 to 6.1.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1937
    • fix(docs): change broken link in styleguide.md by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1946
    • refactor: clean up gradle dependencies in samples by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1945
    • feat(Event Frame Work): add intermediate superclass for PolicyDefinition Events hierarchy by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1915
    • feat(test): harmonize AssetIndex test to use a common test specification by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1944
    • feat(test): harmonize ContractDefinitionStore tests to use a common te… by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1950
    • feat(test): refactor all PolicyDefinitionStore implementors tests by using a base class by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1959
    • feat(Event Frame Work): add intermediate superclass for ContractDefinition Events hierarchy by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1911
    • feat(Event Frame Work): add intermediate superclass for ContractNegotiation Events hierarchy by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1913
    • feat: policy structure review by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1968
    • test: enable integration tests against real S3 (fixes #1899) by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1951
    • feat(test): introduced a base class for all ContractNegotiationStore by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1952
    • feat: avoid log azure vault by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1963
    • refactor: default providers by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1974
    • refactor: remove inheritance for multipart senders by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1919
    • feat(catalog): make FederatedCatalogNode filtering extensible by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1980
    • feat(store): remove cache on CosmosPolicyDefinitionStore by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1976
    • feat(store): remove cache on CosmosContractDefinitionStore by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1969
    • refactor: remove nimbus dependency from jwt-spi by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1987
    • chore: bump jetty version to 11.0.12 by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1993
    • chore: bump aws-sdk version to 2.17.278 by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1995
    • chore: bump swagger version to 2.2.2 by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1996
    • docs: add decision record about IDS filtering by @maciejkizlich-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1983
    • refactor: switches EDC over to using the runtime-metamodel library by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2002
    • feat(test): introduce a base class for all TransferProcessStore by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1982
    • feat: add toBuilder for resource definitions by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1992
    • build(deps): bump actions/stale from 5 to 6 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2013
    • build(deps): bump openapi-generator-cli from 6.1.0 to 6.2.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2014
    • refactor: replace fakes with mocks by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2011
    • feat: OAuth2 endpoint audience by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2000
    • feat(store): implements sorting in Postgres stores by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2004
    • feat(store): implements array querying in Cosmos store by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2003
    • refactor: move duplicated code to ids-core by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2016
    • feat(ServiceExtensionContext): freeze the ServiceExtensionContext before the prepare phase by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2023
    • feat(DataManagementApi): returns id in Assest, Policy and Contract de… by @git-masoud in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2012
    • docs: add DR for SQL Query Streaming by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2034
    • feat(build): add/apply autodoc plugin by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2028
    • docs(Event Framework): updating and extending doc by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1971
    • feat: IDS catalog request filtering by @maciejkizlich-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2015
    • chore(Documentation): apply all annotations for autodoc by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2040
    • chore(ContractOffer): remove field assetId by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2046
    • feat(DataSourceRegistry): provides a default impl for DataSourceRegistry by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2047
    • build(deps): bump azure and aws dependency version to the last releases by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2055
    • build(deps): bump json-unit from 2.35.0 to 2.36.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2050
    • build(deps): bump json-unit-assertj from 2.35.0 to 2.36.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2048
    • build(deps): bump json-unit-json-path from 2.35.0 to 2.36.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2049
    • build(deps): bump json-unit from 2.35.0 to 2.36.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2066
    • docs: document BOM usages by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2061
    • chore: set output dir of the autodoc plugin by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2065
    • feat: Stream over ResultSet on sql queries by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2041
    • feat(api): add a POST endpoint to request the catalog by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2060
    • chore: update multiple GH action versions by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2078
    • chore(ids): remove IdsDescriptorService by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2080
    • feat(gcs): add provisioner for GoogleCloudStorage by @benjamin-fleischmann in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2038
    • chore: move ModuleNames plugin out, adapt build source by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2076
    • fix(tests): change IntegrationTest annotation target from TYPE to ANNOTATION_TYPE by @Alexwilfriedo in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2086
    • feat(api): add POST endpoint to all APIs by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2084
    • feat(build): adds manifest files as maven artifacts by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2071
    • refactor(iam): remove unused dummy-credentials-verifier by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2095
    • docs: add decision record for naming conventions by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2067
    • chore(deps): untangle dependencies by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2098
    • chore: use TestSummary plugin from repositories by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2079
    • refactor(ContractNegotiationStore): remove ContractNegotiationStore.getAgreementsForDefinitionId by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2096
    • refactor(ContractValidationService): rename interface methods + docs by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2102
    • feat(DataPlaneInstanceStore): add SQL store implementation by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2087
    • build(deps): bump jackson dependency version to 2.14.0-rc2 by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2111
    • refactor!: align/clean up module names and artifact IDs by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2100
    • refactor: use @Setting and @SettingContext by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2097
    • chore: rename ContractOfferService to ContractOfferResolver by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2113
    • feat(dataplane gcs): add dataplane for Google Cloud Storage by @git-masoud in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2112
    • docs: add decision record about EDC version catalogs by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2121
    • refactor(SqlStore): create a base class for all SQL stores by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2120
    • fix: add more logging to data-plane extensions (fixes #2122) by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2123
    • docs: add description about rule of PR title (fixes #2124) by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2125
    • feat: make default_iteration_wait on state_machines configurable by @diegogomez-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2140
    • docs: Add ADR for creation of Trust Framework Adoption repository by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2119
    • feat(transferprocess): introduced a comunication channel from data-plane to control-plane by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2116
    • refactor!: update package names by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2127
    • build(deps): bump openapi-generator-cli from 6.2.0 to 6.2.1 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2155
    • feat(api): adds @ApiTest tag for controller integration tests by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2139
    • feat(oauth2): adds configuration of TOKEN_EXPIRATION by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2145
    • chore(README): restore logo by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2158
    • docs: correct port of the file transfer process for the data consumer (9192) by @Julian-Marco in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2153
    • feat: improve catalog request error detail by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2156
    • docs: service layer DR by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2151
    • feat: implement oauth2 provision module by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2135
    • refactor(Junit): move junit related utils to :core:common:junit by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2161
    • fix(build): fix provision-oauth2 module build after junit refactor merge by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2167
    • feat: introduce aggregate service layer by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2162
    • fix: remove usages of Apache Commons Lang by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2173
    • feat(Readme): add badges to the README by @wolf4ood in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2172
    • chore(build): change groupId to org.eclipse.edc by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2154

    New Contributors

    • @benjamin-fleischmann made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1909
    • @wolf4ood made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1922
    • @git-masoud made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2012
    • @Alexwilfriedo made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2086
    • @Julian-Marco made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/2153

    Full Changelog: https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/compare/v0.0.1-milestone-6...v0.0.1-milestone-7

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-milestone-6(Aug 29, 2022)

    What's Changed

    Bugfixes

    • fix: explicitly set default ports in tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1746
    • fix(sql): update the SQL statement to use correct data type by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1752
    • fix(sql): map contractnegotiation type by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1768
    • fix: avoid cyclic dependency by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1776
    • fix: remove logging of api key from TokenBasedAuthenticationExtension by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1788
    • fix: avoid request flood on async provisioning/deprovisioning by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1772
    • fix: Fix usage of default @Provider methods in IdentityDidCoreExtension by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1792
    • fix: Fix broken link in Policy javadoc by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1799
    • fix: resolve failure in uploading files to a presigned AWS S3 upload url by @lucian-torje-siemens in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1645
    • fix: validate offer policy equality with definition policy on negotiation by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1817
    • test: fix failure of e2e-transfer-test due to unintentional reuse of asset by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1825
    • fix: remove Faker from DataPlane integration tests by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1849
    • fix: put .complete object on S3 bucket after transfer completion by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1881
    • fix: avoid contractOffer overwrite in OfferedAssetToIdsResourceTransformer by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1891

    New Features & Improvements

    • cleanup: remove unused pre-methods from the ContractNegotiationListener by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1659
    • refactor: clean up ids-api-multipart-endpoint-v1 by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1715
    • feat: make rest api return error details on edc exceptions and validation error by default by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1729
    • fix(DataPlane): Add system test for Client Data Pull with query parameters in the request by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1731
    • refactor: delete manual interfaces for changelogs by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1728
    • feat: define custom message on jakarta validation by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1739
    • feat(catalog): simplify the FederatedCatalog by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1741
    • feat: separate unexpected from expected exceptions by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1744
    • chore(observability): Add context information to jetty metrics by @florianrusch-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1740
    • feat: introduce ids jsonld (de-)serialization library by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1706
    • feat: add https call enforcer, it can be enabled with a config setting by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1753
    • feat(api): add custom validation framework by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1756
    • docs: add decision record about create/update timestamps by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1767
    • refactor: clean up :ids-transform and :ids-spi by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1750
    • chore: make JwtUtils public by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1778
    • docs: add decision record about documentation automation by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1783
    • feat: add createdAt and updatedAt timestamps to entities by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1771
    • feat: introduce sync subscribers on EventRouter by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1782
    • build(deps): bump com.autonomousapps.dependency-analysis from 1.11.3 to 1.12.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1769
    • feat: DataEncrypter provided by extension by @DominikPinsel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1805
    • feat: split Dtos in InputDto and OutputDto for Asset and ContractDefinition by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1797
    • docs: decision record about project structure review by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1803
    • chore(Identity): remove Identity Hub from EDC by @marcgs in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1816
    • docs: fix link to JettyConfiguration in Tutorial 2 by @egekorkan in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1821
    • fix: bump jackson to 2.13.3 by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1827
    • docs: add details about DI mechanism, esp. default providers by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1820
    • feat: add Hashicorp Vault secrets backend by @bcronin90 in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1534
    • docs: Add decision record about unifying async tests by @diegogomez-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1789
    • docs: add decision record about using maven artifacts by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1818
    • feat: restructure spi by component by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1832
    • feat: do not overwrite registered mocks in tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1828
    • docs: add decision record about removing H2 by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1839
    • feat: remove h2 from all tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1841
    • feat: fluent use of Result by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1837
    • feat: add prepare() lifecycle phase to extensions by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1831
    • chore(IdsMultipartSender): use default object mapper for data reference serialization by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1790
    • feat: restructure core by component by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1842
    • feat: introduce policy definition request/response dto by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1855
    • chore: removed data-faker from all test code by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1854
    • feat: inline dataloading by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1846
    • build(deps): bump everlytic/branch-merge from 1.1.2 to 1.1.3 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1859
    • build(deps): bump agilepathway/label-checker from 1.0.113 to 1.1.2 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1858
    • build: updated swagger UI Dependency and regenerate static website by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1862
    • feat: refactor s3 client providers by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1853
    • build(deps): bump com.autonomousapps.dependency-analysis from 1.12.0 to 1.13.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1864
    • feat(Event Framework): add intermediate superclass for Asset Events by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1815
    • feat: restructure extensions by component by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1863
    • feat: oauth2: introduce CredentialsRequestAdditionalParametersProvider by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1871
    • build(deps): bump com.autonomousapps.dependency-analysis from 1.13.0 to 1.13.1 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1877
    • refactor: remove deleted modules from settings.gradle by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1880
    • feat: introduce jwt-spi and jwt-core modules by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1867
    • feat(Event Frame Work): add intermediate superclass for TransferProcess Events hierarchy by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1874
    • feat: enable s3 multipart upload by @maciejkizlich-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1876
    • refactor(docs): restructure documentation directory and framework by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1882
    • build(deps): bump agilepathway/label-checker from 1.1.2 to 1.2.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1895

    New Contributors

    • @egekorkan made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1763
    • @maciejkizlich-zf made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1876

    Full Changelog: https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/compare/v0.0.1-milestone-5...v0.0.1-milestone-6

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-milestone-5(Jul 21, 2022)

    What's Changed

    Bugfixes

    • Bugfix: change time when loaders are cleared by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1498
    • bugfix: avoid endless loops on contract negotiation sending failure by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1489
    • Bugfix: replace countdown latches with awaitility by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1506
    • Fix: do not use QuerySpec when SqlContractDefinitionStore#findAll() by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1539
    • fix: debug log output for ContractDefinition create and delete by @janpmeyer in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1597
    • fix(api): validate canonical format by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1648
    • dpf: Fix usage of NAME property in HttpDataAddressSchema by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1460
    • test: fix failure of TransferProcessEventDispatchTest (fixes #1616) by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1617
    • fix(WebDid): Add support for domain port number in Web Did by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1701
    • fix: added update stmt for DataRequest by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1710

    New Features & Improvements

    • release: Carve milestone 4 CHANGELOG by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1429
    • Feature: add validation for contract definition id #1372 by @tuncaytunc-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1407
    • Chore: removed old and unused registration service by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1440
    • Core: shared clock by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1416
    • chore: provide default transaction context by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1461
    • core: Get rid of InlineDataFlowController by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1464
    • refactor: remove ids.spi.policy by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1472
    • refactor: Removes transfer functions as they are superseded by the DPF by @jimmarino in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1482
    • refactor: remove ConnectorVersionProvider by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1470
    • core: dispatch Asset events by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1453
    • Feature: adds query to ContractDefinition by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1476
    • api: permit verbose body error message by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1479
    • Feature: add/refactor query capabilities for Asset by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1496
    • Cosmos DB: update missing field behavior by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1514
    • core: dispatch PolicyDefinition events by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1497
    • Feature: add full query support for SQL ContractDefinition store by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1508
    • Core: state machine entity base class by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1511
    • feat: Extra configuration for HttpDataSink #1480 by @lucian-torje-siemens in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1510
    • dpf: Improve and document data-plane-transfer by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1519
    • cleanup: remove run-from-junit sample module by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1546
    • build(deps): bump json-unit-assertj from 2.28.0 to 2.35.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1550
    • build(deps): bump com.autonomousapps.dependency-analysis from 1.1.0 to 1.9.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1554
    • build(deps): bump json-unit-json-path from 2.28.0 to 2.35.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1551
    • build(deps): bump picocli from 4.6.2 to 4.6.3 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1555
    • build(deps): bump json-unit from 2.28.0 to 2.35.0 by @dependabot in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1556
    • Distributed identity: JWT audience claim by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1520
    • token-auth: add vault support by @DominikPinsel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1545
    • events: add cloudevents-http extension by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1533
    • Feature: add query to SqlTransferProcessStore by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1540
    • feat(sql): add query capabilities to the SQL Policy Store by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1571
    • core: bump failsafe version to 3.2.4 by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1561
    • dpf: Harmonize logics between HttpDataSource and HttpDataSink by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1553
    • core: dispatch contractdefinition events by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1538
    • feat: enhance TypeManager to support multiple serialization contexts by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1586
    • core: dispatch TransferProcess events by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1587
    • core: dispatch ContractNegotiation events by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1609
    • cleanup: adapt logs to logging guide by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1650
    • FsVault: Add Parsers implementation in FsPrivateKeyResolver to support PrivateKeyResolver for PrivateKeyWrapper by @cpeeyush in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1696
    • feat: add check for ids message response type by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1695
    • api: define common error message payload by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1705
    • test: replace java-faker with datafaker by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1712
    • feat: additional policy scopes by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1699
    • iam: Change CredentialsVerifier contract. by @ouphi in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1702
    • feat: implement module annotation processor by @jimmarino in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1509
    • chore: update CHANGELOG for M5 by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1716

    Documentation

    • Docs: fix dead link to architecture principles page. (fixes #1477) by @iwasakims in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1478
    • docs: Document data-plane-api and small refactoring by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1579

    New Contributors

    • @iwasakims made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1478
    • @lucian-torje-siemens made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1510
    • @dependabot made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1528
    • @pkirch made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1565
    • @janpmeyer made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1597

    Full Changelog: https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/compare/milestone-4...v0.0.1-milestone-5

    Source code(tar.gz)
    Source code(zip)
  • milestone-4(Jun 8, 2022)

    This milestone release mostly deals with bugfixing, improving CI, adding documentation, a bit of refactoring and working off general technical debt. Another big step in the release was publishing artifacts to MavenCentral.

    What's Changed

    • CI: Report for tagged tests by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1115
    • CI: add checkstyle rule for Java file headers by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1136
    • Testing: Add integration tests for traces by @ouphi in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1035
    • ids: IDS policy fixes by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1114
    • fix: publish data-plane-azure-common artifact by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1170
    • bugfix: restructure sql moudule folders by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1154
    • Fix: corrects content types in DataManagementApi controllers by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1141
    • Feature: use @component test in sql tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1143
    • CI: add checkstyle rule for MissingDeprecated by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1167
    • refactor: extract single PolicyArchive implementation by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1158
    • Bugfix: fixes the usage of negotiationId/contractId by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1142
    • CI: add checkstyle rule for StaticVariableName by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1165
    • core: replace policies with ids in ContractDefinition by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1144
    • CI: checkstyle unused imports rule by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1011
    • SystemTests: Use Datamanagment API to initiate file transfer by @cpeeyush in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1161
    • Bugfix: adds HTTPS support by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1157
    • Bugfix: Skip authentication of OPTIONS requests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1191
    • DPF: fix Maven artifact names by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1187
    • Azure: fix ServiceExtension file location by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1186
    • Build: adds plugin that prints a small summary by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1151
    • build: introduce plugin to check duplicate module names by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1190
    • fix: Introduce registry for EndpointDataReferenceTransformer by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1196
    • extensions: implement catalog for data management api by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1195
    • Samples: Use Datamanagment API to initiate file transfer by @cpeeyush in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1194
    • CI: add checkstyle rule for RedundantModifier by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1166
    • DPF: add TransferRequestDto id by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1188
    • core: Fix default private key parser registered in CoreServicesExtension by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1179
    • chore: add policy store to ids launcher by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1209
    • fix: Prevent consumer DPF proxy to filter request arguments by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1212
    • Improvement: REST API strict body checking by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1200
    • system-test: add a test covering the http push scenario by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1199
    • Observability: Trace context propagation within DPF by @marcgs in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1162
    • Feature: enhance dependency injection with factory methods by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1150
    • DataManagementApi: all API endpoints produce and consume APPLICATION_JSON by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1213
    • Blob storage: align blob client code by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1215
    • TransferProcessManager: Break lease after status check by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1214
    • catalog: Fix interference between Catalog API based on same path by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1225
    • DPF Azure storage: Write ".complete" blob by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1219
    • TransferProcess API: provide provisioned resource information by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1221
    • Chore: Fixed some minor snags with OpenApi by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1231
    • data-plane: handle public transfer requests in asynchronous way by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1228
    • Refactor: replace policy with policyId on ContractAgreement by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1220
    • samples: update documentation by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1224
    • core: upgrade to Jetty 11.0.8 by @jbonofre in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/895
    • fix: IDS date serialization by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1227
    • data-plane: enable contract validation rule by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1239
    • dpf: Harmonize settings naming in data-plane-transfer by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1164
    • bugfix: exclude sample and system-tests modules from module name check also if edc is loaded as submodule by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1234
    • Feature: provide in-mem implementations by default by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1223
    • Feature: FCC node directory is queried on every plan execution by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1243
    • Catalog: fixes property names and period time unit by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1254
    • docs: update sample 04.0 README by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1257
    • fix: always use configured IDS API path in webhook address by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1253
    • CD: Include component tests coverage in codecov code coverage report. by @ouphi in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1246
    • DPF: Fix Azure storage copy process by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1245
    • Azure storage: Ensure resource name is unique to avoid key collisions by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1247
    • bugfix: throws exception if IdentityProviderKeyResolver cannot get keys at startup by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1266
    • Docs: Blob transfer Architectural Decision Record. by @ouphi in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1259
    • data-management-api: validate query parameters by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1258
    • Bugfix: clear FCC store before updating by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1273
    • Bugfix: the base criterion converter can interpret lists of values for IN by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1284
    • system-tests: introduce postgresql end-to-end test by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1278
    • Feature: use NoopTransactionContext in tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1271
    • feat: add docsify by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1012
    • bugfix: get vault through context by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1290
    • Build: adds signing config to gradle by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1149
    • Build: adds property to skip signing jars by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1294
    • Bugfix: improve Cosmos DB statement parser by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1283
    • logs: sanitize log messages by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1295
    • core: make all the services injectable by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1285
    • docs: update readme by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1311
    • Fix: broken CosmosDB tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1315
    • cleanup: remove deprecated control API by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1310
    • core: Fix javadoc error preventing 'gradle build' to finish successfully by @schoenenberg in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1314
    • Bugfix: fixed more Cosmos DB tests by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1316
    • DPF Azure extension: Azure Data factory and cloud testing with decision records by @cpeeyush in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/910
    • bugfix: avoid stack trace at startup by updating slf4j dependency version by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1328
    • CI: Verify OpenAPI definition files by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1312
    • Bugfix: also remove ContractDef from cache when deleting by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1330
    • DID extension: null check for private key by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1304
    • Enhancement: Update the CodeQL GitHub Action version from v1 to v2 by @tuncaytunc-zf in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1327
    • Feature: auto-upload SPROCs to CosmosDB by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1339
    • core: make ContractDefinitionService find definition by its id by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1325
    • core: remove services from @Provides that are already provided by @Provider by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1336
    • docs: restructure documentation by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1307
    • docs: update CONTRIBUTING.md by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1345
    • Docs: adds pr etiquette document by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1300
    • refactor: remove ids policy extension by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1348
    • fix: load IdsTokenValidationServiceExtension properly by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1352
    • Chore: prepare publishing Maven artifacts to OSSRH and MavenCentral by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1354
    • refactor: remove basic launcher by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1360
    • CI: composite action to setup Java and Gradle (#261) by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1298
    • ci: add missing permissions by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1343
    • DM API: Add timestamps in TransferProcess DTO by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1350
    • docs: update CODEOWNERS by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1371
    • docs: update ids-launcher README.md by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1367
    • ci: remove no-more-useful publish workflow by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1369
    • docs: provide documentation templates by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1299
    • Bugfix: PartitionManagerImpl should not swallow exceptions by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1374
    • Documentation: adds CosmosDB documentation by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1379
    • workflow: update pull-request-auto-assign-project.yaml by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1384
    • system-test: add cosmosdb e2e test by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1346
    • test: fix cosmosdb integration test by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1385
    • helm: Make Helm charts more generic by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1363
    • docs: add logging guide by @ndr-brt in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1308
    • workflow: close inactive issues by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1393
    • chore: allow manual triggering of close-inactive-issue workflow by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1396
    • chore: refine close-inactive-issue workflow by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1398
    • docs: update ids-api-configuration README by @ronjaquensel in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1391
    • Bugfix: right-hand operand may contain equals signs by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1383
    • core: Make ParticipantAgent claims more generic by @bscholtes1A in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1405
    • chore: activate close-inactive-issue workflow by @juliapampus in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1399
    • Feature: add value object for Policy for record-keeping by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1365
    • Fix: remove token-validation dependency from BOM by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1418
    • Bugfix: check to determine if asset can be deleted by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1408
    • Bugfix: check, whether policy can be deleted or not by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1417
    • Doc: adds info about stale issues/PRs by @paullatzelsperger in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1421
    • System tests: extend Gatling scope by @algattik in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1389

    New Contributors

    • @jbonofre made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/895
    • @schoenenberg made their first contribution in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/pull/1314

    Full Changelog: https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/compare/milestone-3.1...milestone-4

    Source code(tar.gz)
    Source code(zip)
Owner
null
The project aim at easier to start a spring boot/cloud project.

easy-starters 是一个公共 starter 集合,旨在帮助 java 开发者快速构建 Springboot 与 Spring Cloud 项目. lx-starters的环境要求 JDK requirement: JDK 1.8+ Spring booter 2.x,+ 如何引用lx-s

null 3 Jul 11, 2022
This project is an Android Studio plugin version of BlackObfuscator, it supports obfuscating code automatically. More information about this project are in BlackObfuscator.

DEX控制流混淆插件版 · BlackObfuscator-ASPlugin English Version 本项目为 BlackObfuscator 的Android Studio插件版,支持打包自动化混淆。功能及介绍方面请查看 BlackObfuscator 源项目 注意事项 首要注意:Blac

null 229 Dec 31, 2022
This project provides an advanced baseline to help you kick start a Spring project.

?? Advanced Spring Scaffold The Spring Framework is an application framework and inversion of control container for the Java platform. This project wa

André de Sousa 22 Oct 15, 2022
This is an example of how conditional events can be triggered in Camunda using a simple spring boot project

Camunda Conditional Events Example This example is a Spring Boot Application using Camunda. In this example i'll show a variety of ways that BPMN's Co

Niall 5 Sep 30, 2021
End to End project for Kafka Streams using Spring Cloud Kafka streams

Spring Kafka Streams using Spring Cloud Streams End to End example Endpoint http://localhost:8080/domain/lookup/facebook - to pull all facebook relate

TechPrimers 43 Dec 20, 2022
Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project.

MagOKO Stack Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project. License Copyright 2021-present

DeepInThink Community 10 Jun 1, 2021
Processing and node.js project for rendering MouseGAN images from RunwayML

Computer MouseGAN Processing and node.js project for rendering MouseGAN images from RunwayML. Usage Clone or download this repository. git clone https

Coding Train 17 Apr 1, 2022
A React Native project starter with Typescript, a theme provider with hook to easy styling component, a folder architecture ready and some configs to keep a codebase clean.

React Native Boilerplate Folder structure : src ├── assets │   ├── audios │   ├── fonts │   ├── icons │   └── images ├── components │   ├── Layout.tsx

LazyRabbit 23 Sep 1, 2022
A Java-based template project for the FastJ Game Engine.

FastJ Java Template Program Requirements Java 16 JDK Basic understanding of Java Initial Setup Download the Template You have a few options for gettin

Andrew Dey 13 May 15, 2022
Java Camp Project

Hrms Java/React Camp Project ?? Req 13: BİR ADAYA AİT TÜM CV BİLGİSİ GÖRÜNTÜLENEBİLMELİDİR. ?? Req 12: ADAYLAR SİSTEME CV GİRİŞİ YAPABİLMELİDİR. Adayl

null 43 Aug 10, 2022
N-Layer Architecture human resource management system project with Java.

HRMS Project Backend N-Layer Architecture human resource management system project with Java. Report Bug · Request Feature About The Project Built Wit

Ahmet Çetinkaya 78 Dec 26, 2022
Final project of my Computer Science major in high school

BattleShips Final project of my Computer Science major in high school. I've coded an android app (in Java) in which users can play the game "Battle Sh

null 3 Jul 28, 2021
This is the term project for level-1 term -2

Java-Fx-Term_Project This is the term project for level-1 term -2 . It's a server-client playerDatabase system for some clubs of EPL, although sign up

Kazi Istiak Toriqe 4 Apr 1, 2022
spring boot project with code review study

Getting started need Java 11 installed $ ./gradlew build bootRun 프로젝트 진행 사항 언어 : JAVA 11 프레임워크 : Spring Boot 빌드툴 : Gradle 6.9 db : h2 테이블 구조 : 일요일에 각

null 7 Dec 11, 2022
Geektime Todo is a demo todo project for Geektime column.

Geektime Todo 简介 这是《极客时间》专栏的 Todo 项目示例。 基本用法 生成 IDEA 工程 ./gradlew idea 检查 ./gradlew check 数据库迁移 ./gradlew flywayMigrate 生成构建产物 ./gradlew build 生成发布包 对

Zheng Ye 53 Oct 20, 2022
Team project within the course of Software System Design and Analysis.

InnoBookCrossing - Application for sharing books at Innopolis Description The application is designed to help people share books with each other. All

Dariya 33 Oct 22, 2022
a simple mini-project using Spring framework

Room Reservation Service First attempts to learn Spring with Linkedin-Learning led me to create this mini-project; a simple room reservation service f

Taha Elmi 4 Sep 23, 2021
Repository with Backend code for InnoTutor project. It is written on Java/Spring.

Backend ᅠ ᅠ Developers: Daniil Livitn, Roman Soldatov Contents Requirements API Database Google credentials Hosting and CI How to install locally Code

InnoTutor 20 Sep 17, 2022