Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ProviderConfirmationPolicy] Allow data provider to explicitly confirm data requests on DSP:ContractOfferRequests as #605

Open
35 tasks
AbdullahMuk opened this issue Nov 11, 2023 · 3 comments
Assignees
Labels
kind/enhancement New feature or request scope/ce sovity's Open Source Community Edition scope/mds related to MDS status/blocked An issue is blocked by another issue or task
Milestone

Comments

@AbdullahMuk
Copy link
Collaborator

AbdullahMuk commented Nov 11, 2023

Feature

Description (Problem to be solved and requirements to satisfy)

As a data provider I want to actively approve a consumer's request to consume my asset, because I want to have extended control over the consumption of my data. The confirmation shall happen after a consumer requested a contract offer. I shall be able to see trustable information from the Authority Portal about the requestor to derive a carefully considered decision.

Hint: The connector restricted policy does not help in this case, as it requires to know, who shall consume my data at date of creation.

Overview of Features

  • Provider Confirmation Policy to let providers decide with whom a contract to establish
  • Participant Information Service (ParIS) Extension to receive validated organization details from Authority Portal inside EDC. Solves following problems:
      1. Contracts / Transfer History on provider side does not contain any consumer details aside of URL and ID
      1. Logging House only knows ID
      1. On provider side with ProviderConfirmationPolicy no information about the consumer would be available
      1. On consumer side no validatable information are available. Workaround exists to set details by provider in asset details, but which are not validatable for consumers.

Benefits

  • More control over who receives data
  • Allows to openly show data offer, but to decide per request, if data is shared or not
  • Manual decision to improve UX and foster implicitly experienced control
  • Approve/restrict access also for newly joined participants in the data space
  • Can increase the flexibility of the data space and offers more business opportunities for participants.
  • Verifiable and trustable information about participants
  • Complies with Participant Information Service of IDSA architecture
  • No adjustment of DSP necessary

Stakeholders

  • MDS
  • Mobilithek: Feature is required to
    comply with requirements and enhances compatibility with Mobilithek
  • @jkbquabeck
  • @SebastianOpriel

References

Solution Design

Affected Areas and Components

  • edc-ui
  • edc-ce
  • authority-portal catalog ui
  • authority-portal API

General Requirements

  • Compatibility with existing Connectors SHALL not be broken, but non-optimal UX is acceptable
  • Information about the requestor MUST be available and be verified by the Data Space Authority: Legal name, commerce register number, website, main address, contact name, contact email
  • ID (e.g. MDS ID) of requestor MUST be taken from authentication object (e.g. DAT of DAPS)
  • API MUST be integrated into API Wrapper
  • Documentation about API and manual negotiation steps MUST be adjusted (especially for systems)
  • Postman Collection MUST be adjusted / enhanced
  • After successfull confirmation the contract SHALL not differ from other established ones
  • As a consumer I SHALL only be able to create one request per Connector if a Provider Confirmation Policy is applied. This SHALL only be checked on consumer side.
  • The solution of displaying verified organization details, SHALL be designed in a way, that in the future the lookup can be replaced with receiving Verifiable Credentials from the consumer.
  • The Provider Confirmation Policy is shown in the Policies tab, but SHALL not be deletable

Out of scope

  • Cancelation of a negotiation request
  • Delete data offer request after inactivity of x weeks
  • A potential consumer shall be able to ask or notify the provider again
  • UI notification section

Processes

End-user UX via UI

  1. The user creates a data offer and is asked on the Contract Definition Creation Dialog, if the offering shall always be manually accepted.
  2. The consumer identifies a data offer via the built-in catalog or broker. In both cases it is visible, via an icon in the overview and as well in the details, that the offer requires approval of the provider. As consumer I request a contract for choosen data offer. I can see on the Dashboard the status of pending sent requests (e.g. 3 requests pending) and see my requests also in Contracts section.
  3. On a request, the provider can see organization details of the requestor and can accept or decline the request. In addition I can see on the Dashboard the status of pending decisions to make (e.g. 2 decisions necessary) and see these requests also on Contracts page.

