From 33655e50cd4fc40cd283eda0b4a04dc139ccf15b Mon Sep 17 00:00:00 2001 From: Jim Marino Date: Thu, 8 Feb 2024 09:41:26 +0100 Subject: [PATCH 1/5] Specify auth type property; clarify authorization property and make case consistent; remove incorrect bearer prefix; remove non-normative S3 reference --- .../message/transfer-request-message.json | 11 +++++-- .../example/transfer-request-message.json | 11 +++++-- .../example/transfer-start-message.json | 9 ++++-- transfer/transfer.process.binding.https.md | 29 ++++++++++++++----- transfer/transfer.process.protocol.md | 2 +- 5 files changed, 46 insertions(+), 16 deletions(-) diff --git a/releases/v0.8/transfer/message/transfer-request-message.json b/releases/v0.8/transfer/message/transfer-request-message.json index cef1e1e9..b6e4436d 100644 --- a/releases/v0.8/transfer/message/transfer-request-message.json +++ b/releases/v0.8/transfer/message/transfer-request-message.json @@ -3,7 +3,7 @@ "@type": "dspace:TransferRequestMessage", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dct:format": "dspace:S3_AWS_PUSH", + "dct:format": "example:HTTP_PUSH", "dspace:dataAddress": { "@type": "dspace:DataAddress", "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", @@ -11,8 +11,13 @@ "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "Authorization", - "dspace:value": "Bearer TOKEN-ABCDEFG" + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] }, diff --git a/transfer/message/example/transfer-request-message.json b/transfer/message/example/transfer-request-message.json index cef1e1e9..b6e4436d 100644 --- a/transfer/message/example/transfer-request-message.json +++ b/transfer/message/example/transfer-request-message.json @@ -3,7 +3,7 @@ "@type": "dspace:TransferRequestMessage", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dct:format": "dspace:S3_AWS_PUSH", + "dct:format": "example:HTTP_PUSH", "dspace:dataAddress": { "@type": "dspace:DataAddress", "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", @@ -11,8 +11,13 @@ "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "Authorization", - "dspace:value": "Bearer TOKEN-ABCDEFG" + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] }, diff --git a/transfer/message/example/transfer-start-message.json b/transfer/message/example/transfer-start-message.json index 84be5c8c..771758b3 100644 --- a/transfer/message/example/transfer-start-message.json +++ b/transfer/message/example/transfer-start-message.json @@ -10,8 +10,13 @@ "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "Authorization", - "dspace:value": "Bearer TOKEN-ABCDEFG" + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] } diff --git a/transfer/transfer.process.binding.https.md b/transfer/transfer.process.binding.https.md index 6e0ef6d5..f01ee71d 100644 --- a/transfer/transfer.process.binding.https.md +++ b/transfer/transfer.process.binding.https.md @@ -110,7 +110,7 @@ Authorization: ... "@type": "dspace:TransferRequestMessage", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dct:format": "dspace:S3_AWS_PUSH", + "dct:format": "example:HTTP_PUSH", "dspace:dataAddress": { "@type": "dspace:DataAddress", "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", @@ -118,8 +118,13 @@ Authorization: ... "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "Authorization", - "dspace:value": "Bearer TOKEN-ABCDEFG" + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] }, @@ -170,8 +175,13 @@ Authorization: ... "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "Authorization", - "dspace:value": "Bearer TOKEN-ABCDEFG" + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] } @@ -303,8 +313,13 @@ Authorization: ... "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "Authorization", - "dspace:value": "Bearer TOKEN-ABCDEFG" + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] } diff --git a/transfer/transfer.process.protocol.md b/transfer/transfer.process.protocol.md index 0fa4e7bb..5f809089 100644 --- a/transfer/transfer.process.protocol.md +++ b/transfer/transfer.process.protocol.md @@ -185,4 +185,4 @@ The Transfer Error is an object returned by a [Consumer](../model/terminology.md | `consumerPid` | UUID | The TF unique id on [Consumer](../model/terminology.md#consumer) side. | | `providerPid` | UUID | The TF unique id on [Provider](../model/terminology.md#provider) side. | | `code` | string | An optional implementation-specific error code. | -| `reasons` | Array[object] | An optional array of implementation-specific error objects. | \ No newline at end of file +| `reasons` | Array[object] | An optional array of implementation-specific error objects. | From 78b2fd87c8860c898fc1d6d90ac0f62efeefbb9e Mon Sep 17 00:00:00 2001 From: Jim Marino Date: Thu, 8 Feb 2024 09:53:28 +0100 Subject: [PATCH 2/5] Add descriptions --- transfer/transfer.process.protocol.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/transfer/transfer.process.protocol.md b/transfer/transfer.process.protocol.md index 5f809089..a87f8470 100644 --- a/transfer/transfer.process.protocol.md +++ b/transfer/transfer.process.protocol.md @@ -93,6 +93,10 @@ The Transfer Request Message is sent by a [Consumer](../model/terminology.md#con - The `dataAddress` contains a transport-specific endpoint address for pushing the data. It may include a temporary authorization via the `endpointProperties` property. - `callbackAddress` is a URI indicating where messages to the [Consumer](../model/terminology.md#consumer) should be sent. If the address is not understood, the [Provider](../model/terminology.md#provider) MUST return an UNRECOVERABLE error. +- The `endpointProperties` may contain the following optional values: + - `authorization` - An opaque authorization token that clients must present when accessing the transport-specific endpoint address. + - `authType` - The auth token type. For example, the value may be `bearer`. If present, this value may be used in conjunction with transport rules to define how the client must present an authorization token. + Note that [Providers](../model/terminology.md#provider) should implement idempotent behavior for [Transfer Request Messages](#21-transfer-request-message) based on the value of `consumerPid`. [Providers](../model/terminology.md#provider) may choose to implement idempotent behavior for a certain period of time. For example, until a TP has completed and been archived after an implementation-specific expiration period, repeated sending of [Transfer Request Messages](#21-transfer-request-message) does not change the state of the TP. If a request for the given `consumerPid` has already been received *and* the same [Consumer](../model/terminology.md#consumer) sent the original message again, the [Provider](../model/terminology.md#provider) should respond with an appropriate [Transfer Start Message](#22-transfer-start-message). - Once a TP has been created, all associated callback messages must include a `consumerPid` and `providerPid`. @@ -114,6 +118,9 @@ Note that [Providers](../model/terminology.md#provider) should implement idempot The Transfer Start Message is sent by the [Provider](../model/terminology.md#provider) to indicate the data transfer has been initiated. - The `dataAddress` is only provided if the current transfer is a pull transfer and contains a transport-specific endpoint address for obtaining the data. It may include a temporary authorization via the `endpointProperties` property. +- The `endpointProperties` may contain the following optional values: + - `authorization` - An opaque authorization token that clients must present when accessing the transport-specific endpoint address. + - `authType` - The auth token type. For example, the value may be `bearer`. If present, this value may be used in conjunction with transport rules to define how the client must present an authorization token. ### 2.3 Transfer Suspension Message From e21828688408d21ef8c64f7420fbbe2e797ce747 Mon Sep 17 00:00:00 2001 From: Jim Marino Date: Thu, 8 Feb 2024 09:54:10 +0100 Subject: [PATCH 3/5] Remove S3 reference --- transfer/message/example/transfer-request-message.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/transfer/message/example/transfer-request-message.json b/transfer/message/example/transfer-request-message.json index b6e4436d..85b8c9ff 100644 --- a/transfer/message/example/transfer-request-message.json +++ b/transfer/message/example/transfer-request-message.json @@ -3,7 +3,7 @@ "@type": "dspace:TransferRequestMessage", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dct:format": "example:HTTP_PUSH", + "dct:format": "dspace:S3_AWS_PUSH", "dspace:dataAddress": { "@type": "dspace:DataAddress", "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", @@ -13,11 +13,6 @@ "@type": "dspace:EndpointProperty", "dspace:name": "authorization", "dspace:value": "TOKEN-ABCDEFG" - }, - { - "@type": "dspace:EndpointProperty", - "dspace:name": "authType", - "dspace:value": "bearer" } ] }, From 03b450f4583b8a4f7a61979be860a39680c3d0ab Mon Sep 17 00:00:00 2001 From: Jim Marino Date: Thu, 8 Feb 2024 09:54:58 +0100 Subject: [PATCH 4/5] Remove S3 reference --- transfer/message/example/transfer-request-message.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/transfer/message/example/transfer-request-message.json b/transfer/message/example/transfer-request-message.json index 85b8c9ff..b6e4436d 100644 --- a/transfer/message/example/transfer-request-message.json +++ b/transfer/message/example/transfer-request-message.json @@ -3,7 +3,7 @@ "@type": "dspace:TransferRequestMessage", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dct:format": "dspace:S3_AWS_PUSH", + "dct:format": "example:HTTP_PUSH", "dspace:dataAddress": { "@type": "dspace:DataAddress", "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", @@ -13,6 +13,11 @@ "@type": "dspace:EndpointProperty", "dspace:name": "authorization", "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" } ] }, From 37f1c66fa5db744959ff3552822263706d31e67d Mon Sep 17 00:00:00 2001 From: Jim Marino Date: Thu, 8 Feb 2024 10:13:06 +0100 Subject: [PATCH 5/5] Revert releases folder change --- .../transfer/message/transfer-request-message.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/releases/v0.8/transfer/message/transfer-request-message.json b/releases/v0.8/transfer/message/transfer-request-message.json index b6e4436d..cef1e1e9 100644 --- a/releases/v0.8/transfer/message/transfer-request-message.json +++ b/releases/v0.8/transfer/message/transfer-request-message.json @@ -3,7 +3,7 @@ "@type": "dspace:TransferRequestMessage", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dct:format": "example:HTTP_PUSH", + "dct:format": "dspace:S3_AWS_PUSH", "dspace:dataAddress": { "@type": "dspace:DataAddress", "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", @@ -11,13 +11,8 @@ "dspace:endpointProperties": [ { "@type": "dspace:EndpointProperty", - "dspace:name": "authorization", - "dspace:value": "TOKEN-ABCDEFG" - }, - { - "@type": "dspace:EndpointProperty", - "dspace:name": "authType", - "dspace:value": "bearer" + "dspace:name": "Authorization", + "dspace:value": "Bearer TOKEN-ABCDEFG" } ] },