{"action":"closed","issue":{"url":"https://api.github.com/repos/Kinto/kinto/issues/1352","repository_url":"https://api.github.com/repos/Kinto/kinto","labels_url":"https://api.github.com/repos/Kinto/kinto/issues/1352/labels{/name}","comments_url":"https://api.github.com/repos/Kinto/kinto/issues/1352/comments","events_url":"https://api.github.com/repos/Kinto/kinto/issues/1352/events","html_url":"https://github.com/Kinto/kinto/issues/1352","id":266990017,"number":1352,"title":"RFE: Add support for soft/virtual deletes at server level.","user":{"login":"zakaluka","id":1186367,"avatar_url":"https://avatars2.githubusercontent.com/u/1186367?v=4","gravatar_id":"","url":"https://api.github.com/users/zakaluka","html_url":"https://github.com/zakaluka","followers_url":"https://api.github.com/users/zakaluka/followers","following_url":"https://api.github.com/users/zakaluka/following{/other_user}","gists_url":"https://api.github.com/users/zakaluka/gists{/gist_id}","starred_url":"https://api.github.com/users/zakaluka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zakaluka/subscriptions","organizations_url":"https://api.github.com/users/zakaluka/orgs","repos_url":"https://api.github.com/users/zakaluka/repos","events_url":"https://api.github.com/users/zakaluka/events{/privacy}","received_events_url":"https://api.github.com/users/zakaluka/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-10-19T21:08:38Z","updated_at":"2017-10-20T21:36:25Z","closed_at":"2017-10-20T21:36:25Z","author_association":"NONE","body":"There are certain use cases where it is not permissible to \"hard delete\" anything from the database.  Instead, everything must be \"virtual deleted\" only.  This functionality would be similar to Kinto.js' virtual delete support (but not exactly because Kinto.js will \"hard delete\" a virtually deleted item on sync).\r\n\r\nThis request is to support the use cases mentioned above at the server level in one of the following ways:\r\n\r\n1. Separate 'write' permissions into 'update' and 'delete'.  This would break backwards compatibility (unless 'write' were kept on in addition to 'update' and 'delete').\r\n\r\n1. Allow an administrator to enable/disable HTTP verbs (e.g. DELETE in this instance).  I don't even know if this is possible, as I'm just starting to learn / use Kinto.\r\n\r\n    An alternative to this strategy would be to block verbs at a firewall level, though I would prefer this solution to be within Kinto rather than relying on other pieces of software.\r\n\r\n1. Provide \"virtual delete\" as an option that would change the server's default behavior on delete to mark an item as 'deleted' and, maybe, hide such items by default in queries.  This would require adding an attribute to every item (a status like Kinto.js' `_status` with values such as \"active\" and \"deleted\").  This would keep backwards compatibility if the server were to assume that any item that is missing this attribute is in Active status.\r\n\r\n    I don't know much about Kinto plugins.  However, if this option can be implemented as a plugin, I would be willing to try and take a crack at it.  However, not really knowing Kinto or Python means that hopefully there's a really good tutorial (or sample plugin) out there that teaches you how to do such things.\r\n\r\nThe purpose of this post is to hopefully start a discussion on this topic and, eventually, provide such functionality within the Kinto server."}}
{"actor":{"display_login":"zakaluka"}}