Skip to content

Commit 358a253

Browse files
guusdkiNPUTmice
authored andcommitted
XEP-0377: Add report processing opt-in
Introduces an additional feature that allows end-users to opt-in to processing of submitted reports. Changes like these were discussed on the XSF's 'standards' mailing list, as archived at https://mail.jabber.org/hyperkitty/list/[email protected]/thread/RDLWOMBMT24DCH54O2HEV2S3WW67FETE/
1 parent 41359fd commit 358a253

File tree

1 file changed

+108
-6
lines changed

1 file changed

+108
-6
lines changed

xep-0377.xml

Lines changed: 108 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
<supersededby/>
2727
<shortname>NOT_YET_ASSIGNED</shortname>
2828
&sam;
29+
<revision>
30+
<version>0.4.0</version>
31+
<date>2025-03-11</date>
32+
<initials>gdk</initials>
33+
<remark><p>Add spam report processing opt-in.</p></remark>
34+
</revision>
2935
<revision>
3036
<version>0.3.1</version>
3137
<date>2023-04-03</date>
@@ -141,6 +147,49 @@
141147
</text>
142148
</report>]]></example>
143149
</section1>
150+
<section1 topic='Report Processing Opt-in' anchor='processing'>
151+
<p>
152+
Reports MAY contain user provided approval ('opt-in') for processing of the report.
153+
This document defines the following processing of a report:
154+
</p>
155+
<dl>
156+
<di>
157+
<dt>report-origin</dt>
158+
<dd>Forward the report to the domain where the reported message originated.</dd>
159+
</di>
160+
<di>
161+
<dt>third-party</dt>
162+
<dd>Forward the report to third-party entities that process reports for purposes
163+
including, but not limited to, the collection of statistics, analysis, and
164+
block list services.</dd>
165+
</di>
166+
</dl>
167+
<p>
168+
To express approval of a certain type of processing, a &lt;report-origin&gt; and/or
169+
&lt;third-party&gt; element is added to the report.
170+
</p>
171+
<example caption='Report with optional processing opt-in'><![CDATA[
172+
<report xmlns="urn:xmpp:reporting:1" reason="urn:xmpp:reporting:spam">
173+
<text xml:lang="en">
174+
Never came trouble to my house like this.
175+
</text>
176+
<report-origin/>
177+
<third-party/>
178+
</report>]]></example>
179+
<p>
180+
Servers MAY ignore processing options when their implementation does not support
181+
the corresponding functionality. Servers MUST NOT process a report if the report
182+
that do not explicitly include the corresponding processing option.
183+
</p>
184+
<p>
185+
Servers MAY anonymize any submission to third-party services to protect the identity
186+
of the reporter. Servers SHOULD NOT protect the identity of the reported entity (the
187+
alleged spammer/abuser), as it hurts processing without adding any significant
188+
protection: it is likely that the origin server can easily look up the original
189+
stanza in their local message archive anyway. Servers can anonymize the report by
190+
removing the 'to' attribute of the reported message.
191+
</p>
192+
</section1>
144193
<section1 topic='Use with the Blocking Command' anchor='blocking'>
145194
<p>
146195
To send a report, a report payload MAY be inserted into an &lt;item/&gt;
@@ -200,6 +249,11 @@
200249
the "block and report" dialog is accessed, and multiple JIDs when the
201250
"block" dialog is accessed.
202251
</p>
252+
<p>
253+
Software clients may offer processing opt-in options to an end-user whenever
254+
they are reporting a message, but also could use a (configurable) default
255+
that is automatically applied to all reports issued by the client.
256+
</p>
203257
</section1>
204258
<section1 topic='Internationalization Considerations' anchor='i18n'>
205259
<p>
@@ -235,11 +289,12 @@
235289
</section2>
236290
<section2 topic='Abuse Reporting Registry' anchor='registrar-reporting'>
237291
<p>
238-
The XMPP Registrar shall maintain a registry of abuse report reasons.
239-
All abuse report reason registrations shall be defined in separate
240-
specifications (not in this document). Application types defined within
241-
the XEP series MUST be registered with the XMPP Registrar, resulting in
242-
protocol URNs representing the reason.
292+
The XMPP Registrar shall maintain a registry of abuse report reasons
293+
and abuse report processing opt-in options. All abuse report reason
294+
and processing opt-in registrations shall be defined in separate
295+
specifications (not in this document). Application types defined
296+
within the XEP series MUST be registered with the XMPP Registrar,
297+
resulting in protocol URNs representing the reason.
243298
</p>
244299
&REGPROCESS;
245300
<code>
@@ -250,7 +305,17 @@
250305
<doc>
251306
The document in which the report reason is specified.
252307
</doc>
253-
</reason>]]></code>
308+
</reason>
309+
310+
<processing>
311+
<name>Element name representing the processing opt-in.</name>
312+
<namespace>A unique qualifier of the element name</namespace>
313+
<desc>A natural-language summary of the processing functionality.</desc>
314+
<doc>
315+
The document in which the report processing functionality is specified.
316+
</doc>
317+
</processing>
318+
]]></code>
254319
</section2>
255320
<section2 topic='Abuse Reporting Reasons' anchor='registrar-reasons'>
256321
<p>This specification defines the following abuse reporting reasons:</p>
@@ -276,6 +341,37 @@
276341
<feature>urn:xmpp:reporting:abuse</feature>
277342
<desc>Used to report general abuse that is not covered by a more specific reason.</desc>
278343
<doc>XEP-0377</doc>
344+
</reason>]]></code>
345+
</section2>
346+
<section2 topic='Abuse Reporting Processing' anchor='registrar-processing'>
347+
<p>This specification defines the following processing opt-in identifiers:</p>
348+
<ul>
349+
<li>report-origin</li>
350+
<li>third-party</li>
351+
</ul>
352+
<p>
353+
Upon advancement of this specification from a status of Experimental to
354+
a status of Draft, the &REGISTRAR; shall add the following definition to
355+
the abuse report processing opt-in options registry, as described in this
356+
document:
357+
</p>
358+
<code><![CDATA[
359+
<processing>
360+
<name>report-origin</name>
361+
<namespace>urn:xmpp:reporting:spam</namespace>
362+
<desc>Forward the report to the domain where the reported message originated.</desc>
363+
<doc>XEP-0377</doc>
364+
</reason>]]></code>
365+
<code><![CDATA[
366+
<reason>
367+
<name>third-party</name>
368+
<namespace>urn:xmpp:reporting:spam</namespace>
369+
<desc>
370+
Forward the report to third-party entities that process reports for purposes
371+
including, but not limited to, the collection of statistics, analysis, and
372+
block list services.
373+
</desc>
374+
<doc>XEP-0377</doc>
279375
</reason>]]></code>
280376
</section2>
281377
</section1>
@@ -315,6 +411,8 @@
315411
<xs:sequence>
316412
<xs:element ref='sid:stanza-id' minOccurs='0' maxOccurs='unbounded'/>
317413
<xs:element ref='text' minOccurs='0' maxOccurs='unbounded'/>
414+
<xs:element ref='report-origin' minOccurs='0' maxOccurs='1'/>
415+
<xs:element ref='third-party' minOccurs='0' maxOccurs='1'/>
318416
</xs:sequence>
319417
<xs:attribute name='reason' type='xs:string' use='required'/>
320418
</xs:complexType>
@@ -334,6 +432,10 @@
334432
</xs:complexType>
335433
</xs:element>
336434
435+
<xs:element name='report-origin' type='empty'/>
436+
437+
<xs:element name='third-party' type='empty'/>
438+
337439
<xs:simpleType name='empty'>
338440
<xs:restriction base='xs:string'>
339441
<xs:enumeration value=''/>

0 commit comments

Comments
 (0)