----------------------------------------------------------------------
Elvin Ticker Group Subscription Format
----------------------------------------------------------------------
Purpose of This Document
----------------------------------------------------------------------
This document provides a brief description of the proposed format
for exchanging ticker group subscriptions between tickertape
messaging clients.
The format is designed to allow interchange of group subscriptions
amongst clients, either via ticker attachments or other textual
means such as clipboard copy and paste. The format encodes not only
instructions for subscribing to the content, but also any associated
security attributes.
Overview
----------------------------------------------------------------------
A ticker group subscription is described by a "group" XML
element. Three sub-types of group are defined: "chat", "news" and
"custom". The first two correspond to the two major ticker message
formats: inter-person chat (ticker v1.0/v3.0) and news (NNTP or web
news) respectively.
The "custom" type can select from news and/or chat channels and is
specified via an Elvin subscription expression. The subscription
will be appended with an expression (using "&&") that ensures
selection of valid chat or news messages (from the client's point of
view), so the subscription may be thought of as a sub-selection from
all news and/or chat messages.
MIME type
----------------------------------------------------------------------
The MIME type for ticker groups is:
application/x-elvin-tickergroup
Examples
----------------------------------------------------------------------
A "chat" format group named "Babble"
--
A "news" format group named "CNN"
--
A "chat" format group called "Private Chat" with security attributes
65445e420820795b54700d6158772f0650401854
--
A custom group
contains (Message, "foobar") ||
equals (From, "frodo")
Details
----------------------------------------------------------------------
A group element has three required attributes:
version: The group format version. Currently must be "1.0".
name: The group's channel name.
type: One of "chat", "news" or "custom".
Custom group subscription:
For "custom" groups, an Elvin subscription expression must be
included in the body of the group element (it is an error for this
to be empty). The client will append this expression with an
expression that selects what the client considers to be valid chat
or news messages, so this subscription only needs to contain
additional constraints on the notifications.
eg: contains (Message, "foobar").
Optional security attributes:
defaultSecure: Boolean ("true" or "false"). If true, the client
should default to sending securely.
allowInsecure: Boolean ("true" or "false"). Whether to allow
send/receipt of insecure messages. If false, the
client should never accept or display a message
that wasn't received securely.
Security keys:
A group may have an optional "keys" element containing one or more
XML "key" elements. These specify security keys to be associated
with the group and used to restrict receivership of messages.
While there is already an agreed specification for exchanging
Elvin security keys, this format is not amenable to nesting within
XML. However, the XML key format proposed here is a straighforward
translation of existing format into XML representation.
For example, a key in the current format might look like:
Version: 1.0
Name: Shhhh
Access: Private
Key: 65445e420820795b54700d6158772f0650401854
The XML representation of this is:
65445e420820795b54700d6158772f0650401854
An example group using this key:
65445e420820795b54700d6158772f0650401854
Notes
----------------------------------------------------------------------
* Extended attributes. Clients should attach any client-specific
extended information they wish to add using the "x-" naming
scheme commonly used in other formats of this type.
For example:
* Embedded key security. This format allows private keys to be
embedded in group subscriptions, which is something that the user
may not realise. Clients should take steps to warn the user before
sending a group with embedded private keys across an insecure
channel.
* Character encoding. If the character encoding differs from the
assumed default of UTF-8, it should be specified using an XML
header plus an explicit encoding, eg:
* User interface terminology. It is suggested that clients sending
ticker group subscriptions encoded in this way present the action
to the user as "Send an invitation to the group". Importing the
attachment would be likewise termed "Accepting the invitation".
Author
----------------------------------------------------------------------
This document was written by Matthew Phillips
.
Last modified on 24 Sep 2004.