Skip to content

[9.1] feat (WMS): access the DiracX sandbox store directly from SandboxStoreClient - #8831

Merged
aldbr merged 3 commits into
DIRACGrid:integrationfrom
chrisburr:feat/sandbox-diracx-future-client
Nov 6, 2026
Merged

aldbr merged 3 commits into
DIRACGrid:integrationfrom
chrisburr:feat/sandbox-diracx-future-client

Conversation

@chrisburr

@chrisburr chrisburr commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Add FutureClient/SandboxStoreClient which uploads, downloads and looks up sandboxes directly against the DiracX S3 backend using presigned URLs, instead of proxying them through the SandboxStore service.

To test this in CI, the S3Mock container is replaced by SeaweedFS (as used by DiracX). S3Mock 3.12.0 does not support presigned POST uploads and does not validate presigned requests, which was hiding several bugs in the S3Gateway that are also fixed here:

  • the gateway looked up urls.get("Fields") instead of the fields of each URL, so the checksum was never stored on upload
  • boto does not add the POST fields to the policy, so S3 rejects them as "Extra input fields"
  • exists() sent a GET to a URL signed for HEAD

BEGINRELEASENOTES
*WorkloadManagement
NEW: SandboxStoreClient can access the DiracX sandbox store directly when the SandboxStore FutureClient is enabled

*DataManagement
FIX: S3Gateway presigned URLs work with S3 implementations which validate them, and store the checksum on upload
ENDRELEASENOTES

@chrisburr
chrisburr force-pushed the feat/sandbox-diracx-future-client branch 2 times, most recently from c649b15 to 34f364d Compare October 19, 2026 12:13
@chrisburr

Copy link
Copy Markdown
Member Author

Needs #8836

@chrisburr
chrisburr marked this pull request as ready for review October 19, 2026 19:00
@fstagni

fstagni commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

A documentation line should be added somewhere to state that this future client is available -- prob in DiracX.

@fstagni

fstagni commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

A documentation line should be added somewhere to state that this future client is available -- prob in DiracX.

Done in DIRACGrid/diracx#1135

S3Mock is pinned to 3.12.0, which does not support presigned POST uploads and
does not validate credentials or signatures. Use SeaweedFS, as DiracX does,
with real credentials for the S3 storage elements. This also allows uploads
through the S3Gateway to be tested again.
…eClient

When /DiracX/FutureClientEnabled/WorkloadManagement/SandboxStore is enabled,
sandboxes are uploaded to and downloaded from the DiracX S3 backend using
presigned URLs instead of being proxied through the SandboxStore service.
Transfers are streamed to disk, retried with a jittered backoff and the
checksum embedded in the PFN is verified after download. Sandboxes which are
not stored in S3 are still downloaded through their storage element.
@chrisburr
chrisburr force-pushed the feat/sandbox-diracx-future-client branch from 34f364d to 01e90aa Compare November 5, 2026 09:23
@aldbr
aldbr merged commit d46e17f into DIRACGrid:integration Nov 6, 2026
25 checks passed
@DIRACGridBot DIRACGridBot added the sweep:ignore Prevent sweeping from being ran for this PR label Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sweep:ignore Prevent sweeping from being ran for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants