Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XEP-0424 - Message retractation / MAM message deletion #3340

Open
mremond opened this issue Jul 24, 2020 · 6 comments
Open

XEP-0424 - Message retractation / MAM message deletion #3340

mremond opened this issue Jul 24, 2020 · 6 comments
Assignees

Comments

@mremond
Copy link
Member

mremond commented Jul 24, 2020

XEP-0313: Message Archive Management does not propose a way to delete a message.

It would be handy to propose a draft XEP and implementation to handle server-side message deletion from archive.

Things to take into account:

Let's discuss here draft protocol and implementation.

@weiss
Copy link
Member

weiss commented Jul 24, 2020

I think such a draft should also support deletion of HTTP-uploaded resources when deleting a message that references an uploaded file. The problem with supporting this cleanly is that the actual referencing of uploaded files is done quite ad-hoc: The message typically just holds the URI to an uploaded file in the (possibly encrypted) body and in an OOB-URL. Nevertheless, if we support message deletion without upload deletion, it will take no longer than 48 hours until people complain 😄

@mremond mremond assigned mremond, prefiks and jsautret and unassigned mremond Jul 30, 2020
@PasqualePuzio
Copy link

+1 this would make perfect sense in modern messaging applications

@haimomesi
Copy link

This Link is a draft from 2015. might give a direction towards implementing it as well.

Once a draft is intact, can we expect it to be in the next versions?

@Sheharyar566
Copy link

Any progress on this?

@manuel-rubio
Copy link

I guess you can get inspiration from MongooseIM: esl/MongooseIM#2739

@mremond mremond changed the title Server-side message deletion for MAM messages XEP-0424 - Message retractation / MAM message deletion Jul 11, 2023
@codesxt
Copy link

codesxt commented Oct 2, 2024

I can confirm that Message Retraction is working and is deleting messages from MAM. I did an integration in my app and the row with the message was deleted from the database.

Still I think it is not being advertised to disco#info as required by XEP-0424. It should advertise urn:xmpp:message-retract:1 as:

<iq type='result'
    to='[email protected]/orchard'
    from='[email protected]/balcony'
    id='info1'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
...
    <feature var='urn:xmpp:message-retract:1'/>
...
  </query>
</iq>

But I'm not seeing it when I query for disco#info:

<iq xml:lang='en' to='...@.../...' from='...' type='result' id='...'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity type='pep' category='pubsub'/>
    <identity name='ejabberd' type='im' category='server'/>
    <feature var='http://jabber.org/protocol/commands'/>
    <feature var='http://jabber.org/protocol/disco#info'/>
    <feature var='http://jabber.org/protocol/disco#items'/>
    <feature var='http://jabber.org/protocol/offline'/>
    <feature var='http://jabber.org/protocol/pubsub'/>
    <feature var='http://jabber.org/protocol/pubsub#access-authorize'/>
    <feature var='http://jabber.org/protocol/pubsub#access-open'/>
    <feature var='http://jabber.org/protocol/pubsub#access-presence'/>
    <feature var='http://jabber.org/protocol/pubsub#access-whitelist'/>
    <feature var='http://jabber.org/protocol/pubsub#auto-create'/>
    <feature var='http://jabber.org/protocol/pubsub#auto-subscribe'/>
    <feature var='http://jabber.org/protocol/pubsub#collections'/>
    <feature var='http://jabber.org/protocol/pubsub#config-node'/>
    <feature var='http://jabber.org/protocol/pubsub#config-node-max'/>
    <feature var='http://jabber.org/protocol/pubsub#create-and-configure'/>
    <feature var='http://jabber.org/protocol/pubsub#create-nodes'/>
    <feature var='http://jabber.org/protocol/pubsub#delete-items'/>
    <feature var='http://jabber.org/protocol/pubsub#delete-nodes'/>
    <feature var='http://jabber.org/protocol/pubsub#filtered-notifications'/>
    <feature var='http://jabber.org/protocol/pubsub#get-pending'/>
    <feature var='http://jabber.org/protocol/pubsub#instant-nodes'/>
    <feature var='http://jabber.org/protocol/pubsub#item-ids'/>
    <feature var='http://jabber.org/protocol/pubsub#last-published'/>
    <feature var='http://jabber.org/protocol/pubsub#manage-subscriptions'/>
    <feature var='http://jabber.org/protocol/pubsub#member-affiliation'/>
    <feature var='http://jabber.org/protocol/pubsub#modify-affiliations'/>
    <feature var='http://jabber.org/protocol/pubsub#multi-items'/>
    <feature var='http://jabber.org/protocol/pubsub#outcast-affiliation'/>
    <feature var='http://jabber.org/protocol/pubsub#persistent-items'/>
    <feature var='http://jabber.org/protocol/pubsub#presence-notifications'/>
    <feature var='http://jabber.org/protocol/pubsub#presence-subscribe'/>
    <feature var='http://jabber.org/protocol/pubsub#publish'/>
    <feature var='http://jabber.org/protocol/pubsub#publish-only-affiliation'/>
    <feature var='http://jabber.org/protocol/pubsub#publish-options'/>
    <feature var='http://jabber.org/protocol/pubsub#publisher-affiliation'/>
    <feature var='http://jabber.org/protocol/pubsub#purge-nodes'/>
    <feature var='http://jabber.org/protocol/pubsub#retract-items'/>
    <feature var='http://jabber.org/protocol/pubsub#retrieve-affiliations'/>
    <feature var='http://jabber.org/protocol/pubsub#retrieve-default'/>
    <feature var='http://jabber.org/protocol/pubsub#retrieve-items'/>
    <feature var='http://jabber.org/protocol/pubsub#retrieve-subscriptions'/>
    <feature var='http://jabber.org/protocol/pubsub#shim'/>
    <feature var='http://jabber.org/protocol/pubsub#subscribe'/>
    <feature var='http://jabber.org/protocol/pubsub#subscription-notifications'/>
    <feature var='http://jabber.org/protocol/rsm'/>
    <feature var='iq'/>
    <feature var='jabber:iq:last'/>
    <feature var='jabber:iq:privacy'/>
    <feature var='jabber:iq:register'/>
    <feature var='jabber:iq:version'/>
    <feature var='msgoffline'/>
    <feature var='presence'/>
    <feature var='urn:xmpp:blocking'/>
    <feature var='urn:xmpp:carbons:2'/>
    <feature var='urn:xmpp:carbons:rules:0'/>
    <feature var='urn:xmpp:extdisco:2'/>
    <feature var='urn:xmpp:mam:0'/>
    <feature var='urn:xmpp:mam:1'/>
    <feature var='urn:xmpp:mam:2'/>
    <feature var='urn:xmpp:mam:tmp'/>
    <feature var='urn:xmpp:ping'/>
    <feature var='vcard-temp'/>
    <x type='result' xmlns='jabber:x:data'>
      <field var='FORM_TYPE' type='hidden'>
        <value>http://jabber.org/network/serverinfo</value>
      </field>
    </x>
  </query>
</iq>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants