[Mailman-Developers] Adding keys in the configuration file

Barry Warsaw barry at list.org
Thu Sep 13 21:29:16 CEST 2012


On Sep 13, 2012, at 10:37 AM, Richard Wackerbarth wrote:

>The proper way to handle the issue of URLs would be to have the MM core query
>the UI for them.  However, I have yet to convince Barry that the present
>model (where, at present, MM is the only part allowed to be authoritative
>over ANY information that it uses) is inappropriate.  So, for the present, we
>need to have a proxy for the UI and a section of the configuration that
>specifies the values for the parameters which it supplies.

I wouldn't necessarily categorize that way, because in some cases, the core
already is not the authoritative source of information.

Take welcome messages for example.  Unlike in MM2, MM3 does not store the
welcome message template in its database.  The MM2 limitation to this approach
was that we could only support welcome messages in one language.

Now, what MM3 does is store a welcome_message_uri which may contain
placeholders for the fqdn_listname, and a language code.  So when the
test at example.com list needs to send a welcome message in fr, it essentially
does this:

* expand the list's welcome_message_uri by interpolation of $listname and
  $language placeholders

* issue an HTTP GET on the resulting url

* cache the results for some period of time

* use the resulting text as the welcome message template, into which it
  interpolates a bunch of other placeholders, both list specific and user
  specific.

I think this is a powerful approach that could be extended to other pieces of
information stored in external systems.  So essentially, MM3 is a consumer of
other web resources for which the authoritative source can be delegated.  This
is only moderately generalized in the core right now, but I see no reason why
this approach can't be used in more places.  Certainly a HyperKitty IArchiver
implementation could easily do something like this today.

Cheers,
-Barry


More information about the Mailman-Developers mailing list