From 817517b9c141579159177cf66091e1b2a99ac04b Mon Sep 17 00:00:00 2001 From: Steve Kille Date: Wed, 30 Nov 2016 08:10:17 +0000 Subject: [PATCH 1/9] Make tombstone optional --- xep-0369.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index 7b4389c7..78806054 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -1233,7 +1233,7 @@ the participant is not be subscribed to all nodes associated with the channel (i

- A MIX channel MAY support message retraction, where the sender of a messages or an administrator deletes a message. If this is done the original message MUST be replaced by a tombstone. The protocol to request retraction does this by a message with a <retract> element as shown in the following example. + A MIX channel MAY support message retraction, where the sender of a messages or an authorized administrator deletes a message. If this is done the original message MAY be replaced by a tombstone. The protocol to request retraction does this by a message with a <retract> element as shown in the following example.

]]>

- The MIX channel will allow a user to retract a message sent by the user if the 'Allow User Message Retraction' option is configured. The MIX channel will allow a user to retract any message if the user is in the group specified by the 'Administrator Message Retraction Rights' option. + The MIX channel will allow a user to retract a message sent by the user if the 'Allow User Message Retraction' option is configured. The MIX channel will allow an administrative user to retract any message if the user is in the group specified by the 'Administrator Message Retraction Rights' option.

If the retraction message is accepted, it will be distributed to channel participants. This will allow retraction to happen in the MAM archive of each channel participant and to reflect the retraction in client GUI. A client receiving a retraction message SHOULD ensure that the retracted message is no longer displayed to the end user.

+

- When a message is retracted the original message <body> MUST be removed and MUST be replaced with a tombstone using the <retracted> element that shows the JID of user performing the retraction and the time of the retraction. + Two approaches to message retraction may be used. In the first approach, the retracted message is simply removed. This is appropriate where retraction is provided as a user service and the user has rights to remove messages sent from the record. +

+

+ The second approach is to leave a tombstone, which if taken MUST be done in the following manner. This is appropriate where it is desired to leave a record of the message that was redcated. + With this approach, the original message <body> is removed and replaced with a tombstone using the <retracted> element that shows the JID of user performing the retraction and the time of the retraction.

From ab3740dff23ad49b86a58d45ebf4fe0b68823da1 Mon Sep 17 00:00:00 2001 From: Steve Kille Date: Wed, 30 Nov 2016 08:28:21 +0000 Subject: [PATCH 2/9] Updated Schema and XMPP Registrar Sections --- xep-0369.xml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index 78806054..29450ddd 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -2004,12 +2004,7 @@ A client creates a channel by sending a simple request to the MIX service. A c - +

This section lists a number of capabilities not specified in this version of MIX which were provided in &xep0045;.

@@ -2030,6 +2025,8 @@ A client creates a channel by sending a simple request to the MIX service. A c

TBD.

Discuss normalization of nicknames.

+ +

TBD.

Topics to cover:

