[draft-melnikov-sieve-external-lists] 2.4 Proposed Error Handling Clarifications
Robert Burrell Donkin <robertburrelldonkin@gmail.com> Thu, 30 July 2009 12:28 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 AA58B3A6982 for <ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com>; Thu, 30 Jul 2009 05:28:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[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 onBAZlX5v7Gz for <ietfarch-sieve-archive-Aet6aiqu@core3.amsl.com>; Thu, 30 Jul 2009 05:28:04 -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 18CDA3A6A77 for <sieve-archive-Aet6aiqu@ietf.org>; Thu, 30 Jul 2009 05:28:03 -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 n6UCJ466071642 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 30 Jul 2009 05:19:04 -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 n6UCJ4vR071641; Thu, 30 Jul 2009 05:19:04 -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 mail-fx0-f223.google.com (mail-fx0-f223.google.com [209.85.220.223]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id n6UCIs66071622 for <ietf-mta-filters@imc.org>; Thu, 30 Jul 2009 05:19:03 -0700 (MST) (envelope-from robertburrelldonkin@gmail.com)
Received: by fxm23 with SMTP id 23so1360868fxm.6 for <ietf-mta-filters@imc.org>; Thu, 30 Jul 2009 05:18:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=FYHrTSpoO0R6eo1vuMjo6cepohW/57xCXOBg6JhWuYE=; b=DVjfXOWIN2UmvZBpk8dS7dfAydjqnivlPg/QV2ppoBwZhzUhCaaB57km+IEnbpnHBu TSBJTROpaZzVn/HLR3JUu9yRAMuYnE75azFgsUKaDpuImVndf/wQheijbYW1MYXLdEqH Gh05rD9DCcaURUfb+Hii5u8abDtwMumrnsO6Y=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=agynpAp/b9MxLZT9KanelvpRVfcDK22jvgm2c/DRYQAH0lHsnBiNNnVmQ1IdjbHHS7 VlxCGjOc0GRQYGSL26/phHypq3MSPhbT09jdVDKgU/u5DQ4qiINKYxfL+mP80MX1uG/N KVPhitHmgRbMpSEO2ZhlIzBsRRTK4BvmJjY+Q=
MIME-Version: 1.0
Received: by 10.204.114.194 with SMTP id f2mr1129157bkq.17.1248956332858; Thu, 30 Jul 2009 05:18:52 -0700 (PDT)
Date: Thu, 30 Jul 2009 13:18:52 +0100
Message-ID: <f470f68e0907300518xf914a5dq597bfbdb7eafac7e@mail.gmail.com>
Subject: [draft-melnikov-sieve-external-lists] 2.4 Proposed Error Handling Clarifications
From: Robert Burrell Donkin <robertburrelldonkin@gmail.com>
To: MTA filtering mailing list <ietf-mta-filters@imc.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
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. 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. 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. -------------------------------------------------------------------------- [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. 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. 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. 2.4.2 Other URI Schemes Implementations MAY support other URI schemes. -------------------------------------------------------------------------- [2] Original Text -------------------------------------------------------------------------- 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. 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.
- [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