reflectionircd/docs/specs/delete-message.md

47 lines
1.7 KiB
Markdown
Raw Normal View History

2022-01-24 10:23:06 -05:00
---
title: Message Deletion
layout: spec
work-in-progress: true
copyrights:
-
name: "Emerson Veenstra"
email: "ircv3@emersonveenstra.net"
period: "2022"
---
## Notes for implementing work-in-progress version
This is a work-in-progress specification.
Software implementing this work-in-progress specification MUST NOT use the
unprefixed `delete-message` capability name. Instead, implementations SHOULD
use the `draft/delete-message` capability name to be interoperable with other
software implementing a compatible work-in-progress version.
The final version of the specification will use an unprefixed capability name.
## Introduction
This specification describes a standardized way to signal to clients that a previously
sent message should no longer be displayed.
## Implementation
Servers and clients implementing this spec MUST also implement the `message-tags` capability.
To request message deletion, clients send a `DELETEMSG` to the channel or user of the original message.
This `DELETEMSG` MUST have the tag `draft/delete-message` with a required value of the `msgid` of the
message to delete. It MAY have an optional second parameter to specify a reason for deletion.
Clients who receive a `DELETEMSG` with the `draft/delete-message` tag MUST remove all displayed content from
the specified `msgid`. If the original message is ephemeral, clients SHOULD remove it entirely;
otherwise they SHOULD replace it with the deletion reason, or a generic substitute.
Servers MUST ensure that the user requesting deletion has sufficient privileges to delete the specified
message. Servers MUST remove the content of the original message from all persistent history stores, and
MAY replace the content with a generic deletion message if needed.
## Examples