linagora / james-project

Mirror of Apache James Project
Apache License 2.0
70 stars 63 forks source link

[EPIC] [DTM] Use of a single bucket #5234

Open chibenwa opened 1 month ago

chibenwa commented 1 month ago

Why?

Ideally we shall restrict Twake Mail rights to a restricted set of buckets.

How?

Instead of using the following buckets:

Screenshot from 2024-07-24 00-37-29

Use a single deleted-message-vault bucket.

Keys in there would be organized by month: 2024/07/{UUID}

We could provide a custom implementation of the DeletedMessageVault relying directly on the S3 client without relying on the BlobStore for ease of implementation if needed. Ideally we would reuse the existing Cassandra / PGSQL metadata.

This could be a Twake Mail component first.

chibenwa commented 1 month ago

https://github.com/linagora/tmail-flutter/issues/3028#issuecomment-2246647556

CF @ducnm0711

Though this could be an important improvment, I do not foresee work on this in a short timeframe due to competing customer projects.

chibenwa commented 1 week ago

While we are at it we shall study feasability of per-domain isolation strategy of deleted message vault CF https://github.com/linagora/james-project/issues/5263

chibenwa commented 5 days ago

Got bitten hard on CNB prod by this: deleted-messages-2024-09-01 bucket did not exist and TMail had no right to create it...

ducnm0711 commented 5 days ago

Ideally we shall restrict Twake Mail rights to a restricted set of buckets

Ideally Twake Mail should create all necessary data in a single bucket. Restricting access right to a set of buckets is a feature of s3 Service Provider.