{"action":"created","issue":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11236","repository_url":"https://api.github.com/repos/RocketChat/Rocket.Chat","labels_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11236/labels{/name}","comments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11236/comments","events_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11236/events","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/11236","id":335018414,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk2ODQ0OTY3","number":11236,"title":"[WIP | NEW | FIX] Message retention policy and pruning","user":{"login":"vynmera","id":39674991,"node_id":"MDQ6VXNlcjM5Njc0OTkx","avatar_url":"https://avatars2.githubusercontent.com/u/39674991?v=4","gravatar_id":"","url":"https://api.github.com/users/vynmera","html_url":"https://github.com/vynmera","followers_url":"https://api.github.com/users/vynmera/followers","following_url":"https://api.github.com/users/vynmera/following{/other_user}","gists_url":"https://api.github.com/users/vynmera/gists{/gist_id}","starred_url":"https://api.github.com/users/vynmera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vynmera/subscriptions","organizations_url":"https://api.github.com/users/vynmera/orgs","repos_url":"https://api.github.com/users/vynmera/repos","events_url":"https://api.github.com/users/vynmera/events{/privacy}","received_events_url":"https://api.github.com/users/vynmera/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":22,"created_at":"2018-06-22T21:03:27Z","updated_at":"2018-06-28T00:49:21Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/11236","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/11236","diff_url":"https://github.com/RocketChat/Rocket.Chat/pull/11236.diff","patch_url":"https://github.com/RocketChat/Rocket.Chat/pull/11236.patch"},"body":"Closes #6749\r\nCloses #8321\r\nCloses #9374\r\nCloses #2700\r\nCloses #2639\r\nCloses #2355 \r\nCloses #1861\r\nCloses #8757\r\nCloses #7228\r\nCloses #10870\r\n_...and possibly more!_\r\n\r\nOnce done, this PR will make deleting messages (automatically and manually) a lot easier on Rocket.Chat.\r\n\r\n- [X] Implement a bulk message deletion notification, to quickly push large message deletions to users without reload\r\n  - [X] Use it in `rooms.cleanHistory`\r\n  - [X] Use it in user deletions\r\n- [x] Implement a sidebar option to clean history\r\n  - [x] Basic implementation\r\n  - [x] Allow excluding pinned messages\r\n  - [x] Allow attachment-only mode\r\n  - [x] Break the deletion into multiple different requests, so the client can keep track of progress\r\n  - [x] Clear animation / progress bar for deleting\r\n- [ ] Retention policy\r\n  - [X] Global, set by admin\r\n    - [X] Global timer that runs every second and deletes messages over the set limit\r\n    - [X] Admin can decide what room types to target (channels, groups and/or DMs)\r\n    - [X] Allow excluding pinned messages\r\n    - [X] Allow attachment-only mode\r\n  - [ ] Per-channel, set by those with a new permission\r\n    - [ ] Set in channel info\r\n    - [ ] Can override global policy with a switch that requires `edit-privileged-setting`\r\n    - [ ] Allow excluding pinned messages\r\n    - [ ] Allow attachment-only mode\r\n    - [ ] Uses same global timer for cleanup\r\n  - [X] Message at start of channel history / in channel info if there is a retention policy set\r\n  - [ ] Message in channel info if there is a retention policy set on that channel specifically\r\n- [X] Make cleaning history also delete files (completely!)\r\n  - [X] Manual purging\r\n  - [X] Automatic purging\r\n\r\nPlease suggest any cool changes/additions! Any support is greatly appreciated.\r\n\r\n![bzzzzzzzz](https://user-images.githubusercontent.com/39674991/41799087-56d1dea0-7670-11e8-94c0-bc534b1f832d.png)"},"comment":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/comments/400875760","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/11236#issuecomment-400875760","issue_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11236","id":400875760,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMDg3NTc2MA==","user":{"login":"vynmera","id":39674991,"node_id":"MDQ6VXNlcjM5Njc0OTkx","avatar_url":"https://avatars2.githubusercontent.com/u/39674991?v=4","gravatar_id":"","url":"https://api.github.com/users/vynmera","html_url":"https://github.com/vynmera","followers_url":"https://api.github.com/users/vynmera/followers","following_url":"https://api.github.com/users/vynmera/following{/other_user}","gists_url":"https://api.github.com/users/vynmera/gists{/gist_id}","starred_url":"https://api.github.com/users/vynmera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vynmera/subscriptions","organizations_url":"https://api.github.com/users/vynmera/orgs","repos_url":"https://api.github.com/users/vynmera/repos","events_url":"https://api.github.com/users/vynmera/events{/privacy}","received_events_url":"https://api.github.com/users/vynmera/received_events","type":"User","site_admin":false},"created_at":"2018-06-28T00:49:21Z","updated_at":"2018-06-28T00:49:21Z","author_association":"CONTRIBUTOR","body":"Let me rephrase that, what should the default permissions be?\n\nPrune channel -> admin only or for channel owners too?\nSame with setting per-channel retention policies - admin-only or allow channel owners to set them too?\n\nDefaults, of course - can be edited in Permissions"}}
{"actor":{"display_login":"vynmera"}}