Subject: Re: Proposal to change sieve: URL syntax used by the ManageSieve protocol

From: Alexey Melnikov <[email-masked]>
Date: Sat, 01 Nov 2008 17:28:55 +0000

Alexey Melnikov wrote:

> Dilyan Palauzov wrote:
>
>>>> Section 3:
>>>>
>>>>>         sieveurl-script = "sieve://" [ authority ] "/" scriptname
>>>>
>>>> * IMAP URLs made the mistake of confusing the identity used to 
>>>> authenticate with the identity that owns the script.  This makes 
>>>> IMAP URLs cumbersome. I would strongly encourage a naming model 
>>>> that separates the two and keeps the script owner explicit.  For 
>>>> example:
>>>>
>>>>   sieveurl-script = "sieve://" [ authority ] "/" owner "/" scriptname
>>>
>> What about
>>    sieveurl-script = "sieve://" [ authority ] "/" [owner "/"] scriptname
>>
>> And missing [owner "/"] implies authentication ID = authorization ID
>
> This might work. But I think this would also require that any "/" in 
> the <owner> or <scriptname> be URL %-encoded. This shouldn't be a 
> problem for existing deployments, because I don't think use of "/" in 
> script names is common anyway (and some servers currently disallow it).

Based on the mailing list feedback I've updated the draft to allow for 
optional <owner>. In order to simplify further extensions the new syntax 
requires that US-ASCII characters such as "&", "=", "/" and "?" are 
%-encoded as required by RFC 3986:

      sieveurl-script = "sieve://" [ authority ] "/" [owner "/"] scriptname

      sub-delims-sh = "!" / "$" / "'" / "(" / ")" /
                      "*" / "+" / ","
                      ;; Same as [URI-GEN] sub-delims,
                      ;; but without ";", "&" and "=".

      uchar         = unreserved / pct-encoded / sub-delims-sh
                      ;; Same as [URI-GEN]
                      ;; 'unreserved / pct-encoded / sub-delims',
                      ;; but without ";", "&" and "=".

      ochar         = uchar / ":" / "@"
                      ;; Same as [URI-GEN] 'pchar'
                      ;; but without ";", "&" and "=".

      owner         = 1*ochar
                      ;; %-encoded version of [IMAP4] authorization
                      ;; identity (owner) or "userid".
                      ;; Note that ASCII characters
                      ;; like "&" / "=", "/" and "?" MUST be %-encoded.
                     
      scriptname    = 1*ochar
                      ;; %-encoded version of UTF-8 representation
                      ;; of the script name.
                      ;; Note that ASCII characters
                      ;; like "&" / "=", "/" and "?" MUST be %-encoded.

---

From: Alexey Melnikov <[email-masked]>
Date: Sat, 01 Nov 2008 17:33:52 +0000

>                      ;; like "&" / "=", "/" and "?" MUST be %-encoded.

Actually SP and ";" should be encoded as well, so I've updated 2 
comments above.