-
Notifications
You must be signed in to change notification settings - Fork 9
feat: make versioning optional #165
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,27 @@ | ||||||
# Exposure of Versions {#exposure-of-dataspace-protocol-versions} | ||||||
|
||||||
The adoption of versioning to implementations that comply with this specification is optional. | ||||||
|
||||||
## Introduction | ||||||
|
||||||
[=Connectors=] implementing the [=Dataspace Protocol=] may operate on different versions and bindings. Such information should be discoverable reliably and unambiguously. If a [=Dataspace=] requires [=Connectors=] to expose supported versions, each [=Connector=] _MUST_ provide the version metadata endpoint using the `dspace-version` Well-Known Uniform Resource Identifier [[rfc8615]] at the top of the path hierarchy. Example: `<host>/.well-known/dspace-version` | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
A [=Connector=] _MUST_ respond to a respective HTTPS request by returning a [`VersionResponse`](#VersionResponse-table) | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
with at least one item. The item connects the version tag (`version` attribute) with a path to the endpoint. | ||||||
The semantics of the `path` property are specified by each protocol binding. | ||||||
|
||||||
This data object _MUST_ comply to the [JSON Schema](message/schema/protocol-version-schema.json). The requesting [=Connector=] _MAY_ select from the endpoints in the response. If the [=Connector=] cannot identify a matching [=Dataspace Protocol=] version, it _MUST_ terminate the communication. The version endpoint _MUST_ be unversioned and unauthenticated. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
## HTTPS Binding | ||||||
|
||||||
When using the DSP HTTPS binding, the `path` property is an absolute URL path segment to be appended to the domain for all endpoints of this version. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is confusing. I think it woul be easier to read if it was in bullet form. For example: The following example demonstrates a Connector that:
|
||||||
The following example demonstrates that a [=Connector=] offers the HTTPS binding from version `2024-1` at | ||||||
`<host>/some/path/2024-1`, the `2025-1` endpoints at`<host>/some/path/2025-1` and another [=Connector=] on the same host under `<host>/different/path/2025-1` - some of which signal the relevant authentication protocol overlay, determined by `protocol`, `version`, and the `profile` array. | ||||||
|
||||||
<aside class="example" title="well-known version endpoint (HTTPS)"> | ||||||
<pre class="http">GET https://provider.com/.well-known/dspace-version | ||||||
</pre> | ||||||
<pre class="json" data-include="message/example/protocol-version.json"> | ||||||
</pre> | ||||||
</aside> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.