Summary
Allow the copy verb to set Object Lock retention and legal-hold metadata on the destination object as part of the server-side copy request.
Why
Upload-time Object Lock is tracked in #107, but copied files have the same compliance need: the destination should be protected atomically when it is created. Without this, workflows must copy first and run the separate retention verb afterward, leaving a window where the copied object exists without the intended Object Lock policy.
SDK support (already available)
RawClient.copyFile(...)
CopyFileRequest.fileRetention
CopyFileRequest.legalHold
RetentionMode
LegalHoldValue
Proposed surface
Extend copy with destination Object Lock inputs aligned with upload/retention naming:
file-retention-mode (governance / compliance)
file-retention-retain-until (RFC 3339 timestamp or epoch millis)
legal-hold (on / off)
If the high-level SDK copy helper does not yet expose these fields, either use the raw SDK binding in the action or land a small SDK helper enhancement first.
Acceptance criteria
Out of scope
Summary
Allow the
copyverb to set Object Lock retention and legal-hold metadata on the destination object as part of the server-side copy request.Why
Upload-time Object Lock is tracked in #107, but copied files have the same compliance need: the destination should be protected atomically when it is created. Without this, workflows must copy first and run the separate
retentionverb afterward, leaving a window where the copied object exists without the intended Object Lock policy.SDK support (already available)
RawClient.copyFile(...)CopyFileRequest.fileRetentionCopyFileRequest.legalHoldRetentionModeLegalHoldValueProposed surface
Extend
copywith destination Object Lock inputs aligned with upload/retention naming:file-retention-mode(governance/compliance)file-retention-retain-until(RFC 3339 timestamp or epoch millis)legal-hold(on/off)If the high-level SDK copy helper does not yet expose these fields, either use the raw SDK binding in the action or land a small SDK helper enhancement first.
Acceptance criteria
copycan set retention on the destination object during the copy request.copycan set legal hold on the destination object during the copy request.Out of scope