storj / edge

Storj edge services (including multi-tenant, S3-compatible server to interact with the Storj network)
GNU Affero General Public License v3.0
48 stars 18 forks source link

Adjust DeleteObject satellite endpoint (object retention) #401

Open amwolff opened 4 months ago

amwolff commented 4 months ago

Goal

This issue is to make meaningful progress on Object Lock implementation within core and edge services. Specifically, to support immutable backups in backup software products like Veeam.

What needs to be done? • Acceptance Criteria

Modify the corresponding to DeleteObject endpoint on the satellite (the endpoint might be named differently) to respect the lock information (if it exists) of the object version that is being deleted:

Summary

Implementation reference.

Depends on…

Links

kaloyan-raev commented 4 months ago

Do we need to support Governance mode for the MVP? Compliance mode would be enough, which means that DeleteObject should only respect the object's retention period.

kaloyan-raev commented 4 months ago

Actually, I don't think we need to do anything in DeleteObject. The retention period is set on a specific object version. Calling DeleteObject on an object with locked versions would just add a new delete marker and won't affect any of the existing object versions.

However, we need to modify DeleteObjectVersion to respect any retention period set on the object version to be deleted.

storj-gerrit[bot] commented 2 months ago

Change satellite/{metabase,metainfo}: prevent deleting locked objects mentions this issue.

amwolff commented 1 day ago

From our sync with Jeremy: there's a WIP pushed to Gerrit, but it needs further adjustments (code style).