@@ -2038,15 +2035,20 @@ A client creates a channel by sending a simple request to the MIX service. A c
  • nickname registration and security implications of normalization
  • + +

    None.

    + -

    Register a namespace.

    +

    The urn:xmpp:mix namespace must be registered.

    + -

    TBD.

    +

    To be supplied when MIX progresses to proposed standard.

    +

    Thanks to the following who have made contributions: Dave Cridland, Philipp Hancke, Waqas Hussain, Georg Lukas, Ralph Meijer, Edwin Mons, Emmanuel Gil Peyrot, Florian Schmaus, Lance Stout, Sam Whited, Matthew Wild and one anonymous reviewer.

    From 62c9595fbbeeda62d0ea3fc8d1ea5e4fc28ca220 Mon Sep 17 00:00:00 2001 From: Steve Kille Date: Wed, 30 Nov 2016 10:06:53 +0000 Subject: [PATCH 3/9] Sort i18n sections --- xep-0369.xml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index 29450ddd..18a10874 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -1075,9 +1075,9 @@ the participant is not be subscribed to all nodes associated with the channel (i ]]>
    -

    On success, the service informs the user of its nick. The nick that is issued might be different from the nick that was requested, for example if the service completes normalization of nicknames for purposes of internationalization.

    +

    On success, the service informs the user of its nick. MIX SHOULD apply the "nickname" profile of the PRECIS OpaqueString class, as defined in &rfc7700; to the requested nick. This means that nick that is issued might be different from the nick that was requested.

    - MIX services SHOULD apply the "nickname" profile of the PRECIS OpaqueString class, as defined in &rfc7700;. +

    - The second approach is to leave a tombstone, which if taken MUST be done in the following manner. This is appropriate where it is desired to leave a record of the message that was redcated. + The second approach is to leave a tombstone, which if taken MUST be done in the following manner. This is appropriate where it is desired to leave a record of the message that was redacted. With this approach, the original message <body> is removed and replaced with a tombstone using the <retracted> element that shows the JID of user performing the retraction and the time of the retraction.

    -

    TBD.

    -

    Discuss normalization of nicknames.

    +

    MIX allows specification of a number of human readable strings associated with a MIX channel, in particular the subject of a MIX channel and name and description information. These strings may have language set using an xml:lang attribute, and multiple values may be set provided that each one is distinguished using xml:lang. +

    + +

    Nicknames SHOULD be normalized using the "nickname" profile of the PRECIS OpaqueString class, as defined in &rfc7700;.

    @@ -2052,6 +2054,7 @@ A client creates a channel by sending a simple request to the MIX service. A c

    Thanks to the following who have made contributions: Dave Cridland, Philipp Hancke, Waqas Hussain, Georg Lukas, Ralph Meijer, Edwin Mons, Emmanuel Gil Peyrot, Florian Schmaus, Lance Stout, Sam Whited, Matthew Wild and one anonymous reviewer.

    + From b5e0ea2ef63976614eb945a0b8fdc1195e23df72 Mon Sep 17 00:00:00 2001 From: Steve Kille Date: Fri, 2 Dec 2016 08:20:37 +0000 Subject: [PATCH 7/9] Change config & info management to directly use PubSub --- xep-0369.xml | 52 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index e6c66928..7385d75b 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -1705,20 +1705,23 @@ A client creates a channel by sending a simple request to the MIX service. A c

    -

    Authorized users, typically owners and sometimes administrators, may modify the channel information. The client MAY issue a get command to obtain a form that will facilitate update of the information node. The values in the form show current values, which be defaults or may have been explicitly set. In the following example, the channel name was previously set, but other values were not.

    +

    Authorized users, typically owners and sometimes administrators, may modify the channel information. The client MAY issue a pubsub get command to obtain a form that will facilitate update of the information node. The values in the form show current values, which be defaults or may have been explicitly set. In the following example, the channel name was previously set, but other values were not.

    - + + + - + + urn:xmpp:mix:0 @@ -1736,16 +1739,18 @@ A client creates a channel by sending a simple request to the MIX service. A c label='Channel Administrative Contact' var='Contact'/> - + + ]]> -

    Updating the information node is done using a set command of type info. The MIX channel MUST update the fields with values provided, leaving other fields unchanged. The result returns the id used in the information node item, which is the date/time of the modification.

    +

    Updating the information node is done using a pubsub set command. The MIX channel MUST update the fields with values provided, leaving other fields unchanged. The result returns the id used in the information node item, which is the date/time of the modification.

    - + + urn:xmpp:mix:0 @@ -1760,32 +1765,40 @@ A client creates a channel by sending a simple request to the MIX service. A c greymalkin@shakespeare.lit - + + - + + + + + ]]>
    -

    Channel owners may modify the channel configuration. The client MAY issue a get command "config" to obtain a form that will facilitate update of the configuration node. Other clients MAY be authorized to use this command to see the channel configuration, but only owners may update the configuration. The values in the form show current values, which be defaults or may have been explicitly set. The following example shows a short form returned to illustrate the syntax. A typical configuration form will be much larger with many fields.

    +

    Channel owners may modify the channel configuration. The client MAY issue a pubsub get command to obtain a form that will facilitate update of the configuration node. Other clients MAY be authorized to use this command to see the channel configuration, but only owners may update the configuration. The values in the form show current values, which be defaults or may have been explicitly set. The following example shows a short form returned to illustrate the syntax. A typical configuration form will be much larger with many fields.

    - + + + - + + urn:xmpp:mix:0 @@ -1795,16 +1808,18 @@ A client creates a channel by sending a simple request to the MIX service. A c label='Channel Administrator' var='Administrator'/> - + + ]]> -

    Updating the information node is done using a set command of type config. The MIX channel MUST update the fields with values provided, leaving other fields unchanged. The result returns the id used in the configuration node item, which is the date/time of the modification.

    +

    Updating the information node is done using a pubsub set command. The MIX channel MUST update the fields with values provided, leaving other fields unchanged. The result returns the id used in the configuration node item, which is the date/time of the modification.

    - + + urn:xmpp:mix:0 @@ -1825,14 +1840,19 @@ A client creates a channel by sending a simple request to the MIX service. A c true - + + - + + + + + ]]>
    From 09cf866018b276aee6872834d17f81eb7d5190c9 Mon Sep 17 00:00:00 2001 From: Steve Kille Date: Fri, 2 Dec 2016 08:30:21 +0000 Subject: [PATCH 8/9] Define Information Node Attributes in Table --- xep-0369.xml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index 7385d75b..ad8a71f6 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -369,13 +369,16 @@

    The Information node holds information about the channel. The information node contains a single item with the current information. Information node history is held in MAM. The information node is named by the date/time at which the item was created. Users MAY subscribe to this node to receive information updates. The Information node item may contain the following attributes, each of which is optional:

    - -

    The format of the Information node follows &xep0004;. This allows configuration to be updated by MIX defined commands and that the results of update commands are the same as the PubSub node. + + + + + + + +
    NameDescriptionField TypeValuesDefault
    'Name'A short string providing a name for the channel.text-single--
    'Description'A longer description of the channel.text-single--
    'Contact'The JID or JIDs of the person or role responsible for the channel.jid-multi--
    + +

    The name and description values MUST contain a "text" element and MAY contain additional text elements. Where multiple text elements are provided, each MUST posses an xml:lang attribute that describes the natural language of the subject. The format of the Information node follows &xep0004;. This allows configuration to be updated by MIX defined commands and that the results of update commands are the same as the PubSub node. The following example shows the format of a item in the information node for the example coven@mix.shakespeare.example channel.

    - The Configuration node holds the configuration of the channel as a single item, named by the date-time of the last update to the configuration. A single item is stored in the node, with previous configuration history accessed by MAM. Users MAY subscribe to the configuration node to get notification of configuration change. The configuration node is optional for a MIX channel. For example, configuration choices could be fixed and not exposed. A subset of the defined configuration options may be used and additional non-standard configuration options may be added. If configuration options to control functionality of the nature described here are provided, the options defined in this standard MUST be used. The following configuration options are defined: + The Configuration node holds the configuration of the channel as a single item, named by the date-time of the last update to the configuration. A single item is stored in the node, with previous configuration history accessed by MAM. Users MAY subscribe to the configuration node to get notification of configuration change. The configuration node is optional for a MIX channel. For example, configuration choices could be fixed and not exposed. A subset of the defined configuration options may be used and additional non-standard configuration options may be added. If configuration options to control functionality of the nature described here are provided, the options defined in this standard MUST be used. The following configuration attributes are defined:

    - +
    - + From f105ee040b787d113bfcf6566f1f44fa27140328 Mon Sep 17 00:00:00 2001 From: Steve Kille Date: Fri, 2 Dec 2016 08:44:08 +0000 Subject: [PATCH 9/9] Bump to version 0.6 --- xep-0369.xml | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index ad8a71f6..c225e0c2 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -36,22 +36,36 @@ Steve.Kille@isode.com &stpeter; + + + 0.6 + 2016-12-02 + sek +

    + Added Internationalization Consideration section, and various I18n edits; + Added Security Considerations section; + Tombstoning of Redaction changes made optional; + Added a section specifying MIX Proxy; + Change configuration and information node management to directly use PubSub; + Provide for XEP-0202 (vCard4 over XMPP) in addition to vcard-temp support. +

    +
    0.5 2016-11-04 sek (XEP Editor: ssw)

    - Complete and restructure Administration Section: Creating Channels and modifying configuration - Add avatar nodes - Add section on roster handling - Discovering MIX Services - Resolve questions on future capabilities - Administration of Allowed/Banned; clarify Kick functionality is replaced - User Presence Probes on Channel Start-up - Add user Presence preference - Clarify and Expand MAM Archiving - Sort Retraction - Add Marker IQ + Complete and restructure Administration Section: Creating Channels and modifying configuration; + Add avatar nodes; + Add section on roster handling; + Discovering MIX Services; + Resolve questions on future capabilities; + Administration of Allowed/Banned; clarify Kick functionality is replaced; + User Presence Probes on Channel Start-up; + Add user Presence preference; + Clarify and Expand MAM Archiving; + Sort Retraction; + Add Marker IQ; Conversion 1:1

    NameDescriptionField TypeValuesDefault
    'Last Change Made By'Bare JID of the user making the last change.jid-single--
    'Owner'Dare JIDs with Owner rights as defined in ACL node. When a channel is created, the JID creating the channel is configured as an owner, unless this attribute is explicitly configured to another value.jid-multi--
    'Owner'Bare JIDs with Owner rights as defined in ACL node. When a channel is created, the JID creating the channel is configured as an owner, unless this attribute is explicitly configured to another value.jid-multi--
    'Administrator'Bare JIDs with Administrator rights.jid-multi--
    'End of Life'The date and time at which the channel will be automatically removed by the server. If this is not set, the channel is permanent.text-single--
    'Nodes Present'Specifies which nodes are present. Presence of config nodes is implicit. Jidmap node MUST be present if participants node is present. 'avatar' means that both Avatar Data and Avatar Metadata nodes are present.list-multi'participants'; 'presence'; 'subject'; 'information'; 'allowed'; 'banned'; 'avatar'-