Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

storage: add support for object retention #12994

Open
6 of 14 tasks
JesseLovelace opened this issue Oct 27, 2023 · 5 comments
Open
6 of 14 tasks

storage: add support for object retention #12994

JesseLovelace opened this issue Oct 27, 2023 · 5 comments
Labels
api: storage Issues related to the Cloud Storage API. external This issue is blocked on a bug with the actual product. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.

Comments

@JesseLovelace
Copy link

JesseLovelace commented Oct 27, 2023

Please implement the object retention feature. The following operations must be supported:

  • Create a bucket with object retention enabled by using the enableObjectRetention bucket create boolean option at bucket create time
  • Get the object retention enabled status of a bucket
  • Create an object with retention enabled (on an retention enabled bucket) by populating the retention object at object create time (retention object has the fields mode which can be Unlocked or Locked, and retainUntilTime which is a timestamp)
  • Update retention for an existing object with a patch operation, by passing the overrideUnlockedRetention boolean patch option
  • Get the retention policy of an object
  • Remove retention for an existing object the same way as above

Support for gRPC is blocked as the protos are not published.

  • Implement FromProto for BucketObjectRetention
  • Support EnableObjectRetention for gRPC plugin
  • Implement ToProto and FromProto for ObjectRetention
  • Support OverrideUnlockedRetention for gRPC plugin
  • Support bucket metadata for object retention in the testbench
  • Support object metadata for object retention in the testbench
  • Upgrade the testbench
  • Enable the object retention samples when running against the emulator

Details in go/gcs-object-retention-client-request

You can use the java implementation as a reference.

The kokoro test project should be allowlisted shortly, let me know if you need access to an allowlisted project for your own testing.

We're aiming to get this in by the November code freeze, let me know if you need any help.

@JesseLovelace JesseLovelace added the type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design. label Oct 27, 2023
@product-auto-label product-auto-label bot added the api: storage Issues related to the Cloud Storage API. label Oct 27, 2023
@coryan
Copy link
Contributor

coryan commented Oct 27, 2023

This is not going to happen by the 2023-11 C++ release (due in the first few business days of the month). I also don't see this feature in the protos:

https://github.com/googleapis/googleapis/blob/395600748bbfc4b61a941c4b0e8a04372a9b4d3b/google/storage/v2/storage.proto

Though I guess that could change in the next few days. We cannot add this to our CI until the protos are published.

@scotthart
Copy link
Member

Punting for now.

@sourabh912
Copy link

@scotthart @coryan : Can it be prioritized? Support for this API in Cpp library is important for us.

@coryan
Copy link
Contributor

coryan commented Jun 18, 2024

@sourabh912 I am sorry you are blocked because this API was missing. After #14351 gets merged (probably within the next few days) all the functionality should be available 1 in the main branch using the JSON transport2. These changes will be part of the next release, scheduled for early in 2024-07.

I will keep this bug open (and probably unassigned) until the gRPC-based implementation is unblocked.

Footnotes

  1. Unless you try to use this via the gRPC plugin. gRPC is under and allow list, please reach out to your support team if you need this implemented in gRPC too. A customer explicitly asking for gRPC support would help me escalate the gRPC implementation internally.

  2. this is the default.

@coryan coryan removed their assignment Jun 19, 2024
@coryan coryan added the external This issue is blocked on a bug with the actual product. label Jun 19, 2024
@sourabh912
Copy link

@coryan : Thank you for the update !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the Cloud Storage API. external This issue is blocked on a bug with the actual product. type: feature request ‘Nice-to-have’ improvement, new feature or different behavior or design.
Projects
None yet
Development

No branches or pull requests

4 participants