[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[experimental] server-side archival of NM conversations



Hello,

I've implemented an experimental mail bot to archive NM conversations.

It contains mad science.

The idea is that you Cc all your mails to:

   "archive-$SOMETHING@nm.debian.org"

and then in https://nm.debian.org/public/process/$SOMETHING you get a
"download mail archive" link. In the process page you can now also see
the archive email address you can use.

$SOMETHING can be:

 - the uid of the applicant (if it has already been chosen):
   archive-enrico@nm.d.o;
 - the email of the applicant, with = instead of @:
   archive-enrico=enricozini.org@nm.d.o;
 - or even *nothing*: archive@nm.d.o; in that case, the archive
   destination is inferred by looking at the email headers.

Practical consequences:

 - If you do things right, you don't need to send an extra email with
   the mailbox when approving an applicant. If you need to send extra
   stuff like minechangelogs output, or IRC conversation transcripts, or
   whatever, you can just send it to archive-$SOMETHING@nm.d.o and we
   will find it.
 - When assigning applicants to AMs, we can now send only one automated
   email without a manual followup, since the assignment email now
   contains the URL to download the mailbox.
 - We can reassign applicants with inactive AMs without waiting for the
   inactive AM (or more likely the applicant) to send the partial
   mailbox.
 - We can have a look at the current conversation before pinging
   processes that look stuck.
 - We should now avoid problems with mail clients generating broken
   mailboxes, or mail software corrupting them during transfer.

Usage examples:

 [for example's sake, let's pretend I'm the applicant. But do remember
  to replace my information with that of your applicants, obviously]

 * Conversation with an applicant

   Your address and the applicant's address are in the headers, that is
   enough to find your process record, so you can just Cc archive@nm.d.o

 * Conversation with an advocate or a comaintainer

   The bot won't be able to know which applicant you are inquiring
   about, so you need to cc archive-enrico@nm.d.o or
   archive-enrico=enricozini.org@nm.d.o

 * Mailing all your applicants

   Going on vacation and letting all your applicants know?

   You can send a single mail to all of them, and Cc archive@nm.d.o: the
   mail will be archived in all their mailboxes.

 * Pinging AMs

   Suppose I (as FD) want to ping all AMs that look inactive, and have
   that ping show up in every process mailbox.

   I can send a single mail to all the AMs, Cc archive@nm.d.o, and it
   will be stored in all the mailbox for all the applicants of all those
   AMs.

 * Archiving random mails, just for the records

   Cc or bounce them to archive-enrico@nm.d.o or
   archive-enrico=enricozini.org@nm.d.o

 * Populating the archives with your existing mailbox

   Ok, this feature is cool but wasn't there when you started with your
   current applicant(s). How do you catch up?

   Open your mailbox, select all messages, bounce them all to
   archive-enrico@nm.d.o or archive-enrico=enricozini.org@nm.d.o


Questions that may be Frequently Asked in the future:

 Q: what if my applicant isn't Cc-ing the archive address in their
    replies?
 A: consider it a T&S test: it's quite important to keep interested
    parties in Cc during online email conversations.

 Q: anyone can send mails to the archive! Doesn't it mean that evil
    people could send rubbish, too?
 A: sure, and they could always send forged emails directly to your AM,
    pretending to be you.
    DO sign your emails :)

 Q: can I add information after a process is finished?
 A: mail is only archived for "active" processes.

    A process starts as active, and is marked inactive during the
    nightly maintenance, when its state is DONE or CANCELED. An
    application gets state DONE once the LDAP account is created, so
    mail can still be archived until the process is really done.

    I plan to let archival happen until after a month since the last
    process activity (so that, for example, followups can be archived
    for CANCELLED applications) regardless of the active/inactive state,
    but that's not implemnted yet.

 Q: where are the archives stored?
 A: on nm.debian.org, and they are not world readable.

 Q: where's the code?
 A: http://anonscm.debian.org/gitweb/?p=nm/nm2.git;a=summary
    together with the rest of the nm.debian.org codebase.


Ciao,

Enrico

-- 
GPG ky: 4096R/E7AD5568 2009-05-08 Enrico Zini <enrico@enricozini.org>

Attachment: signature.asc
Description: Digital signature


Reply to: