Re: [draft-melnikov-sieve-external-lists] 2.4 Proposed Error Handling Clarifications
Ned Freed <ned.freed@mrochek.com> Thu, 30 July 2009 15:14 UTC
Return-Path: <owner-ietf-mta-filters@mail.imc.org>
X-Original-To: ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com
Delivered-To: ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5840828C2A8 for <ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com>; Thu, 30 Jul 2009 08:14:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.332
X-Spam-Level:
X-Spam-Status: No, score=-2.332 tagged_above=-999 required=5 tests=[AWL=0.267, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tl41KRrV0ySd for <ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com>; Thu, 30 Jul 2009 08:14:39 -0700 (PDT)
Received: from balder-227.proper.com (properopus-pt.tunnel.tserv3.fmt2.ipv6.he.net [IPv6:2001:470:1f04:392::2]) by core3.amsl.com (Postfix) with ESMTP id E21A328C2B2 for <sieve-archive-Aet6aiqu@ietf.org>; Thu, 30 Jul 2009 08:13:59 -0700 (PDT)
Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id n6UF4lBa084900 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 30 Jul 2009 08:04:47 -0700 (MST) (envelope-from owner-ietf-mta-filters@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.14.2/8.13.5/Submit) id n6UF4lvn084899; Thu, 30 Jul 2009 08:04:47 -0700 (MST) (envelope-from owner-ietf-mta-filters@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-ietf-mta-filters@mail.imc.org using -f
Received: from mauve.mrochek.com (mauve.mrochek.com [66.59.230.40]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id n6UF4XtO084885 for <ietf-mta-filters@imc.org>; Thu, 30 Jul 2009 08:04:44 -0700 (MST) (envelope-from ned.freed@mrochek.com)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01NBX96WOQCG000N2I@mauve.mrochek.com> for ietf-mta-filters@imc.org; Thu, 30 Jul 2009 08:04:32 -0700 (PDT)
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01NBWGT18MS000007A@mauve.mrochek.com>; Thu, 30 Jul 2009 08:04:30 -0700 (PDT)
Date: Thu, 30 Jul 2009 07:51:37 -0700
From: Ned Freed <ned.freed@mrochek.com>
Subject: Re: [draft-melnikov-sieve-external-lists] 2.4 Proposed Error Handling Clarifications
In-reply-to: "Your message dated Thu, 30 Jul 2009 13:18:52 +0100" <f470f68e0907300518xf914a5dq597bfbdb7eafac7e@mail.gmail.com>
To: Robert Burrell Donkin <robertburrelldonkin@gmail.com>
Cc: MTA filtering mailing list <ietf-mta-filters@imc.org>
Message-id: <01NBX96VF9EO00007A@mauve.mrochek.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN
Content-transfer-encoding: 7bit
References: <f470f68e0907300518xf914a5dq597bfbdb7eafac7e@mail.gmail.com>
Sender: owner-ietf-mta-filters@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-mta-filters/mail-archive/>
List-ID: <ietf-mta-filters.imc.org>
List-Unsubscribe: <mailto:ietf-mta-filters-request@imc.org?body=unsubscribe>
> Proposal: Separate Section For Discussion of TAG > ================================================= > Changes > ------- > Split first paragraph into sections. > Rationale > --------- > Clarity > Proposal: Clarify Expected Error Handling Behaviour > =================================================== > Changes > ------- > Specify that unsupported URI schemas are compile time > errors and that resolution failures are runtime errors. While I agree it's a good idea to report errors at as early a phase as possible, unless we're willing to specify that variable substitutions cannot be used in list names, this can at most be a SHOULD, not a MUST. > Rationale > --------- > Practical implementations will not be able to support > all feasible URI schemes, protocols, discovery mechanisms > and resource semantics. > Any URI schema which is not supported by the engine > will never be resolved. In this case, it is clearer and > cleaner to fail at compile time. Note that this case > also includes malformed URIs. > Resources may be dynamic. A resource whose semantics > could not be understood at compile time may have been > replaced by one that could be at runtime. Resource > resolution may be dynamic: a resource which could not > be resolved at compile time may be resolvable at > runtime. Services may be dynamic. A service with > suitable semantics may become available at runtime > which was not at compile time. Conversely, > resources, resource resolution and service discovery > may fail at runtime after it succeeded at compile > time. > So, failures to resolve, locate or parse a resource > referred to by the script should only be raised at > runtime. Agreed, however, it isn't clear to me that throwing an error is the right thing to do when a given list resource is unavailable. Handling the unavailability of a given resource is well within the purview of a properly constructed portable script, I should think. > Proposal: Require Implementations To Support [TAG-URI] > ====================================================== > Changes > ------- > Require that all implementations support tag, plus any other > URI schemes of their choice. > Rationale > --------- > Insisting that implementations support at least one protocol > sets a minimum level for script portability. Picking one > particular web protocol such as LDAP, HTTP or FTP would impose > a unnecessary burden on implementations and > unnecessarily involve the specification in the semantics of > engine-list server interactions. > A credible alternative choice would be relative URIs. It's unclear what "support" means in this context. In our implementtation list URIs are parsed and then passed to what amounts to a callout. We can of course make it so tag: is always a legal URL type when that check is done, but we cannot force tag: to work. > -------------------------------------------------------------------------- > [1] Proposal > -------------------------------------------------------------------------- > 2.4. Syntax of an externally stored list name > A name of an externally stored list is always an absolute URI [URI]. > Implementations might find URLs such as [LDAP], [CardDAV], or > [TAG-URI] to be useful for naming external lists. > Implementations MUST raise a compile time error when a list name > cannot be parsed into a URI scheme supported by the implementation. See above. This needs to be a SHOULD. > Resolution of the resource MAY involve resource location and service > discovery. Resources MAY change dynamically. Resolution of the > resource MUST be perform at script execution time. When the resource > cannot be located or the resource type is found to be unsupported > then the implementation MUST raise a runtime error. If we're going to throw an error like this in a test I think we need a way to test and see if the resource is available. > Implementations MAY attempt to resolve the URI at compile time but > MUST NOT raise a compile time error on failure. > 2.4.1 The Tag Scheme > The "tag" URI scheme [TAG-URI] can be used to represent opaque, but > user friendlier identifiers. > Resolution of such identifiers is going to be implementation specific > and it can help in hiding the complexity of an implementation from > end users. For example, an implementation can provide a web interface > for managing lists of users stored in LDAP. Requiring users to know > generic LDAP URL syntax might not be very practical, due to its > complexity. An implementation can instead use a fixed tag URI prefix > such as "tag:example.com,<date>:" (where <date> can be, for example, > a date generated once on installation of the web interface and left > untouched upon upgrades) and the prefix doesn't even need to be shown > to end users. > Implementations MUST support the [TAG-URI] URI scheme. I think some elaboration on what "support" means would be good here. > 2.4.2 Other URI Schemes > Implementations MAY support other URI schemes. Ned
- [draft-melnikov-sieve-external-lists] 2.4 Propose… Robert Burrell Donkin
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Ned Freed
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Barry Leiba
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Robert Burrell Donkin
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Jeffrey Hutzelman
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Robert Burrell Donkin
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Jeffrey Hutzelman
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Robert Burrell Donkin
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Barry Leiba
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Cyrus Daboo
- Re: [draft-melnikov-sieve-external-lists] 2.4 Pro… Robert Burrell Donkin