diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-11-06 16:53:16 -0500 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-11-07 19:07:15 -0500 |
| commit | fefe76b35b6329cbcc92755a65e47c7f62f64690 (patch) | |
| tree | 04b6fb7be7558f4060d6523c0cecbc373a6dfa3d | |
| parent | 93d204ae60fb340bb9c3dc047e375a48b98f713e (diff) | |
Shorten the default retention, dramatically.
The original retention values were loosely based on Slack's retention, for lack of a more specific motivator. Today's election results have changed my views; the service now defaults to retention more in line with the needs of communities for which deep message history may be a risk:
* Unused channels expire after 7 days.
* Used channels expire when their last message expires (as before).
* Deleted channels are purged after 6 hours (which is in line with the purge behaviour of messages).
* Messages expire after 15 days.
* Deleted messages are purged after 6 hours (as before).
No changes have been made to token expiry.
| -rw-r--r-- | src/channel/app.rs | 9 | ||||
| -rw-r--r-- | src/message/app.rs | 4 | ||||
| -rw-r--r-- | src/test/fixtures/mod.rs | 2 |
3 files changed, 8 insertions, 7 deletions
diff --git a/src/channel/app.rs b/src/channel/app.rs index 21784e9..1e341e3 100644 --- a/src/channel/app.rs +++ b/src/channel/app.rs @@ -97,8 +97,9 @@ impl<'a> Channels<'a> { } pub async fn expire(&self, relative_to: &DateTime) -> Result<(), ExpireError> { - // Somewhat arbitrarily, expire after 90 days. - let expire_at = relative_to.to_owned() - TimeDelta::days(90); + // Somewhat arbitrarily, expire after 7 days. Active channels will not be + // expired until their messages expire. + let expire_at = relative_to.to_owned() - TimeDelta::days(7); let mut tx = self.db.begin().await?; let expired = tx.channels().expired(&expire_at).await?; @@ -128,8 +129,8 @@ impl<'a> Channels<'a> { } pub async fn purge(&self, relative_to: &DateTime) -> Result<(), sqlx::Error> { - // Somewhat arbitrarily, purge after 7 days. - let purge_at = relative_to.to_owned() - TimeDelta::days(7); + // Somewhat arbitrarily, purge after 6 hours. + let purge_at = relative_to.to_owned() - TimeDelta::hours(6); let mut tx = self.db.begin().await?; tx.channels().purge(&purge_at).await?; diff --git a/src/message/app.rs b/src/message/app.rs index 137a27d..7bf68d1 100644 --- a/src/message/app.rs +++ b/src/message/app.rs @@ -80,8 +80,8 @@ impl<'a> Messages<'a> { } pub async fn expire(&self, relative_to: &DateTime) -> Result<(), sqlx::Error> { - // Somewhat arbitrarily, expire after 90 days. - let expire_at = relative_to.to_owned() - TimeDelta::days(90); + // Somewhat arbitrarily, expire after 15 days. + let expire_at = relative_to.to_owned() - TimeDelta::days(15); let mut tx = self.db.begin().await?; diff --git a/src/test/fixtures/mod.rs b/src/test/fixtures/mod.rs index 470b31a..21e4483 100644 --- a/src/test/fixtures/mod.rs +++ b/src/test/fixtures/mod.rs @@ -24,7 +24,7 @@ pub fn now() -> RequestedAt { } pub fn old() -> RequestedAt { - let timestamp = Utc::now() - TimeDelta::days(95); + let timestamp = Utc::now() - TimeDelta::days(20); timestamp.into() } |
