Skip to content

Commit 1cf3755

Browse files
committed
New XEP: XMPP Service Administrators
1 parent cce9d74 commit 1cf3755

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

inbox/xmpp-service-administrators.xml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<!DOCTYPE xep SYSTEM 'xep.dtd' [
3+
<!ENTITY % ents SYSTEM 'xep.ent'>
4+
%ents;
5+
]>
6+
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
7+
<xep>
8+
<header>
9+
<title>XMPP Service Administrators</title>
10+
<abstract>This document defines a method to define administrators for a XMPP Service.</abstract>
11+
&LEGALNOTICE;
12+
<number>xxxx</number>
13+
<status>ProtoXEP</status>
14+
<type>Standard Track</type>
15+
<sig>Standards</sig>
16+
<approver>Council</approver>
17+
<dependencies>
18+
<spec>XMPP Core</spec>
19+
<spec>XEP-0128</spec>
20+
</dependencies>
21+
<supersedes/>
22+
<supersededby/>
23+
<shortname>N/A</shortname>
24+
&edhelas;
25+
<revision>
26+
<version>0.0.1</version>
27+
<date>2025-07-31</date>
28+
<initials>tj</initials>
29+
<remark><p>Initial version.</p></remark>
30+
</revision>
31+
</header>
32+
<section1 topic='Introduction' anchor='intro'>
33+
<p>An XMPP Service administrator might be interested to moderate or manage its own Service from a XMPP entity.</p>
34+
<p>Until now workarounds were done by XMPP servers to allow the administrators to do so. For example by adding them as owner of all the chatrooms or owner of all the Pubsub nodes managed by their services.</p>
35+
<p>This document allow an XMPP Service to expose a list of administrators and define how it should handle their interactions.</p>
36+
</section1>
37+
<section1 topic='Business Rules' anchor='bizrules'>
38+
<p>The administrators are defined as a list of JIDs that can be declared in the Service configuration or by &xep0050; commands. This document doesn't specify how this list is declared or maintained.</p>
39+
40+
<section2 topic='Discovery' anchor='bizrules-disco'>
41+
<p>In order to discover whether a XMPP Service entity has an administrators list configured an entity MUST use &xep0030;.</p>
42+
43+
<p>To make such discovery possible, we specify a &xep0128; mechanism that a server SHOULD return in response to Service discovery information ("disco#info") requests sent to the bare domain of the server. This information MUST be scoped using a FORM_TYPE of "http://jabber.org/network/serverinfo" (as already specified in &xep0128;) and data form fields registered for this purpose as defined in the <link url='#registrar'>XMPP Registrar Considerations</link> section of this document.</p>
44+
45+
<example caption='Entity queries server for information'><![CDATA[
46+
<iq from='[email protected]/chamber'
47+
to='example.org'
48+
id='disco1'
49+
type='get'>
50+
<query xmlns='http://jabber.org/protocol/disco#info'/>
51+
</iq>
52+
]]></example>
53+
<example caption='Server communicates information'><![CDATA[
54+
<iq from='example.org'
55+
to='[email protected]/chamber'
56+
id='disco1'
57+
type='result'>
58+
<query xmlns='http://jabber.org/protocol/disco#info'>
59+
<identity category='server' type='im'/>
60+
<feature var='http://jabber.org/protocol/disco'/>
61+
<x xmlns='jabber:x:data' type='result'>
62+
<field var='FORM_TYPE' type='hidden'>
63+
<value>http://jabber.org/network/serverinfo</value>
64+
</field>
65+
<field var='administrators'>
66+
<value>[email protected]</value>
67+
<value>[email protected]</value>
68+
</field>
69+
</x>
70+
</query>
71+
</iq>
72+
]]></example>
73+
</section2>
74+
75+
<section2 topic='Service logic' anchor='bizrules-service-logic'>
76+
<p>An administrator have full administrative access on all the content managed by the Service.</p>
77+
<p>A &xep0045; Service should consider an administrator as having the same rights as an owner of all the managed rooms.</p>
78+
<p>A &xep0060; Service should consider an administrator as having the same rights as an owner of all the managed nodes.</p>
79+
80+
<p>To prevent confusion an administrator SHOULD NOT be listed as owner of a room or a node. However the rooms and nodes SHOULD expose the same features as owners if the entity sends a Service discovery information ("disco#info"). This way the entity can adapt its interface to expose all the administration features.</p>
81+
</section2>
82+
83+
<section2 topic='Entity logic' anchor='bizrules-entity-logic'>
84+
<p>When a JID declared as an administrator is shown or is having interactions in the context of the service, a connected entity SHOULD display it in a distinctive way (eg. a specific icon or color). This way the users are better aware of the moderations or interactions done by the administrators in the service.</p>
85+
</section2>
86+
</section1>
87+
88+
<section1 topic='Security Considerations' anchor='security'>
89+
<p>None.</p>
90+
</section1>
91+
<section1 topic='IANA Considerations' anchor='iana'>
92+
<p>This document requires no interaction with &IANA;.</p>
93+
</section1>
94+
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
95+
<p>The &REGISTRAR; includes the following information in its registries.</p>
96+
<section2 topic='Field Standardization' anchor='registrar-formtype'>
97+
<p>&xep0068; defines a process for standardizing the fields used within Data Forms qualified by a particular namespace, and &xep0128; describes how to use field standardization in the context of Service discovery. This section registers fields for server information scoped by the "http://jabber.org/network/serverinfo" FORM_TYPE.</p>
98+
<code caption='Registry Submission'><![CDATA[
99+
<form_type>
100+
<name>http://jabber.org/network/serverinfo</name>
101+
<doc>XEP-0157</doc>
102+
<desc>
103+
Forms enabling the communication of administrators
104+
and other server information.
105+
</desc>
106+
<field
107+
var='administrators'
108+
type='list-multi'
109+
label='One or more JIDs listing the administrators of the service'/>
110+
</form_type>
111+
]]></code>
112+
</section2>
113+
</section1>
114+
</xep>

0 commit comments

Comments
 (0)