diff --git a/specs/stein/delete-message-with-claim-id.rst b/specs/stein/delete-message-with-claim-id.rst new file mode 100644 index 0000000..0ae2431 --- /dev/null +++ b/specs/stein/delete-message-with-claim-id.rst @@ -0,0 +1,105 @@ +.. + This template should be in ReSTructured text. The filename in the git + repository should match the launchpad URL, for example a URL of + https://blueprints.launchpad.net/zaqar/+spec/awesome-thing should be named + awesome-thing.rst. + + Please do not delete any of the sections in this + template. If you have nothing to say for a whole section, just write: None + + For help with syntax, see http://sphinx-doc.org/rest.html + To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html + +============================= +Delete Message With Claim ID +============================= + +https://blueprints.launchpad.net/zaqar/+spec/delete-message-with-claim-id + +Delete Message with claim id means that when a user deletes a message, the message +must be claimed. If you want to delete a message, you will have to use both message +id and claim id. This can improve the security of the message. + +Problem description +=================== + +Currently, any client who knows the message ID can delete the message if it not be +claimed. It could cause some unexpected problems. A better way to delete a message +is make sure the message is deleted by the client who is claiming the message. +Amazon SQS use receipt handler to delete a message[1]. Zaqar can use claim id and +message id to delete messages. + +Proposed change +=============== + +Add a new configuration item named ``message_delete_with_claim_id``, default value +is ``False``, means it is backwards compatible. You can modify this configuration +item to decide whether to turn on the switch. If you change it to ``True``, you +need to forcibly carry the claim id when delete messages. If the claim ID is invalid, +the message can not be deleted. You must re-claim the messages, and then delete it. + +..note:: + + No matter "message_delete_with_claim_id" is True of False, admin can + always delete a message without claim_id. + +API Impact +----------- +Delete single message +DELETE: /v2/queues/test_queue/messages/{message_id}?claim_id={claim_id} + + RESPONSE CODE: 204 + +Delete messages +DELETE: /v2/queues/test_queue/messages?ids={messages_ids}&claim_ids={claim_ids} + + RESPONSE CODE: 204 + + +Drawbacks +--------- + +None + +Alternatives +------------ + +None + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + cdyangzhenyu + +Secondary assignee: + gecong + wanghao + +Milestones +---------- + +Target Milestone for completion: + stein RC3 + +Work Items +---------- + +#. Modify message delete code. +#. Add release note for this feature. +#. Update API reference. +#. Add user/developer document for this feature. +#. Change unit, functional and tempest tests accordingly. + +Dependencies +============ + +None + +References +========== + +[1]:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html \ No newline at end of file diff --git a/specs/stein/index.rst b/specs/stein/index.rst index 08c21d1..86e32ba 100644 --- a/specs/stein/index.rst +++ b/specs/stein/index.rst @@ -7,3 +7,4 @@ :maxdepth: 2 email-notification-by-internal-tool + delete-message-with-claim-id