Developer UX via API

  • The developer creates a tipical data offer and simply adds a pre-defined "Provider Confirmation Policy" to the contract definition.

  • An API endpoint is available to get a list of all pending decisions enriched with information about the requestor (via ParIS)

  • An API endpoint is available to accept and one is available to decline a decision

  • As an developer I can use a custom message and related method passing an ID or a set of IDs receive in return organization details about: participant ID, Legal Name, Commerce Register Number, Website, Main Address, Main Contact (name+email)

Product Increments / Releases

1) Proof of Concept

  • EDC custom message for Participant Information Service
    • Integrate Message Handler (server stub) into catalog-crawler extension in :extensions:catalog-crawler:catalog-crawler
    • Integrate Common Module for the Message Type ~ the API in :extensions:sovity-messenger
  • EDC policy implementation incl. enforcement
  • API Wrapper endpoints to provide list of pending contracts (includes logic fetching validated information via new message type), accept and decline Participant Confirmation.
  • EDC UI Catalog adjustement adding a hint about necessary confirmation
  • Authority Portal Catalog UI adjustment adding a hint about necessary confirmation

2) Minimal viable Product

  • Integration verified information in EDC UI:
    • Catalog Browser
    • Transfer History
    • Contracts
  • EDC Dashboard integration
  • Decision to use policy in Contract Creation Dialog or at appropriate place
  • Accept/Decline policy on provider side

3) Later Stage

  • Integrate extension into Logging House

Work Breakdown

Connector UI

EDC-CE / API Wrapper

Authority Portal

Architecture

image

@AbdullahMuk AbdullahMuk added kind/enhancement New feature or request scope/ce sovity's Open Source Community Edition scope/mds related to MDS labels Nov 11, 2023
@AbdullahMuk AbdullahMuk added this to the EDC Features - MDS milestone Nov 11, 2023
@jkbquabeck jkbquabeck changed the title [Policy] Enhance workflow and frontend to show Explicit confirmation of the contract by data provider [Policy] Enhance workflow and frontend to show explicit confirmation of the contract by data provider Nov 14, 2023
@richardtreier

This comment was marked as outdated.

@AbdullahMuk AbdullahMuk added the clean-backlog requires backlog cleaning label May 2, 2024
@SebastianOpriel SebastianOpriel removed the clean-backlog requires backlog cleaning label Jul 16, 2024
@SebastianOpriel SebastianOpriel changed the title [Policy] Enhance workflow and frontend to show explicit confirmation of the contract by data provider [ProviderConfirmationPolicy] Allow data provider to explicitly confirm data requests on DSP:ContractOfferRequests as Jul 19, 2024
@ip312
Copy link

ip312 commented Aug 14, 2024

Additional requirement from here:

  • In the MDS 2.3. we add in the asset description an additional field "Data Provider" (name to be discussed), to reflect the special situation for the Mobilithek (three roles: 1) connector hoster and MDS participant; 2) Mobilithek participant; 3) data owner)
  • In the MDS 2.3. we will present the second role in the Asset headline together with the first role (to be designed)

@AbdullahMuk
Copy link
Collaborator Author

Additional requirement from here:

  • In the MDS 2.3. we add in the asset description an additional field "Data Provider" (name to be discussed), to reflect the special situation for the Mobilithek (three roles: 1) connector hoster and MDS participant; 2) Mobilithek participant; 3) data owner)
  • In the MDS 2.3. we will present the second role in the Asset headline together with the first role (to be designed)

Given that we need clear separation of scope, this comment is not relevant for this issue but for https://github.com/sovity/PMO-Software/issues/1436.

@SebastianOpriel SebastianOpriel added the status/blocked An issue is blocked by another issue or task label Oct 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request scope/ce sovity's Open Source Community Edition scope/mds related to MDS status/blocked An issue is blocked by another issue or task
Projects
None yet
Development

No branches or pull requests

5 participants