Make redaction retention period configurable
parent
549f974897
commit
3ff0422d2d
|
@ -306,6 +306,11 @@ listeners:
|
|||
#
|
||||
#allow_per_room_profiles: false
|
||||
|
||||
# How long to keep redacted events in unredacted form in the database.
|
||||
# By default redactions are kept indefinitely.
|
||||
#
|
||||
#redaction_retention_period: 30d
|
||||
|
||||
|
||||
## TLS ##
|
||||
|
||||
|
|
|
@ -162,6 +162,16 @@ class ServerConfig(Config):
|
|||
|
||||
self.mau_trial_days = config.get("mau_trial_days", 0)
|
||||
|
||||
# How long to keep redacted events in the database in unredacted form
|
||||
# before redacting them.
|
||||
redaction_retention_period = config.get("redaction_retention_period")
|
||||
if redaction_retention_period:
|
||||
self.redaction_retention_period = self.parse_duration(
|
||||
redaction_retention_period
|
||||
)
|
||||
else:
|
||||
self.redaction_retention_period = None
|
||||
|
||||
# Options to disable HS
|
||||
self.hs_disabled = config.get("hs_disabled", False)
|
||||
self.hs_disabled_message = config.get("hs_disabled_message", "")
|
||||
|
@ -718,6 +728,11 @@ class ServerConfig(Config):
|
|||
# Defaults to 'true'.
|
||||
#
|
||||
#allow_per_room_profiles: false
|
||||
|
||||
# How long to keep redacted events in unredacted form in the database.
|
||||
# By default redactions are kept indefinitely.
|
||||
#
|
||||
#redaction_retention_period: 30d
|
||||
"""
|
||||
% locals()
|
||||
)
|
||||
|
|
|
@ -1566,10 +1566,12 @@ class EventsStore(
|
|||
Deferred
|
||||
"""
|
||||
|
||||
if self.stream_ordering_month_ago is None:
|
||||
if not self.hs.config.redaction_retention_period:
|
||||
return
|
||||
|
||||
max_pos = self.stream_ordering_month_ago
|
||||
max_pos = yield self.find_first_stream_ordering_after_ts(
|
||||
self._clock.time_msec() - self.hs.config.redaction_retention_period
|
||||
)
|
||||
|
||||
# We fetch all redactions that point to an event that we have that has
|
||||
# a stream ordering from over a month ago, that we haven't yet censored
|
||||
|
|
|
@ -344,7 +344,9 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
{"content": {"body": "t", "msgtype": "message"}}, json.loads(event_json)
|
||||
)
|
||||
|
||||
# Advance by 30 days
|
||||
# Advance by 30 days, then advance again to ensure that the looping call
|
||||
# for updating the stream position gets called and then the looping call
|
||||
# for the censoring gets called.
|
||||
self.reactor.advance(60 * 60 * 24 * 31)
|
||||
self.reactor.advance(60 * 60 * 2)
|
||||
|
||||
|
|
Loading…
Reference in New Issue