diff --git a/docs/architecture/upload-processing.md b/docs/architecture/upload-processing.md
index 7caca17ba60..79d978e9bb5 100644
--- a/docs/architecture/upload-processing.md
+++ b/docs/architecture/upload-processing.md
@@ -27,8 +27,9 @@ sequenceDiagram
Client->>+ocdav: PUT /dav/spaces/{spaceid}/newfile.bin
ocdav->>+storageprovider: InitiateFileUpload
storageprovider-->>-ocdav: OK, Protocol simple, UploadEndpoint: /data, Token: {jwt}
- Note right of ocdav: The {jwt} contains the internal actual target, eg.:
http://localhost:9158/data/simple/91cc9882-db71-4b37-b694-a522850fcee1
- ocdav->>+dataprovider: PUT /data
X-Reva-Transfer: {jwt}
+ Note right of ocdav: The {jwt} contains the internal actual target, eg.: http://localhost:9158/data/simple/91cc9882-db71-4b37-b694-a522850fcee1
+ ocdav->>+dataprovider: PUT /data
+ Note right of dataprovider: X-Reva-Transfer: {jwt}
dataprovider-->>-ocdav: 201 Created
ocdav-->>-Client: 201 Created
@@ -48,19 +49,18 @@ sequenceDiagram
participant datagateway
participant dataprovider
-
- Client->>+ocdav: POST /dav/spaces/{spaceid}
Upload-Metadata: {base64 encoded filename etc}
TUS-Resumable: 1.0.0
+ Client->>+ocdav: POST /dav/spaces/{spaceid}\nUpload-Metadata: {base64 encoded filename etc}\nTUS-Resumable: 1.0.0
ocdav->>+storageprovider: InitiateFileUpload
storageprovider-->>-ocdav: OK, Protocol tus, UploadEndpoint: /data, Token: {jwt}
- Note right of ocdav: The {jwt} contains the internal actual target, eg.:
http://localhost:9158/data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
- ocdav-->>-Client: 201 Created
Location: /data/{jwt}
TUS-Resumable: 1.0.0
+ Note right of ocdav: The {jwt} contains the internal actual target, eg.:\nhttp://localhost:9158/data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
+ ocdav-->>-Client: 201 Created\nLocation: /data/{jwt}\nTUS-Resumable: 1.0.0
- Client->>+datagateway: PATCH /data/{jwt}
TUS-Resumable: 1.0.0
Upload-Offset: 0
+ Client->>+datagateway: PATCH /data/{jwt}\nTUS-Resumable: 1.0.0\nUpload-Offset: 0
Note over datagateway: unwrap the {jwt} target
- datagateway->>+dataprovider: PATCH /data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
X-Reva-Transfer: {jwt}
- Note over dataprovider: storage driver
handles request
- dataprovider-->>-datagateway: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976
- datagateway-->>-Client: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976
+ datagateway->>+dataprovider: PATCH /data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160\nX-Reva-Transfer: {jwt}
+ Note over dataprovider: storage driver\nhandles request
+ dataprovider-->>-datagateway: 204 No Content\nTUS-Resumable: 1.0.0\nUpload-Offset: 363976
+ datagateway-->>-Client: 204 No Content\nTUS-Resumable: 1.0.0\nUpload-Offset: 363976
{{}}
@@ -81,35 +81,47 @@ sequenceDiagram
participant datagateway
participant dataprovider
participant nats
+ participant processing
-
- Client->>+ocdav: POST /dav/spaces/{spaceid}
Upload-Metadata: {base64 encoded filename etc}
TUS-Resumable: 1.0.0
+ Client->>+ocdav: POST /dav/spaces/{spaceid}
+ Note left of Client: Upload-Metadata: {base64 encoded filename etc}\nTUS-Resumable: 1.0.0
ocdav->>+storageprovider: InitiateFileUpload
storageprovider-->>-ocdav: OK, Protocol tus, UploadEndpoint: /data, Token: {jwt}
- Note right of ocdav: The {jwt} contains the internal actual target, eg.:
http://localhost:9158/data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
- ocdav-->>-Client: 201 Created
Location: /data/{jwt}
TUS-Resumable: 1.0.0
+ Note right of ocdav: The {jwt} contains the internal actual target, eg.: http://localhost:9158/data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
+ ocdav-->>-Client: 201 Created
+ Note right of Client: Location: /data/{jwt}
+ Note right of Client: TUS-Resumable: 1.0.0
- Client->>+datagateway: PATCH /data/{jwt}
TUS-Resumable: 1.0.0
Upload-Offset: 0
+ Client->>+datagateway: PATCH /data/{jwt}
+ Note right of datagateway: TUS-Resumable: 1.0.0\nUpload-Offset: 0
Note over datagateway: unwrap the {jwt} target
- datagateway->>+dataprovider: PATCH /data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
X-Reva-Transfer: {jwt}
- Note over dataprovider: storage driver
handles request
+ datagateway->>+dataprovider: PATCH /data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
+ Note over dataprovider: X-Reva-Transfer: {jwt}
+ Note over dataprovider: storage driver
+ Note over dataprovider: handles request
dataprovider-)nats: emit all-bytes-received event
nats-)processing: all-bytes-received({uploadid}) event
- Note over dataprovider: TODO: A lot of time may pass here, we could use
the `Prefer: respond-async` header to return early
with a 202 Accepted status and a Location header
to a websocket endpoint
+ Note over dataprovider: TODO: A lot of time may pass here, we could use the `Prefer: respond-async` header to return early with a 202 Accepted status and a Location header to a websocket endpoint
alt success
- processing-)nats: emit processing-finished({uploadid}) event
+ processing-)nats: emit processing-finished({uploadid}) event
nats-)dataprovider: processing-finished({uploadid}) event
- dataprovider-->>-datagateway: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976
- datagateway-->>-Client: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976
+ dataprovider-->>-datagateway: 204 No Content
+ Note over datagateway: TUS-Resumable: 1.0.0\nUpload-Offset: 363976
+ datagateway-->>-Client: 204 No Content
+ Note over Client: TUS-Resumable: 1.0.0\nUpload-Offset: 363976
else failure
activate dataprovider
activate datagateway
processing-)nats: emit processing-aborted({uploadid}) event
nats-)dataprovider: processing-aborted({uploadid}) event
- Note over dataprovider: FIXME: What HTTP status code should we report?
422 Unprocessable Content is just a proposal, see
https://httpwg.org/specs/rfc9110.html#status.422
- dataprovider-->>-datagateway: 422 Unprocessable Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976
- datagateway-->>-Client: 422 Unprocessable Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976
+ Note over dataprovider: FIXME: What HTTP status code should we report?
+ Note over dataprovider: 422 Unprocessable Content is just a proposal
+ Note over dataprovider: see https://httpwg.org/specs/rfc9110.html#status.422
+ dataprovider-->>-datagateway: 422 Unprocessable Content
+ Note over datagateway: TUS-Resumable: 1.0.0\nUpload-Offset: 363976
+ datagateway-->>-Client: 422 Unprocessable Content
+ Note over Client: TUS-Resumable: 1.0.0\nUpload-Offset: 363976
end
{{}}