<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY rfc4155 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4155.xml'>
  <!ENTITY rfc5064 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5064.xml'>
  <!ENTITY draft-sparks-genarea-imaparch PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.sparks-genarea-imaparch.xml'>
  <!ENTITY draft-ietf-eai-rfc5335bis PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-eai-rfc5335bis.xml'>
  <!ENTITY draft-ietf-eai-rfc5336bis PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-eai-rfc5336bis.xml'>
  <!ENTITY draft-ietf-eai-rfc5738bis PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-eai-5738bis.xml'>

]>

<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc sortrefs="yes" ?>
<?rfc strict="yes" ?>
<?rfc comments="yes" ?>
<?rfc inline="yes" ?>
<?rfc symrefs="yes" ?>

<rfc ipr="trust200902"  category="info" docName="draft-sparks-genarea-mailarch-07">

<front>

<title abbrev="List Archiving and Search Requirements">
IETF Email List Archiving, Web-based Browsing and Search Tool Requirements
</title>

<author initials="R." surname="Sparks" fullname="Robert Sparks" >
 <organization>Tekelec</organization>
 <address>
 <postal>
 <street>17210 Campbell Road</street>
 <street>Suite 250</street>
 <city>Dallas</city>
 <region>Texas</region>
 <code>75254-4203</code>
 <country>USA</country>
 </postal>
 <email>RjS@nostrum.com</email>
 </address>
</author>

<date month="Aug" day="30" year="2012" />

<abstract>
<t>
The IETF makes heavy use of email lists to conduct its work. Participants frequently
need to search and browse the archives of these lists, and have asked for improved search 
capabilities. The current archive mechanism could also be made more efficient.
This memo captures the requirements for improved email list archiving and searching 
systems.
</t>
</abstract>

</front>

<middle>

<section anchor="intro" title="Introduction">
<t>
The IETF makes heavy use of email lists to conduct its work. Participants frequently
need to search the archives of these lists, and have asked for improved search 
capabilities, particularly when the search needs to cover a large period of time,
or cross several lists. For instance, document editors, shepherds, working group 
chairs, and area directors may need to review all discussion of a particular
draft. That discussion may be spread across the working group list, one or
more directorate lists, and the IETF general list. Occasionally, work impacts
multiple groups, possibly in different areas, and the search must cover additional
working group lists. 
</t><t>
The current tools for performing these searches require 
several manually coordinated steps, which are error prone. Without a local copy
of the archive (which may not be complete), searching most working group lists
requires brute force effort, aided possibly by web search engines. 
</t><t>
More advanced
search capabilities have been constructed for a limited subset of the available
lists and are exposed in the "Email Archives Quick Search" section of the main
IETF website. While these tools are of great assistance, there is still significant
need for improvement.
</t><t>
The current archive mechanism could also be made more efficient. The current practices
involve duplicate stores (for the web and ftp interfaces), which impacts storage and
replication, and is subject to inconsistency.
</t><t>
This memo captures the requirements for improved email list archiving and searching 
systems.
</t>
</section>

<section title="List Search and Archive Requirements">

<section title="Search and Browsing">
<t><list style="hanging">
<t hangText="o">The system must provide a web interface for search and browsing archived messages.</t>
<t hangText="o">The system must allow browsing the entire archive of a given list by thread or by date.</t>
<t hangText="o">The system must allow browsing the results of a search by thread or by date.
<list style="hanging">
<t hangText="">Both threading based on Message-Id/References/In-Reply-To and threading based on same subject line (modulo short prefixes like re: and fwd:) should be taken into account.</t>
</list></t>
<t hangText="o">The system must allow searching across any subset of the archived lists (one list, a selection of lists, or all lists).</t>
<t hangText="o">The system must allow searching of any combination (using AND, OR, and NOT operators) of the following attributes. Richer search capabilites are highly desirable.
<list style="hanging">
<t hangText="-">string occurring in sender name or email address</t>
<t hangText="-">date range</t>
<t hangText="-">string occurring in Subject</t>
<t hangText="-">string occurring in message body</t>
<t hangText="-">string occurring in message header (in particular, exact match of Message-Id)
<list style="hanging">
<t hangText="">For instance, it would be nice to search the entire archive for instances of a message with a given Message-ID with a URL like
&lt;http://datatracker.ietf.org/mlarchive/msg?id=4EA6E023.6010603@example.com&gt;</t>
</list></t>
</list></t>
<t hangText="o">Individual messages must be representable by a long-term stable URI that can be shared between users. That is, the URI must be suitable for reference in an email message.
<list style="hanging">
<t hangText="-">It would be preferable for that URI to appear in an Archived-At header field in the message <xref target="RFC5064"/>.</t>
</list>
</t>

