mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-26 14:19:22 -05:00
Make redaction retention period configurable
This commit is contained in:
parent
549f974897
commit
3ff0422d2d
@ -306,6 +306,11 @@ listeners:
|
|||||||
#
|
#
|
||||||
#allow_per_room_profiles: false
|
#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 ##
|
## TLS ##
|
||||||
|
|
||||||
|
@ -162,6 +162,16 @@ class ServerConfig(Config):
|
|||||||
|
|
||||||
self.mau_trial_days = config.get("mau_trial_days", 0)
|
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
|
# Options to disable HS
|
||||||
self.hs_disabled = config.get("hs_disabled", False)
|
self.hs_disabled = config.get("hs_disabled", False)
|
||||||
self.hs_disabled_message = config.get("hs_disabled_message", "")
|
self.hs_disabled_message = config.get("hs_disabled_message", "")
|
||||||
@ -718,6 +728,11 @@ class ServerConfig(Config):
|
|||||||
# Defaults to 'true'.
|
# Defaults to 'true'.
|
||||||
#
|
#
|
||||||
#allow_per_room_profiles: false
|
#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()
|
% locals()
|
||||||
)
|
)
|
||||||
|
@ -1566,10 +1566,12 @@ class EventsStore(
|
|||||||
Deferred
|
Deferred
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if self.stream_ordering_month_ago is None:
|
if not self.hs.config.redaction_retention_period:
|
||||||
return
|
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
|
# 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
|
# 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)
|
{"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 * 24 * 31)
|
||||||
self.reactor.advance(60 * 60 * 2)
|
self.reactor.advance(60 * 60 * 2)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user