International-Data-Spaces-Association / ids-specification

The Dataspace Protocol is a set of specifications designed to facilitate interoperable data sharing between entities governed by usage control and based on Web technologies. These specifications define the schemas and protocols required for entities to publish data, negotiate Agreements, and access data in a data space
https://docs.internationaldataspaces.org/dataspace-protocol/
Apache License 2.0
33 stars 14 forks source link

Protocol Version Declaration and Negotiation Concept #167

Closed sebbader-sap closed 10 months ago

sebbader-sap commented 11 months ago

In the (close) future, dataspace connectors must be able to announce their supported protocol version (or versions) and somehow be able to negotiate on the applied one.

Proposal:

sebbader-sap commented 11 months ago

Similar to https://github.com/International-Data-Spaces-Association/ids-specification/issues/15

sebbader-sap commented 11 months ago

Idea: Let's also leverage the well-known approach as also proposed in #161 , e.g. by:

.../.well-known/dspace-protocol[/connector1]

{
    "@context": "https://w3id.org/dspace/v1.0/context.json",
    "protocolVersions": [
       {
            "version": "1.0",
            "path": "/some/path/v1" 
       }
   ]
}
sebbader-sap commented 11 months ago
  • The protocol defines a mechanism how the receiver can see for each message in which version it is
  • The protocol defines an error message / code in the existing error message stating "version not supported" and gives an indication which version could be processed.

Not needed then as a request in a different message simply causes an error and it's up to the sender to figure out if he screwed up with the protocol versions.

sebbader-sap commented 11 months ago

Next step: Discuss proposal for #161 and mirror the explanation for this one here.

ssteinbuss commented 10 months ago

blocked by #172

sebbader-sap commented 10 months ago

PR has been approved and merged.