googleapis / googleapis/google-cloud-cpp

storage: add support for object retention

Abierto
#12,994 5 comentarios 0 reacciones 0 asignados Ver en GitHub
api: storage external type: feature request
Lenguaje dominante
C++
Estrellas
659
Forks
462
Merge medio
1 d 2 h
PR fusionados (30 d)
89

Descripción

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

- [x] Create a bucket with object retention enabled by using the `enableObjectRetention` bucket create boolean option at bucket create time
- [x] Get the object retention enabled status of a bucket
- [x] 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)
- [x] Update retention for an existing object with a patch operation, by passing the `overrideUnlockedRetention` boolean patch option
- [x] Get the retention policy of an object
- [x] 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](https://github.com/googleapis/java-storage/pull/2277) 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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con go/gcs-object-retention-client-request y la implementación en Java enlazada en el issue. Revisa los puntos de entrada FromProto y ToProto del plugin de gRPC y, después, las áreas de metadatos de testbench y ejemplos de emulador mencionadas en el checklist. Se considera completado cuando se hayan implementado las operaciones de retención restantes y el trabajo de soporte de testbench, sujeto a la dependencia unpublished-proto.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp, gcp, grpc
Área
api, cloud, testing
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.