<t hangText="o">Searches should be representable by a URI that can be shared between users
<list style="hanging">
<t hangText="-">Such URIs should be long-term stable.</t>
<t hangText="-">
The search may be re-executed when the URI is referenced.  It
is acceptable for the same URI to produce different results if
accessed at different times or by different people (for example,
by reflecting additional messages that may match the search
criteria, or reflecting changes in access authorization to
lists with restricted archives.)
</t>
</list></t>

<t hangText="o">When the system requires credentials, it must use the datatracker's authentication system.
<list style="hanging">
<t hangText="-">While the vast majority of archived lists have an open access policy, some archived lists have restricted archives</t>
<t hangText="-">The system must not require credentials for browsing or searching lists with open archives. (But it is acceptable for a user to browse or search such lists while logged in).</t>
<t hangText="-">The system must make it possible to limit access to a restricted archive based on login credentials.</t>
<t hangText="-">Messages from restricted archives must be distinguisable from messages from unrestricted archives in any search results.</t>
</list></t>
</list></t>
</section>

<section title="Archiving Active Lists">
<t><list style="hanging">
<t hangText="o">The archive system must accept messages handled by various mail list manager packages.
<list style="hanging">
<t hangText="-">Lists hosted on the IETF systems are served by mailman <xref target="mailman"/>.</t>
<t hangText="-">Lists hosted at other organizations may use other packages.
<list style="hanging">
<t hangText="*">The archive system must accept messages through subscribing to such an external list.</t>
<t hangText="*">The archive system may support other mechanisms for accepting messages into the archive</t>
</list></t>
</list></t>
</list></t>
</section>

<section title="Importing Messages from Other Archives">
<t>Lists hosted at other systems are sometimes moved to the IETF servers, and their archive is moved with them.
The archiving system must be able to import these archives.
<list style="hanging">
<t hangText="o">At a minimum the archive system must be able to import mbox formatted archives <xref target="RFC4155"/><xref target="mbox"/>.</t>
<t hangText="o">The archive system should be able to import maildir and maildir-like (the key characteristic being one-message-per-file) formatted archives <xref target="maildir"/>.</t> 
<t hangText="o">It is acceptable to use a separate utility to convert between these formats before import as long as the conversion is lossless.</t>
</list>
</t>
</section>

<section title="Exporting messages from the Archives">
<t>
The archive system must allow both users and administrators to export messages.
</t>
<t>
<list style="hanging">
<t hangText="o">The archive system must support exporting messages in the mbox format</t>
<t hangText="o">The archive system should support exporting messages in maildir format</t>
<t hangText="o">The archive system must support exporting the entire archive of a given list</t>
<t hangText="o">The archive system must support exporting all messages from a given list within a given daterange</t>
<t hangText="o">The archive system should allow exporting the results of any supported search query</t>
</list></t>
</section>

<section title="Redundancy">
<t><list style="hanging">
<t hangText="o">The systems must facilitate providing archive, search, and browse functions through geographically distributed servers
<list style="hanging">
<t hangText="-">The systems must support a single active and single standby server. This reflects the current operating configuration and is expected to be the initial deployment model.</t>
<t hangText="-">The systems should support a single active and multiple standby servers.</t>
<t hangText="-">The systems should support multiple active servers for the search and browse functions. Support for multiple active archive servers are not a requirement.</t>
<t hangText="-">The amount of traffic generated to ensure data replication between servers should be on the order of the size of any new/changed messages in the archives.
<list style="hanging">
<t hangText="*">It is acceptable for replication to be part of the archival system itself (such as using the replication mechanisms from an underlying database).</t>
<t hangText="*">It is acceptable to rely on replication of the underlying filesystem objects (using rsync of one or more directory trees for example), but only if 
the objects in the underlying filesystem are formatted such that the size of the replication data is on the order of the size of any new/changed messages in the archives.</t>
</list></t>
</list></t>
</list></t>
</section>

<section title="Archive Administration">
<t><list style="hanging">
<t hangText="o">The archive system must support adding and removing lists to be archived</t>
<t hangText="o">The system must allow the administrator to add messages to and delete messages from an archived list. The system should log such actions.</t>
</list></t>
</section>

<section title="Transition Requirements">
<t>There are many existing archived messages containing embedded links into the existing MHonArc mail archive. These links must continue to work, but should reach the message as archived in the new system.</t> 
</section>

</section> <!-- end of requirements section -->

<section title="Internationalized Address Considerations">
<t>The archive and search functions should anticipate internationalized email addresses as discussed in the following three documents
<xref target="I-D.ietf-eai-rfc5335bis"/>
<xref target="I-D.ietf-eai-rfc5336bis"/>
<xref target="I-D.ietf-eai-5738bis"/>.
 There is no firm requirement at this time.</t>
</section>

<section title="IMAP Access">
<t>Requirements for allowing access to the archives using IMAP are captured in 
<xref target="I-D.sparks-genarea-imaparch"/>. The archive system must anticipate
integrating with a system that provides IMAP access.</t>
</section>

<section title="Security Considerations">
<t>
   Creating a new tool for searching and archiving IETF email lists does not affect
   the security of the Internet in any significant fashion.
</t>
<t>
   Searching can be I/O and CPU intensive. The implementors of this tool should
   consider the potential for malicously crafted searches attempting to consume
   all available resources. Similarly, the implementors should consider the
   potential for denial of service attacks through making many connections to
   the broswing system or rapid navigating within it. 
</t>
<t>
   Preserving the integrity of the archives is important. The implementors should
   ensure that administrative access is appropriately authenticated, and that 
   message paths into the archive are appropriately configured to avoid unauthorized
   message insertion.
</t>

</section>

<section title="IANA Considerations">
<t>
This document has no actions for IANA.
</t>
</section>

<section title="Acknowledgements">
<t>
The Tools Development team provided input into the initial brainstorm. Text suggestions from Alexey Melnikov, Pete Resnick, S. Moonesamy, Francis Dupont, and Murray Kucherawy have been incorporated.
</t>
</section>

<section title="Changelog">

<t>RFC Editor - please remove this section when formatting this document as an RFC.</t>

<section title="06 to 07">
<t><list style="numbers">
<t>Additions to the Security Considerations section reflecting IESG discussion</t>
</list></t>
</section>

<section title="05 to 06">
<t><list style="numbers">
<t>Incorporated comments and nits from the GenArt and AppsDir reviewers.</t>
<t>Separated the Introduction's first paragraph into several for readability.</t>
<t>Added NOT to the search operators</t>
<t>Deleted the second instance of a repeated requirement to allow administrators to delete messages from an archive.</t>
<t>Clarified that search results could change along with changes in authorization of the searcher.</t>
<t>Added a requirement that messages from restricted archives be distinguisable from messages from unrestricted archives in search results.</t>
<t>Added a reference to the imaparch document.</t>
</list></t>

</section>
<section title="04 to 05">
<t><list style="numbers">
<t>Added requirements to enable controlled access to restricted archives based on credentials, and that the datatracker's credentials must be used.</t>
</list></t>
</section>
<section title="03 to 04">
<t><list style="numbers">
<t>Split IMAP access to the archive into its own document so that it can be pursued as an independent project.</t>
</list></t>
</section>

<section title="02 to 03">
<t><list style="numbers">
<t>Expanded motivation to the Introduction.</t>
</list></t>
</section>
<section title="01 to 02">
<t><list style="numbers">
<t>Added request for the Archived-At header field.</t>
<t>Pointed to the EAI work in progress and in the RFC Editor queue.</t>
<t>Corrected several typos</t>
</list></t>
</section>
<section title="00 to 01">
<t><list style="numbers">
<t>Requested ability to import maildir-like archives, not just maildir proper</t> 
<t>Added a section requesting IMAP access to the archive.</t>
</list></t>
</section>
</section>

</middle>
<back>

<!--
<references title="Normative References">
</references>
-->

<references title="Informative References">
&rfc4155;
&rfc5064;
&draft-ietf-eai-rfc5335bis;
&draft-ietf-eai-rfc5336bis;
&draft-ietf-eai-rfc5738bis;
&draft-sparks-genarea-imaparch;
<reference anchor="mbox" target="http://en.wikipedia.org/wiki/Mbox" ><front><title>Mbox</title><author fullname="Wikipedia"/></front> </reference> 
<reference anchor="maildir" target="http://en.wikipedia.org/wiki/Maildir" ><front><title>Maildir</title><author fullname="Wikipedia"/></front> </reference> 
<reference anchor="mailman" target="http://www.list.org/"><front><title>Mailman</title><author/></front></reference>

</references>

</back>
	
</rfc>
