I have a room, which I want to only retain the last day’s worth of messages, which shouldn’t be that hard. According to the documentation I need to set the global retention policy, done, and then I can change the room retention policy using the ‘Prune messages’ option.
This option just gives the same as without global retention enabled and only allows me to delete manually.
Ah, I thought, maybe this is an API only feature, let’s give that a shot, I do have permissions (checked).
Using REST I call /api/v1/rooms.saveRoomSettings with
{
"rid": "65eaec4c1f7c25d24a19f68a",
"retentionEnabled": true,
"retentionOverrideGlobal": true,
"retentionMaxAge": 36000
}
and I get a success:true, which is nice. There is some conflict about retentionMaxAge as to whether this is days, seconds or milliseconds. I’ve tried both 1 for 1 day, and an hour in seconds and milliseconds, all the same.
In the client, I get
Messages older than invalid date are automatically pruned here.
And nothing ever prunes anyway.
So now I’m stuck. I could of course write something to iterate through the messages via REST and just delete them one by one, but since Rocket has a retention feature I’d like to use that if possible.
Anyone been here before? Any help or pointers appreciated.