
From nobody Mon Aug 11 19:29:20 2014
Return-Path: <paulej@packetizer.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ACCFD1A0119 for <webfinger@ietfa.amsl.com>; Mon, 11 Aug 2014 19:29:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.041
X-Spam-Level: *
X-Spam-Status: No, score=1.041 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_ADSP_ALL=0.8, DKIM_SIGNED=0.1, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.668, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id slKr0QyACjZt for <webfinger@ietfa.amsl.com>; Mon, 11 Aug 2014 19:29:16 -0700 (PDT)
Received: from dublin.packetizer.com (dublin.packetizer.com [75.101.130.125]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 64AF11A010E for <webfinger@ietf.org>; Mon, 11 Aug 2014 19:29:16 -0700 (PDT)
Received: from [192.168.1.20] (cpe-024-211-197-136.nc.res.rr.com [24.211.197.136]) (authenticated bits=0) by dublin.packetizer.com (8.14.5/8.14.5) with ESMTP id s7C2TEA5027145 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Mon, 11 Aug 2014 22:29:14 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=packetizer.com; s=dublin; t=1407810554; bh=HAgRS9b1Q/MSx1f1fS0vJZ67VJhCf9XJ2QwZhrWD85M=; h=From:To:Subject:Date:Message-Id:Reply-To:Mime-Version: Content-Type; b=YssG6olTWqYq6mpwFhh7Z6zWN+T+6xds+VusmGZmHq3unFKuTI0WAcEZOG7mp6TGL k1ORQheZ1XlxH4kyqZjsJIz+y93Px9ImIjchfeGHxKoXaCEF163/le1Vw9Dv7j7VJA rHq5WqTPpKyu5cp5MTu5WuPjDrtOeAdXpZ1yhDgw=
From: "Paul E. Jones" <paulej@packetizer.com>
To: webfinger@ietf.org, "webfinger@googlegroups.com" <webfinger@googlegroups.com>
Date: Tue, 12 Aug 2014 02:29:33 +0000
Message-Id: <em1c919200-3d1f-455f-bd2b-59a9ed03dd24@sydney>
User-Agent: eM_Client/6.0.20617.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MB7F05519F-1C09-4963-ABC3-CFC939846269"
Archived-At: http://mailarchive.ietf.org/arch/msg/webfinger/PycpHVflEX-ZJ6KL6opANGliMlA
Subject: [webfinger] Redefining "properties"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: "Paul E. Jones" <paulej@packetizer.com>
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger/>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Aug 2014 02:29:18 -0000

--------=_MB7F05519F-1C09-4963-ABC3-CFC939846269
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Folks,

I have been asked by multiple people for different purposes to see if it=
=20
might be possible to redefine "properties" in the JSON Resource=20
Descriptor.

Per RFC 7033, "properties" is defined as an object that has zero or more=
=20
name/value pairs whose values are strings or null.  The suggestion is=20
that the values should be any valid JSON type.  Thus, a property might=20
refer to a string (as is does now) or it might refer to an object or=20
array.

This change would break any parsers strictly implement definition of=20
"properties".  So, there are two questions I want to present to those=20
who are interested:

1) Would you be agreeable to change the current definition of=20
"properties" to allow any value type?
2) If not, would be agreeable to introducing something like "properties"=
=20
that essentially allows for the same and, if so, what should this new=20
object be named?

Personally, as much as I don't like breaking backward-compatibility, I'm=
=20
favorable to redefining properties to accomodate what people want to do.=
=20
  I'm willing to work on an RFC 7033bis and/or a new RFC to update the=20
JRD specification, if folks are agreeable to either (1) or (2).

Paul

--------=_MB7F05519F-1C09-4963-ABC3-CFC939846269
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD>
<STYLE id=3DeMClientCss>
blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px;=
 padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px;=
 padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; paddin=
g-top: 0px; }
.plain pre, .plain tt { font-family: monospace; font-size: 100%; font-weigh=
t: normal; font-style: normal; }
body {font-family: Calibri;font-size: 11pt;}
.plain pre, .plain tt {font-family: Calibri;font-size: 11pt;}</STYLE>
</HEAD>
<BODY>
<DIV>Folks,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I have been asked by multiple people for different purposes to see =
if it might be possible to redefine "properties" in the JSON Resource Descr=
iptor.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Per RFC 7033, "properties" is defined as an object that has zero or=
 more name/value pairs whose values are strings or null.&nbsp; The suggesti=
on is that the values should be any valid JSON type.&nbsp; Thus, a property=
 might refer to a string (as is does now) or it might refer to an object=
 or array.</DIV>
<DIV>&nbsp;</DIV>
<DIV>This change would break any parsers strictly implement definition of=
 "properties".&nbsp; So, there are&nbsp;two questions I want to present =
to those who are interested:</DIV>
<DIV>&nbsp;</DIV>
<DIV>1) Would you be agreeable to change the current definition of "propert=
ies"&nbsp;to allow any value type?</DIV>
<DIV>2) If not, would be agreeable to introducing something like "propertie=
s" that essentially allows for the same and, if so, what should this new=
 object be named?</DIV>
<DIV>&nbsp;</DIV>
<DIV>Personally, as much as I don't like breaking backward-compatibility,=
 I'm favorable to redefining properties to accomodate what people want to=
 do.&nbsp; I'm willing to work on an RFC 7033bis and/or a new RFC to update=
 the JRD specification, if folks are agreeable to either (1) or (2).</DIV>
<DIV>&nbsp;</DIV>
<DIV>Paul</DIV>
<DIV>&nbsp;</DIV></BODY></HTML>
--------=_MB7F05519F-1C09-4963-ABC3-CFC939846269--


From nobody Mon Aug 11 20:40:04 2014
Return-Path: <wnorris@gmail.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D30B1A01CA for <webfinger@ietfa.amsl.com>; Mon, 11 Aug 2014 20:40:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.423
X-Spam-Level: *
X-Spam-Status: No, score=1.423 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i474U838zuUO for <webfinger@ietfa.amsl.com>; Mon, 11 Aug 2014 20:40:01 -0700 (PDT)
Received: from mail-lb0-x22c.google.com (mail-lb0-x22c.google.com [IPv6:2a00:1450:4010:c04::22c]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 611321A01C3 for <webfinger@ietf.org>; Mon, 11 Aug 2014 20:40:01 -0700 (PDT)
Received: by mail-lb0-f172.google.com with SMTP id z11so6679412lbi.3 for <webfinger@ietf.org>; Mon, 11 Aug 2014 20:39:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=fLEkPHfaElAKKVcrJCdxYvcSuaHhrWei1xzda+HHc+o=; b=ypVgS9bxnCtByd34Ar7e94muX1p2r/DopAx0NSPnwQPmeKZu8HDOZT7BhbFhxKkgrj dw5VzGCmw0rH8YM8dmOM4mOrQfDbSrbZa57QpK9MQ6+kJh0qwoZfnG0+5GaX2qiWe5eF TaVcgcL6BQoaHur95xKSwM1BMMKwBQwkGLlnhoPvZkauguEI03XKTruTR6FbVjGO5k7t OkfwRaRW3P3UJ5Q7bcndVUMly34xoIZNFfrCS3Ehsp76aVStGzZUTMjTEdonAoV4UXEB xvk/E0DDbLcGoN+u2uKtexhPLJMlScCezOJbcEtKNuj1zrjrHNNyKrJedJs6ZshRDPvz t7rQ==
X-Received: by 10.152.243.43 with SMTP id wv11mr1575479lac.52.1407814799557; Mon, 11 Aug 2014 20:39:59 -0700 (PDT)
MIME-Version: 1.0
Sender: wnorris@gmail.com
Received: by 10.152.124.200 with HTTP; Mon, 11 Aug 2014 20:39:19 -0700 (PDT)
In-Reply-To: <em1c919200-3d1f-455f-bd2b-59a9ed03dd24@sydney>
References: <em1c919200-3d1f-455f-bd2b-59a9ed03dd24@sydney>
From: Will Norris <will@willnorris.com>
Date: Mon, 11 Aug 2014 20:39:19 -0700
X-Google-Sender-Auth: Lol8-hYUWGSjKDgHn_D8Vmx2U1E
Message-ID: <CAJqAn3ysg30qZndNpUvk=kUK0ZCcQrW652E_6-0-+q_ceFPHAA@mail.gmail.com>
To: webfinger@googlegroups.com
Content-Type: multipart/alternative; boundary=001a113433ae098d1e0500666d5f
Archived-At: http://mailarchive.ietf.org/arch/msg/webfinger/XzqvAvPTUj817ngwu7fFDAi18DM
Cc: "webfinger@ietf.org" <webfinger@ietf.org>
Subject: Re: [webfinger] Redefining "properties"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger/>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Aug 2014 03:40:03 -0000

--001a113433ae098d1e0500666d5f
Content-Type: text/plain; charset=UTF-8

what are the actual use cases prompting this?  If folks are trying to store
more complicated data, why is it not just a linked resource?

Personally, as a client author, I've always hated it when APIs have
polymorphic data types like this.


On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones' via WebFinger <
webfinger@googlegroups.com> wrote:

>  Folks,
>
> I have been asked by multiple people for different purposes to see if it
> might be possible to redefine "properties" in the JSON Resource Descriptor.
>
> Per RFC 7033, "properties" is defined as an object that has zero or more
> name/value pairs whose values are strings or null.  The suggestion is that
> the values should be any valid JSON type.  Thus, a property might refer to
> a string (as is does now) or it might refer to an object or array.
>
> This change would break any parsers strictly implement definition of
> "properties".  So, there are two questions I want to present to those who
> are interested:
>
> 1) Would you be agreeable to change the current definition of
> "properties" to allow any value type?
> 2) If not, would be agreeable to introducing something like "properties"
> that essentially allows for the same and, if so, what should this new
> object be named?
>
> Personally, as much as I don't like breaking backward-compatibility, I'm
> favorable to redefining properties to accomodate what people want to do.
> I'm willing to work on an RFC 7033bis and/or a new RFC to update the JRD
> specification, if folks are agreeable to either (1) or (2).
>
> Paul
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "WebFinger" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to webfinger+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

--001a113433ae098d1e0500666d5f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">what are the actual use cases prompting this? =C2=A0If fol=
ks are trying to store more complicated data, why is it not just a linked r=
esource?<div><br></div><div>Personally, as a client author, I&#39;ve always=
 hated it when APIs have polymorphic data types like this.</div>

</div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Mon,=
 Aug 11, 2014 at 7:29 PM, &#39;Paul E. Jones&#39; via WebFinger <span dir=
=3D"ltr">&lt;<a href=3D"mailto:webfinger@googlegroups.com" target=3D"_blank=
">webfinger@googlegroups.com</a>&gt;</span> wrote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">


<div>
<div>Folks,</div>
<div>=C2=A0</div>
<div>I have been asked by multiple people for different purposes to see if =
it might be possible to redefine &quot;properties&quot; in the JSON Resourc=
e Descriptor.</div>
<div>=C2=A0</div>
<div>Per RFC 7033, &quot;properties&quot; is defined as an object that has =
zero or more name/value pairs whose values are strings or null.=C2=A0 The s=
uggestion is that the values should be any valid JSON type.=C2=A0 Thus, a p=
roperty might refer to a string (as is does now) or it might refer to an ob=
ject or array.</div>


<div>=C2=A0</div>
<div>This change would break any parsers strictly implement definition of &=
quot;properties&quot;.=C2=A0 So, there are=C2=A0two questions I want to pre=
sent to those who are interested:</div>
<div>=C2=A0</div>
<div>1) Would you be agreeable to change the current definition of &quot;pr=
operties&quot;=C2=A0to allow any value type?</div>
<div>2) If not, would be agreeable to introducing something like &quot;prop=
erties&quot; that essentially allows for the same and, if so, what should t=
his new object be named?</div>
<div>=C2=A0</div>
<div>Personally, as much as I don&#39;t like breaking backward-compatibilit=
y, I&#39;m favorable to redefining properties to accomodate what people wan=
t to do.=C2=A0 I&#39;m willing to work on an RFC 7033bis and/or a new RFC t=
o update the JRD specification, if folks are agreeable to either (1) or (2)=
.</div>

<span class=3D"HOEnZb"><font color=3D"#888888">
<div>=C2=A0</div>
<div>Paul</div>
<div>=C2=A0</div></font></span></div><span class=3D"HOEnZb"><font color=3D"=
#888888">

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups &=
quot;WebFinger&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:webfinger+unsubscribe@googlegroups.com" target=3D=
"_blank">webfinger+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" targ=
et=3D"_blank">https://groups.google.com/d/optout</a>.<br>
</font></span></blockquote></div><br></div>

--001a113433ae098d1e0500666d5f--


From nobody Sat Aug 16 12:05:36 2014
Return-Path: <paulej@packetizer.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7076B1A015F for <webfinger@ietfa.amsl.com>; Sat, 16 Aug 2014 12:05:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.031
X-Spam-Level: 
X-Spam-Status: No, score=0.031 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.668, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vCuvxTj7iboD for <webfinger@ietfa.amsl.com>; Sat, 16 Aug 2014 12:05:31 -0700 (PDT)
Received: from dublin.packetizer.com (dublin.packetizer.com [75.101.130.125]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 162281A015D for <webfinger@ietf.org>; Sat, 16 Aug 2014 12:05:30 -0700 (PDT)
Received: from [192.168.1.20] (cpe-024-211-197-136.nc.res.rr.com [24.211.197.136]) (authenticated bits=0) by dublin.packetizer.com (8.14.5/8.14.5) with ESMTP id s7GJ5Sn8013786 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sat, 16 Aug 2014 15:05:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=packetizer.com; s=dublin; t=1408215929; bh=z8BmAOT/A9k5vgzUln4BMVrHyIHr9oQYwAgYFqOvRz8=; h=From:To:Subject:Cc:Date:Message-Id:In-Reply-To:Reply-To: Mime-Version:Content-Type; b=Th4iwE9RQqtbW6JUKOTi2MWHtXrUFuhrc4KUrhpOUuxm03TUMyvL1OZsSJ2tJgwPJ 1vrvxSrE8OYeNaFmhzX+9lcAAKpRY2hFqKeOwrl8SRONLBwiQ54yhcxwi91CGG9nBs GYH6Dx7Q6acrUquSEeffkd5xCwLwaNcVvby8ktrE=
From: "Paul E. Jones" <paulej@packetizer.com>
To: "Will Norris" <will@willnorris.com>, webfinger@googlegroups.com
Date: Sat, 16 Aug 2014 19:05:45 +0000
Message-Id: <em6aba2e86-7b0f-49d3-a041-49439c5f7df4@sydney>
In-Reply-To: <CAJqAn3ysg30qZndNpUvk=kUK0ZCcQrW652E_6-0-+q_ceFPHAA@mail.gmail.com>
User-Agent: eM_Client/6.0.20617.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MBE67A788A-E95F-4D45-A935-D85BB39D8337"
Archived-At: http://mailarchive.ietf.org/arch/msg/webfinger/je7hCvauSVK2IpClqgSgUtbDwjQ
Cc: "webfinger@ietf.org" <webfinger@ietf.org>
Subject: Re: [webfinger] Redefining "properties"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: "Paul E. Jones" <paulej@packetizer.com>
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger/>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Aug 2014 19:05:34 -0000

--------=_MBE67A788A-E95F-4D45-A935-D85BB39D8337
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Will,

Sorry for the slow response.  I've been busy.

Yes, folks do want to put more complex data into JRD as opposed to=20
linking, including objects or arrays.  I can see how this can be abused,=
=20
but then I can also see an argument for not linking to data that could=20
be trivially represented inside the JRD itself.

Unfortunately, I do not have details of the specific use cases.  All I=20
do know is that there people working on unrelated applications where=20
they want to be able to  do things like this with WebFinger:

"properties" :
{
   "http://example.com/ns/foo" :
   {
     "a" : "Hello",
     "b" : 32
   }
}

Perhaps what might be worse is the possibility that people do this:

...
"properties" :
{
   "http://example.com/ns/foo" : "{\"a\" : \"Hello\", \"b\" : 32}"
}
...
When working on WebFinger, there was a desire to keep it as simple as=20
possible.  However, I fully appreciate why some would want to do=20
something like this.  Sometimes, linking to external resources is=20
"overkill" for the task at hand.  And, you're right that dealing with=20
polymorphic data types can be a pain.  Then again, the JSON parser deals=
=20
with much of this automatically and the client is likely going to only=20
be looking for known members, anyway.

So, I'm not sure what to do here.  I'm OK with making a change.  It=20
bothers me that we might break any client code that assumes all=20
properties are strings.  But, there is always the option to add some=20
other member named something other than "properties".

I take it you're not too keen on the idea, though.

Paul

------ Original Message ------
From: "Will Norris" <will@willnorris.com>
To: webfinger@googlegroups.com
Cc: "webfinger@ietf.org" <webfinger@ietf.org>
Sent: 8/11/2014 11:39:19 PM
Subject: Re: [webfinger] Redefining "properties"

>what are the actual use cases prompting this?  If folks are trying to=20
>store more complicated data, why is it not just a linked resource?
>
>Personally, as a client author, I've always hated it when APIs have=20
>polymorphic data types like this.
>
>
>On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones' via WebFinger=20
><webfinger@googlegroups.com> wrote:
>>Folks,
>>
>>I have been asked by multiple people for different purposes to see if=20
>>it might be possible to redefine "properties" in the JSON Resource=20
>>Descriptor.
>>
>>Per RFC 7033, "properties" is defined as an object that has zero or=20
>>more name/value pairs whose values are strings or null.  The=20
>>suggestion is that the values should be any valid JSON type.  Thus, a=20
>>property might refer to a string (as is does now) or it might refer to=
=20
>>an object or array.
>>
>>This change would break any parsers strictly implement definition of=20
>>"properties".  So, there are two questions I want to present to those=20
>>who are interested:
>>
>>1) Would you be agreeable to change the current definition of=20
>>"properties" to allow any value type?
>>2) If not, would be agreeable to introducing something like=20
>>"properties" that essentially allows for the same and, if so, what=20
>>should this new object be named?
>>
>>Personally, as much as I don't like breaking backward-compatibility,=20
>>I'm favorable to redefining properties to accomodate what people want=20
>>to do.  I'm willing to work on an RFC 7033bis and/or a new RFC to=20
>>update the JRD specification, if folks are agreeable to either (1) or=20
>>(2).
>>
>>Paul
>>
>>
>>--
>>
>>---
>>You received this message because you are subscribed to the Google=20
>>Groups "WebFinger" group.
>>To unsubscribe from this group and stop receiving emails from it, send=
=20
>>an email to webfinger+unsubscribe@googlegroups.com.
>>For more options, visit https://groups.google.com/d/optout.
>
--------=_MBE67A788A-E95F-4D45-A935-D85BB39D8337
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD>
<STYLE id=3DeMClientCss>BLOCKQUOTE.cite {
	PADDING-LEFT: 10px; MARGIN-LEFT: 5px; BORDER-LEFT: #cccccc 1px solid; PADD=
ING-RIGHT: 0px; MARGIN-RIGHT: 0px
}
BLOCKQUOTE.cite2 {
	PADDING-TOP: 0px; PADDING-LEFT: 10px; MARGIN-LEFT: 5px; BORDER-LEFT: #cccc=
cc 1px solid; MARGIN-TOP: 3px; PADDING-RIGHT: 0px; MARGIN-RIGHT: 0px
}
.plain PRE {
	FONT-SIZE: 100%; FONT-FAMILY: monospace; FONT-WEIGHT: normal; FONT-STYLE:=
 normal
}
.plain TT {
	FONT-SIZE: 100%; FONT-FAMILY: monospace; FONT-WEIGHT: normal; FONT-STYLE:=
 normal
}
#bd8f4cc8a0fc43689a81dc6ec924cc34 {
	FONT-SIZE: 11pt; FONT-FAMILY: Calibri
}
.plain PRE {
	FONT-SIZE: 11pt; FONT-FAMILY: Calibri
}
.plain TT {
	FONT-SIZE: 11pt; FONT-FAMILY: Calibri
}
BODY {
	FONT-SIZE: 11pt; FONT-FAMILY: Calibri
}
</STYLE>

<STYLE></STYLE>
</HEAD>
<BODY scroll=3Dauto class>
<DIV>Will,</DIV>
<DIV>&nbsp;</DIV>
<DIV>Sorry for the slow response.&nbsp; I've been busy.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Yes, folks&nbsp;do want to put more complex data into JRD as&nbsp;oppo=
sed to linking, including objects or arrays.&nbsp; I can see how this can=
 be abused, but then I can also see an argument for not linking to data =
that could be trivially represented inside the JRD itself.</DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN id=3Dbd8f4cc8a0fc43689a81dc6ec924cc34>
<DIV>Unfortunately, I do not have details of the specific use cases.&nbsp;=
 All I do know is that there people working on unrelated applications where=
 they&nbsp;want to be able to&nbsp; do things like this with WebFinger:</DI=
V>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2 face=3D"Courier New">"properties" :<BR>{<BR>&nbsp; "</F=
ONT><A href=3D"http://example.com/ns/foo"><FONT size=3D2 face=3D"Courier=
 New">http://example.com/ns/foo</FONT></A><FONT size=3D2 face=3D"Courier=
 New">" :<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; "a" : "Hello",<BR>&nbsp;&nbsp;&=
nbsp; "b" : 32<BR>&nbsp; }<BR>}</FONT></DIV></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV>Perhaps what might be worse is the possibility that people do this:</D=
IV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2 face=3D"Courier New">...<BR>"properties" :<BR>{<BR>&nbs=
p; "</FONT><A href=3D"http://example.com/ns/foo"><FONT size=3D2 face=3D"Cou=
rier New">http://example.com/ns/foo</FONT></A><FONT size=3D2 face=3D"Courie=
r New">" : "{\"a\" : \"Hello\", \"b\" : 32}"<BR>}<BR>...<BR></FONT></DIV>
<DIV>When working on WebFinger, there was a desire to keep it as simple =
as possible.&nbsp; However, I fully appreciate why some would want to do=
 something like this.&nbsp; Sometimes, linking to external resources is =
"overkill" for the task at hand.&nbsp; And, you're right that dealing with=
 polymorphic data types can be a pain.&nbsp; Then again, the JSON parser=
 deals with much of this automatically and the client is likely going to=
 only be looking for known members, anyway.</DIV>
<DIV>&nbsp;</DIV>
<DIV>So, I'm not sure what to do here.&nbsp; I'm OK with making a change.&n=
bsp; It bothers me that we might break any client code that assumes all =
properties are strings.&nbsp; But, there is always the option to add some=
 other member named something other than "properties".</DIV>
<DIV>&nbsp;</DIV>
<DIV>I take it you're not too keen on the idea, though.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Paul</DIV>
<DIV>&nbsp;</DIV>
<DIV>------ Original Message ------</DIV>
<DIV>From: "Will Norris" &lt;<A href=3D"mailto:will@willnorris.com">will@wi=
llnorris.com</A>&gt;</DIV>
<DIV>To: <A href=3D"mailto:webfinger@googlegroups.com">webfinger@googlegrou=
ps.com</A></DIV>
<DIV>Cc: "webfinger@ietf.org" &lt;<A href=3D"mailto:webfinger@ietf.org">web=
finger@ietf.org</A>&gt;</DIV>
<DIV>Sent: 8/11/2014 11:39:19 PM</DIV>
<DIV>Subject: Re: [webfinger] Redefining "properties"</DIV>
<DIV>&nbsp;</DIV>
<DIV id=3Dfd8ea0d45e224b12880d2ce78411e0f8>
<BLOCKQUOTE class=3Dcite2 cite=3DCAJqAn3ysg30qZndNpUvk=3DkUK0ZCcQrW652E_6-0=
-+q_ceFPHAA@mail.gmail.com type=3D"cite">
<DIV dir=3Dltr>what are the actual use cases prompting this? &nbsp;If folks=
 are trying to store more complicated data, why is it not just a linked =
resource?=20
<DIV><BR></DIV>
<DIV>Personally, as a client author, I've always hated it when APIs have=
 polymorphic data types like this.</DIV></DIV>
<DIV class=3Dgmail_extra><BR><BR>
<DIV class=3Dgmail_quote>On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones'=
 via WebFinger <SPAN dir=3Dltr>&lt;<A href=3D"mailto:webfinger@googlegroups=
.com">webfinger@googlegroups.com</A>&gt;</SPAN> wrote:<BR>
<BLOCKQUOTE class=3Dgmail_quote style=3D"PADDING-LEFT: 1ex; MARGIN: 0px =
0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<DIV>
<DIV>Folks,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I have been asked by multiple people for different purposes to see =
if it might be possible to redefine "properties" in the JSON Resource Descr=
iptor.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Per RFC 7033, "properties" is defined as an object that has zero or=
 more name/value pairs whose values are strings or null.&nbsp; The suggesti=
on is that the values should be any valid JSON type.&nbsp; Thus, a property=
 might refer to a string (as is does now) or it might refer to an object=
 or array.</DIV>
<DIV>&nbsp;</DIV>
<DIV>This change would break any parsers strictly implement definition of=
 "properties".&nbsp; So, there are&nbsp;two questions I want to present =
to those who are interested:</DIV>
<DIV>&nbsp;</DIV>
<DIV>1) Would you be agreeable to change the current definition of "propert=
ies"&nbsp;to allow any value type?</DIV>
<DIV>2) If not, would be agreeable to introducing something like "propertie=
s" that essentially allows for the same and, if so, what should this new=
 object be named?</DIV>
<DIV>&nbsp;</DIV>
<DIV>Personally, as much as I don't like breaking backward-compatibility,=
 I'm favorable to redefining properties to accomodate what people want to=
 do.&nbsp; I'm willing to work on an RFC 7033bis and/or a new RFC to update=
 the JRD specification, if folks are agreeable to either (1) or (2).</DIV><=
SPAN class=3DHOEnZb><FONT color=3D#888888>
<DIV>&nbsp;</DIV>
<DIV>Paul</DIV>
<DIV>&nbsp;</DIV></FONT></SPAN></DIV><SPAN class=3DHOEnZb><FONT color=3D=
#888888>
<P></P>-- <BR><BR>--- <BR>You received this message because you are subscri=
bed to the Google Groups "WebFinger" group.<BR>To unsubscribe from this =
group and stop receiving emails from it, send an email to <A href=3D"mailto=
:webfinger+unsubscribe@googlegroups.com">webfinger+unsubscribe@googlegroups=
.com</A>.<BR>For more options, visit <A href=3D"https://groups.google.com/d=
/optout">https://groups.google.com/d/optout</A>.<BR></FONT></SPAN></BLOCKQU=
OTE></DIV><BR></DIV></BLOCKQUOTE></DIV></BODY></HTML>
--------=_MBE67A788A-E95F-4D45-A935-D85BB39D8337--


From nobody Sat Aug 16 12:21:58 2014
Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3F5611A016C for <webfinger@ietfa.amsl.com>; Sat, 16 Aug 2014 12:21:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jcN67l1gSoap for <webfinger@ietfa.amsl.com>; Sat, 16 Aug 2014 12:21:55 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1blp0181.outbound.protection.outlook.com [207.46.163.181]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A8BE21A016B for <webfinger@ietf.org>; Sat, 16 Aug 2014 12:21:54 -0700 (PDT)
Received: from BN3PR0301CA0082.namprd03.prod.outlook.com (25.160.152.178) by BN1PR03MB188.namprd03.prod.outlook.com (10.255.200.151) with Microsoft SMTP Server (TLS) id 15.0.1005.10; Sat, 16 Aug 2014 19:21:51 +0000
Received: from BN1BFFO11FD052.protection.gbl (2a01:111:f400:7c10::1:170) by BN3PR0301CA0082.outlook.office365.com (2a01:111:e400:401e::50) with Microsoft SMTP Server (TLS) id 15.0.1010.18 via Frontend Transport; Sat, 16 Aug 2014 19:21:51 +0000
Received: from mail.microsoft.com (131.107.125.37) by BN1BFFO11FD052.mail.protection.outlook.com (10.58.145.7) with Microsoft SMTP Server (TLS) id 15.0.1010.11 via Frontend Transport; Sat, 16 Aug 2014 19:21:51 +0000
Received: from TK5EX14MBXC293.redmond.corp.microsoft.com ([169.254.2.111]) by TK5EX14HUBC105.redmond.corp.microsoft.com ([157.54.80.48]) with mapi id 14.03.0195.002; Sat, 16 Aug 2014 19:21:26 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: "Paul E. Jones" <paulej@packetizer.com>, Will Norris <will@willnorris.com>, "webfinger@googlegroups.com" <webfinger@googlegroups.com>
Thread-Topic: [webfinger] Redefining "properties"
Thread-Index: AQHPtdU6hil2+M2G6kyYHw6GiMhwPJvMUlSAgAdMK4CAAARhmw==
Date: Sat, 16 Aug 2014 19:21:25 +0000
Message-ID: <4E1F6AAD24975D4BA5B16804296739439AE1FE1E@TK5EX14MBXC293.redmond.corp.microsoft.com>
References: <CAJqAn3ysg30qZndNpUvk=kUK0ZCcQrW652E_6-0-+q_ceFPHAA@mail.gmail.com>,  <em6aba2e86-7b0f-49d3-a041-49439c5f7df4@sydney>
In-Reply-To: <em6aba2e86-7b0f-49d3-a041-49439c5f7df4@sydney>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-Type: multipart/alternative; boundary="_000_4E1F6AAD24975D4BA5B16804296739439AE1FE1ETK5EX14MBXC293r_"
MIME-Version: 1.0
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019005)(438002)(479174003)(24454002)(13464003)(377454003)(189002)(199003)(77096002)(50986999)(92726001)(79102001)(97736001)(19617315012)(33656002)(76176999)(87936001)(20776003)(2656002)(15202345003)(92566001)(19625215002)(19580405001)(19580395003)(86612001)(83322001)(80022001)(26826002)(77982001)(104016003)(19273905006)(85852003)(44976005)(6806004)(76482001)(15395725005)(55846006)(85306004)(106116001)(99396002)(69596002)(81342001)(107046002)(68736004)(84676001)(4396001)(81156004)(81542001)(64706001)(83072002)(16236675004)(54356999)(106466001)(74502001)(14971765001)(15975445006)(46102001)(86362001)(31966008)(84326002)(21056001)(95666004)(71186001)(74662001)(2501001)(563064011)(19607625011); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR03MB188; H:mail.microsoft.com; FPR:; MLV:ovrnspm; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;UriScan:;
X-O365ENT-EOP-Header: Message processed by -  O365_ENT: Allow from ranges (Engineering ONLY)
X-Forefront-PRVS: 0305463112
Received-SPF: Pass (protection.outlook.com: domain of microsoft.com designates 131.107.125.37 as permitted sender) receiver=protection.outlook.com;  client-ip=131.107.125.37; helo=mail.microsoft.com;
Authentication-Results: spf=pass (sender IP is 131.107.125.37) smtp.mailfrom=Michael.Jones@microsoft.com; 
X-OriginatorOrg: microsoft.onmicrosoft.com
Archived-At: http://mailarchive.ietf.org/arch/msg/webfinger/-dwppgqedxBL1uBWdwwQTF0gScg
Cc: "webfinger@ietf.org" <webfinger@ietf.org>
Subject: Re: [webfinger] Redefining "properties"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger/>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Aug 2014 19:21:57 -0000

--_000_4E1F6AAD24975D4BA5B16804296739439AE1FE1ETK5EX14MBXC293r_
Content-Type: text/plain; charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

People want to put JWK Sets into the results.
________________________________
From: Paul E. Jones<mailto:paulej@packetizer.com>
Sent: =FD8/=FD16/=FD2014 12:05 PM
To: Will Norris<mailto:will@willnorris.com>; webfinger@googlegroups.com<mai=
lto:webfinger@googlegroups.com>
Cc: webfinger@ietf.org<mailto:webfinger@ietf.org>
Subject: Re: [webfinger] Redefining "properties"

Will,

Sorry for the slow response.  I've been busy.

Yes, folks do want to put more complex data into JRD as opposed to linking,=
 including objects or arrays.  I can see how this can be abused, but then I=
 can also see an argument for not linking to data that could be trivially r=
epresented inside the JRD itself.

Unfortunately, I do not have details of the specific use cases.  All I do k=
now is that there people working on unrelated applications where they want =
to be able to  do things like this with WebFinger:

"properties" :
{
  "http://example.com/ns/foo" :
  {
    "a" : "Hello",
    "b" : 32
  }
}

Perhaps what might be worse is the possibility that people do this:

...
"properties" :
{
  "http://example.com/ns/foo" : "{\"a\" : \"Hello\", \"b\" : 32}"
}
...
When working on WebFinger, there was a desire to keep it as simple as possi=
ble.  However, I fully appreciate why some would want to do something like =
this.  Sometimes, linking to external resources is "overkill" for the task =
at hand.  And, you're right that dealing with polymorphic data types can be=
 a pain.  Then again, the JSON parser deals with much of this automatically=
 and the client is likely going to only be looking for known members, anywa=
y.

So, I'm not sure what to do here.  I'm OK with making a change.  It bothers=
 me that we might break any client code that assumes all properties are str=
ings.  But, there is always the option to add some other member named somet=
hing other than "properties".

I take it you're not too keen on the idea, though.

Paul

------ Original Message ------
From: "Will Norris" <will@willnorris.com<mailto:will@willnorris.com>>
To: webfinger@googlegroups.com<mailto:webfinger@googlegroups.com>
Cc: "webfinger@ietf.org" <webfinger@ietf.org<mailto:webfinger@ietf.org>>
Sent: 8/11/2014 11:39:19 PM
Subject: Re: [webfinger] Redefining "properties"

what are the actual use cases prompting this?  If folks are trying to store=
 more complicated data, why is it not just a linked resource?

Personally, as a client author, I've always hated it when APIs have polymor=
phic data types like this.


On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones' via WebFinger <webfinger@g=
ooglegroups.com<mailto:webfinger@googlegroups.com>> wrote:
Folks,

I have been asked by multiple people for different purposes to see if it mi=
ght be possible to redefine "properties" in the JSON Resource Descriptor.

Per RFC 7033, "properties" is defined as an object that has zero or more na=
me/value pairs whose values are strings or null.  The suggestion is that th=
e values should be any valid JSON type.  Thus, a property might refer to a =
string (as is does now) or it might refer to an object or array.

This change would break any parsers strictly implement definition of "prope=
rties".  So, there are two questions I want to present to those who are int=
erested:

1) Would you be agreeable to change the current definition of "properties" =
to allow any value type?
2) If not, would be agreeable to introducing something like "properties" th=
at essentially allows for the same and, if so, what should this new object =
be named?

Personally, as much as I don't like breaking backward-compatibility, I'm fa=
vorable to redefining properties to accomodate what people want to do.  I'm=
 willing to work on an RFC 7033bis and/or a new RFC to update the JRD speci=
fication, if folks are agreeable to either (1) or (2).

Paul


--

---
You received this message because you are subscribed to the Google Groups "=
WebFinger" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to webfinger+unsubscribe@googlegroups.com<mailto:webfinger+unsubscribe=
@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.


--_000_4E1F6AAD24975D4BA5B16804296739439AE1FE1ETK5EX14MBXC293r_
Content-Type: text/html; charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dwindows-1=
256">
<style id=3D"eMClientCss">
<!--
blockquote.cite
	{padding-left:10px;
	margin-left:5px;
	border-left:#cccccc 1px solid;
	padding-right:0px;
	margin-right:0px}
blockquote.cite2
	{padding-top:0px;
	padding-left:10px;
	margin-left:5px;
	border-left:#cccccc 1px solid;
	margin-top:3px;
	padding-right:0px;
	margin-right:0px}
.plain pre
	{font-size:100%;
	font-family:monospace;
	font-weight:normal;
	font-style:normal}
.plain tt
	{font-size:100%;
	font-family:monospace;
	font-weight:normal;
	font-style:normal}
#bd8f4cc8a0fc43689a81dc6ec924cc34
	{font-size:11pt;
	font-family:Calibri}
.plain pre
	{font-size:11pt;
	font-family:Calibri}
.plain tt
	{font-size:11pt;
	font-family:Calibri}
body
	{font-size:11pt;
	font-family:Calibri}
-->
</style><style>
<!--
-->
</style>
</head>
<body class=3D"">
<div>
<div style=3D"font-family:Calibri,sans-serif; font-size:11pt">People want t=
o put JWK Sets into the results.<br>
</div>
</div>
<div dir=3D"ltr">
<hr>
<span style=3D"font-family:Calibri,sans-serif; font-size:11pt; font-weight:=
bold">From:
</span><span style=3D"font-family:Calibri,sans-serif; font-size:11pt"><a hr=
ef=3D"mailto:paulej@packetizer.com">Paul E. Jones</a></span><br>
<span style=3D"font-family:Calibri,sans-serif; font-size:11pt; font-weight:=
bold">Sent:
</span><span style=3D"font-family:Calibri,sans-serif; font-size:11pt">=FD8/=
=FD16/=FD2014 12:05 PM</span><br>
<span style=3D"font-family:Calibri,sans-serif; font-size:11pt; font-weight:=
bold">To:
</span><span style=3D"font-family:Calibri,sans-serif; font-size:11pt"><a hr=
ef=3D"mailto:will@willnorris.com">Will Norris</a>;
<a href=3D"mailto:webfinger@googlegroups.com">webfinger@googlegroups.com</a=
></span><br>
<span style=3D"font-family:Calibri,sans-serif; font-size:11pt; font-weight:=
bold">Cc:
</span><span style=3D"font-family:Calibri,sans-serif; font-size:11pt"><a hr=
ef=3D"mailto:webfinger@ietf.org">webfinger@ietf.org</a></span><br>
<span style=3D"font-family:Calibri,sans-serif; font-size:11pt; font-weight:=
bold">Subject:
</span><span style=3D"font-family:Calibri,sans-serif; font-size:11pt">Re: [=
webfinger] Redefining &quot;properties&quot;</span><br>
<br>
</div>
<div>
<div>Will,</div>
<div>&nbsp;</div>
<div>Sorry for the slow response.&nbsp; I've been busy.</div>
<div>&nbsp;</div>
<div>Yes, folks&nbsp;do want to put more complex data into JRD as&nbsp;oppo=
sed to linking, including objects or arrays.&nbsp; I can see how this can b=
e abused, but then I can also see an argument for not linking to data that =
could be trivially represented inside the JRD itself.</div>
<div>&nbsp;</div>
<div><span id=3D"bd8f4cc8a0fc43689a81dc6ec924cc34">
<div>Unfortunately, I do not have details of the specific use cases.&nbsp; =
All I do know is that there people working on unrelated applications where =
they&nbsp;want to be able to&nbsp; do things like this with WebFinger:</div=
>
<div>&nbsp;</div>
<div><font size=3D"2" face=3D"Courier New">&quot;properties&quot; :<br>
{<br>
&nbsp; &quot;</font><a href=3D"http://example.com/ns/foo"><font size=3D"2" =
face=3D"Courier New">http://example.com/ns/foo</font></a><font size=3D"2" f=
ace=3D"Courier New">&quot; :<br>
&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &quot;a&quot; : &quot;Hello&quot;,<br>
&nbsp;&nbsp;&nbsp; &quot;b&quot; : 32<br>
&nbsp; }<br>
}</font></div>
</span></div>
<div>&nbsp;</div>
<div>Perhaps what might be worse is the possibility that people do this:</d=
iv>
<div>&nbsp;</div>
<div><font size=3D"2" face=3D"Courier New">...<br>
&quot;properties&quot; :<br>
{<br>
&nbsp; &quot;</font><a href=3D"http://example.com/ns/foo"><font size=3D"2" =
face=3D"Courier New">http://example.com/ns/foo</font></a><font size=3D"2" f=
ace=3D"Courier New">&quot; : &quot;{\&quot;a\&quot; : \&quot;Hello\&quot;, =
\&quot;b\&quot; : 32}&quot;<br>
}<br>
...<br>
</font></div>
<div>When working on WebFinger, there was a desire to keep it as simple as =
possible.&nbsp; However, I fully appreciate why some would want to do somet=
hing like this.&nbsp; Sometimes, linking to external resources is &quot;ove=
rkill&quot; for the task at hand.&nbsp; And, you're right
 that dealing with polymorphic data types can be a pain.&nbsp; Then again, =
the JSON parser deals with much of this automatically and the client is lik=
ely going to only be looking for known members, anyway.</div>
<div>&nbsp;</div>
<div>So, I'm not sure what to do here.&nbsp; I'm OK with making a change.&n=
bsp; It bothers me that we might break any client code that assumes all pro=
perties are strings.&nbsp; But, there is always the option to add some othe=
r member named something other than &quot;properties&quot;.</div>
<div>&nbsp;</div>
<div>I take it you're not too keen on the idea, though.</div>
<div>&nbsp;</div>
<div>Paul</div>
<div>&nbsp;</div>
<div>------ Original Message ------</div>
<div>From: &quot;Will Norris&quot; &lt;<a href=3D"mailto:will@willnorris.co=
m">will@willnorris.com</a>&gt;</div>
<div>To: <a href=3D"mailto:webfinger@googlegroups.com">webfinger@googlegrou=
ps.com</a></div>
<div>Cc: &quot;webfinger@ietf.org&quot; &lt;<a href=3D"mailto:webfinger@iet=
f.org">webfinger@ietf.org</a>&gt;</div>
<div>Sent: 8/11/2014 11:39:19 PM</div>
<div>Subject: Re: [webfinger] Redefining &quot;properties&quot;</div>
<div>&nbsp;</div>
<div id=3D"fd8ea0d45e224b12880d2ce78411e0f8">
<blockquote class=3D"cite2" type=3D"cite">
<div dir=3D"ltr">what are the actual use cases prompting this? &nbsp;If fol=
ks are trying to store more complicated data, why is it not just a linked r=
esource?
<div><br>
</div>
<div>Personally, as a client author, I've always hated it when APIs have po=
lymorphic data types like this.</div>
</div>
<div class=3D"gmail_extra"><br>
<br>
<div class=3D"gmail_quote">On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones'=
 via WebFinger
<span dir=3D"ltr">&lt;<a href=3D"mailto:webfinger@googlegroups.com">webfing=
er@googlegroups.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"padding-left:1ex; margin:0px 0px=
 0px 0.8ex; border-left:#ccc 1px solid">
<div>
<div>Folks,</div>
<div>&nbsp;</div>
<div>I have been asked by multiple people for different purposes to see if =
it might be possible to redefine &quot;properties&quot; in the JSON Resourc=
e Descriptor.</div>
<div>&nbsp;</div>
<div>Per RFC 7033, &quot;properties&quot; is defined as an object that has =
zero or more name/value pairs whose values are strings or null.&nbsp; The s=
uggestion is that the values should be any valid JSON type.&nbsp; Thus, a p=
roperty might refer to a string (as is does now) or
 it might refer to an object or array.</div>
<div>&nbsp;</div>
<div>This change would break any parsers strictly implement definition of &=
quot;properties&quot;.&nbsp; So, there are&nbsp;two questions I want to pre=
sent to those who are interested:</div>
<div>&nbsp;</div>
<div>1) Would you be agreeable to change the current definition of &quot;pr=
operties&quot;&nbsp;to allow any value type?</div>
<div>2) If not, would be agreeable to introducing something like &quot;prop=
erties&quot; that essentially allows for the same and, if so, what should t=
his new object be named?</div>
<div>&nbsp;</div>
<div>Personally, as much as I don't like breaking backward-compatibility, I=
'm favorable to redefining properties to accomodate what people want to do.=
&nbsp; I'm willing to work on an RFC 7033bis and/or a new RFC to update the=
 JRD specification, if folks are agreeable
 to either (1) or (2).</div>
<span class=3D"HOEnZb"><font color=3D"#888888">
<div>&nbsp;</div>
<div>Paul</div>
<div>&nbsp;</div>
</font></span></div>
<span class=3D"HOEnZb"><font color=3D"#888888">
<p></p>
-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups &=
quot;WebFinger&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to
<a href=3D"mailto:webfinger&#43;unsubscribe@googlegroups.com">webfinger&#43=
;unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout">http=
s://groups.google.com/d/optout</a>.<br>
</font></span></blockquote>
</div>
<br>
</div>
</blockquote>
</div>
</div>
</body>
</html>

--_000_4E1F6AAD24975D4BA5B16804296739439AE1FE1ETK5EX14MBXC293r_--


From nobody Sun Aug 17 20:37:00 2014
Return-Path: <wnorris@gmail.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BC5D91A028A for <webfinger@ietfa.amsl.com>; Sun, 17 Aug 2014 20:36:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.622
X-Spam-Level: 
X-Spam-Status: No, score=0.622 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rQcYowvLBjer for <webfinger@ietfa.amsl.com>; Sun, 17 Aug 2014 20:36:56 -0700 (PDT)
Received: from mail-lb0-x234.google.com (mail-lb0-x234.google.com [IPv6:2a00:1450:4010:c04::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 462181A0282 for <webfinger@ietf.org>; Sun, 17 Aug 2014 20:36:56 -0700 (PDT)
Received: by mail-lb0-f180.google.com with SMTP id v6so3633636lbi.39 for <webfinger@ietf.org>; Sun, 17 Aug 2014 20:36:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=KpJNfGKXHyXodMHytttOgVjfGmzIEEFSv8iEqhJgCUE=; b=wCUqCBQIVRK4EF/uPocEITeYiR3BsqfGJmcLz47fOtpHaIolrYozGNyvoykuTVfX9e ebgqI00OdMTojNdprsXfURMG2ApVlWyj8XTatExHtYL6g00BB2TIVZhWZVU9Chqs34Pd sMcPB+eERjGE2xLq5UWu33/LdMgns9d0dJZ8QJmmlAjj5Hkr0j6Dtg7i6/BDAFT+VE3V yZSlWxcb1SpAtKNE+I0bmBzs+3IIxZxMwOLD7YBjmUysWT/EsKkIrkccuZbDgHcR/HEH qCstGSqa3F1+3HZilRoqeOW1EpxcEayER3Sl2dkE3HJicPKZXRsN8oHYTUZWqrbbT22v WUfQ==
X-Received: by 10.152.179.168 with SMTP id dh8mr26923514lac.0.1408333014583; Sun, 17 Aug 2014 20:36:54 -0700 (PDT)
MIME-Version: 1.0
Sender: wnorris@gmail.com
Received: by 10.152.210.103 with HTTP; Sun, 17 Aug 2014 20:36:14 -0700 (PDT)
In-Reply-To: <em6aba2e86-7b0f-49d3-a041-49439c5f7df4@sydney>
References: <CAJqAn3ysg30qZndNpUvk=kUK0ZCcQrW652E_6-0-+q_ceFPHAA@mail.gmail.com> <em6aba2e86-7b0f-49d3-a041-49439c5f7df4@sydney>
From: Will Norris <will@willnorris.com>
Date: Sun, 17 Aug 2014 20:36:14 -0700
X-Google-Sender-Auth: G7aDWwrKSfm1M-m8tdKMvyNXVgg
Message-ID: <CAJqAn3zdfmqi_+fyBcxxQSVPLLVs9raHxQWaPqdYiX1=s6Uw9g@mail.gmail.com>
To: webfinger@googlegroups.com
Content-Type: multipart/alternative; boundary=001a1133a55c0f4edd0500df1544
Archived-At: http://mailarchive.ietf.org/arch/msg/webfinger/RC1e2uzN5kJkq18YXqpa7dNkXyc
Cc: "webfinger@ietf.org" <webfinger@ietf.org>
Subject: Re: [webfinger] Redefining "properties"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger/>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Aug 2014 03:36:59 -0000

--001a1133a55c0f4edd0500df1544
Content-Type: text/plain; charset=UTF-8

On Sat, Aug 16, 2014 at 12:05 PM, 'Paul E. Jones' via WebFinger <
webfinger@googlegroups.com> wrote:

>  Will,
>
> Sorry for the slow response.  I've been busy.
>
> Yes, folks do want to put more complex data into JRD as opposed to
> linking, including objects or arrays.  I can see how this can be abused,
> but then I can also see an argument for not linking to data that could be
> trivially represented inside the JRD itself.
>
>  Unfortunately, I do not have details of the specific use cases.
>

as a rule, I think suggestions for major changes to spec should always be
accompanied by concrete use cases that necessitate the change, ever more so
when we're talking about *breaking* changes to a *finalized* spec.  (in
this case Mike did provide an example later, so my comment is more to the
fact that his was proposed in the first place without an actual use case in
mind)


> All I do know is that there people working on unrelated applications where
> they want to be able to  do things like this with WebFinger:
>
> "properties" :
> {
>   "http://example.com/ns/foo" :
>   {
>     "a" : "Hello",
>     "b" : 32
>   }
> }
>
> Perhaps what might be worse is the possibility that people do this:
>
> ...
> "properties" :
> {
>   "http://example.com/ns/foo" : "{\"a\" : \"Hello\", \"b\" : 32}"
> }
> ...
> When working on WebFinger, there was a desire to keep it as simple as
> possible.  However, I fully appreciate why some would want to do something
> like this.  Sometimes, linking to external resources is "overkill" for the
> task at hand.  And, you're right that dealing with polymorphic data types
> can be a pain.  Then again, the JSON parser deals with much of this
> automatically and the client is likely going to only be looking for known
> members, anyway.
>

it depends very much on what the code is doing.  If you're just relying on
a JSON parser to parse an unknown structure, it's unlikely anything too bad
will happen.  However, if you're specifically trying to unserialize the
properties object into a string=>string map, then you would likely get a
parsing error.


>
> So, I'm not sure what to do here.  I'm OK with making a change.  It
> bothers me that we might break any client code that assumes all properties
> are strings.
>

"client code that assumes all properties are strings" almost sounds like
they took a shortcut or something.  This could also be spelled "client code
that implemented the spec as written"... *of course* they may have assumed
properties would be strings, that's what the spec said they would be (or
null).


> But, there is always the option to add some other member named something
> other than "properties".
>
> I take it you're not too keen on the idea, though.
>

I think that option should certainly be explored at least.  In fact, that's
something that can already be done today, no?  I don't think webfinger
precludes including other JSON values, does it?

Certainly, making breaking changes does bother me, though I still don't
think there as been THAT much adoption in the wild yet, so I don't know how
much would really be at risk of breaking.  What is the process for making
this kind of change anyway?  Publish an entirely new RFC that updates 7033?
 Publish a rewritten spec that obsoletes 7033 altogether?


As a separate issue, and I don't recall to what extent this was discuss
before, but this also makes me worry a little about the size of the data
people are looking to add to a webfinger document.  At least with links,
you can request just the links you care about with the "rel" query
parameter, but no such filtering mechanism exists for properties.  Plus I
have no idea how well supported the "rel" parameter is in webfinger servers
anyway (I know I don't support it on my personal site, but that's just me).

I know that nothing is stopping someone from throwing a megabyte worth of
data in a property string today, so this "problem" (as much as it really
is) already exists today.  But I worry that changing properties to accept
arbitrary JSON data may entice people to shove larger amounts of data in a
JRD than perhaps should be.  Gzip helps you to a degree, but I don't think
JWT sets, for example, compress much.

Ultimately, whether properties are strings or JSON objects, it's up to the
application to decide where they're going to look for what data, and
therefore what they instruct users to publish in their webfinger document.
 Perhaps what I'm suggesting is just that if new text does end up getting
written to support JSON properties, then perhaps a note to implementors
should be added to caution against adding too large of data (for some
definition of "large")?

-will


------ Original Message ------
> From: "Will Norris" <will@willnorris.com>
> To: webfinger@googlegroups.com
> Cc: "webfinger@ietf.org" <webfinger@ietf.org>
> Sent: 8/11/2014 11:39:19 PM
> Subject: Re: [webfinger] Redefining "properties"
>
>
> what are the actual use cases prompting this?  If folks are trying to
> store more complicated data, why is it not just a linked resource?
>
> Personally, as a client author, I've always hated it when APIs have
> polymorphic data types like this.
>
>
> On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones' via WebFinger <
> webfinger@googlegroups.com> wrote:
>
>>  Folks,
>>
>> I have been asked by multiple people for different purposes to see if it
>> might be possible to redefine "properties" in the JSON Resource Descriptor.
>>
>> Per RFC 7033, "properties" is defined as an object that has zero or more
>> name/value pairs whose values are strings or null.  The suggestion is that
>> the values should be any valid JSON type.  Thus, a property might refer to
>> a string (as is does now) or it might refer to an object or array.
>>
>> This change would break any parsers strictly implement definition of
>> "properties".  So, there are two questions I want to present to those who
>> are interested:
>>
>> 1) Would you be agreeable to change the current definition of
>> "properties" to allow any value type?
>> 2) If not, would be agreeable to introducing something like "properties"
>> that essentially allows for the same and, if so, what should this new
>> object be named?
>>
>> Personally, as much as I don't like breaking backward-compatibility, I'm
>> favorable to redefining properties to accomodate what people want to do.
>> I'm willing to work on an RFC 7033bis and/or a new RFC to update the JRD
>> specification, if folks are agreeable to either (1) or (2).
>>
>> Paul
>>
>>
>> --
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "WebFinger" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to webfinger+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "WebFinger" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to webfinger+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

--001a1133a55c0f4edd0500df1544
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On S=
at, Aug 16, 2014 at 12:05 PM, &#39;Paul E. Jones&#39; via WebFinger <span d=
ir=3D"ltr">&lt;<a href=3D"mailto:webfinger@googlegroups.com" target=3D"_bla=
nk">webfinger@googlegroups.com</a>&gt;</span> wrote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">




<div>
<div>Will,</div>
<div>=C2=A0</div>
<div>Sorry for the slow response.=C2=A0 I&#39;ve been busy.</div>
<div>=C2=A0</div>
<div>Yes, folks=C2=A0do want to put more complex data into JRD as=C2=A0oppo=
sed to linking, including objects or arrays.=C2=A0 I can see how this can b=
e abused, but then I can also see an argument for not linking to data that =
could be trivially represented inside the JRD itself.</div>


<div>=C2=A0</div>
<div><span>
<div>Unfortunately, I do not have details of the specific use cases.=C2=A0 =
</div></span></div></div></blockquote><div><br></div><div>as a rule, I thin=
k suggestions for major changes to spec should always be accompanied by con=
crete use cases that necessitate the change, ever more so when we&#39;re ta=
lking about <i>breaking</i> changes to a <i>finalized</i> spec. =C2=A0(in t=
his case Mike did provide an example later, so my comment is more to the fa=
ct that his was proposed in the first place without an actual use case in m=
ind)</div>

<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span><div>All I =
do know is that there people working on unrelated applications where they=
=C2=A0want to be able to=C2=A0 do things like this with WebFinger:</div>


<div>=C2=A0</div>
<div><font face=3D"Courier New">&quot;properties&quot; :<br>{<br>=C2=A0 &qu=
ot;</font><a href=3D"http://example.com/ns/foo" target=3D"_blank"><font fac=
e=3D"Courier New">http://example.com/ns/foo</font></a><font face=3D"Courier=
 New">&quot; :<br>

=C2=A0 {<br>=C2=A0=C2=A0=C2=A0 &quot;a&quot; : &quot;Hello&quot;,<br>=C2=A0=
=C2=A0=C2=A0 &quot;b&quot; : 32<br>=C2=A0 }<br>}</font></div></span></div>
<div>=C2=A0</div>
<div>Perhaps what might be worse is the possibility that people do this:</d=
iv>
<div>=C2=A0</div>
<div><font face=3D"Courier New">...<br>&quot;properties&quot; :<br>{<br>=C2=
=A0 &quot;</font><a href=3D"http://example.com/ns/foo" target=3D"_blank"><f=
ont face=3D"Courier New">http://example.com/ns/foo</font></a><font face=3D"=
Courier New">&quot; : &quot;{\&quot;a\&quot; : \&quot;Hello\&quot;, \&quot;=
b\&quot; : 32}&quot;<br>

}<br>...<br></font></div>
<div>When working on WebFinger, there was a desire to keep it as simple as =
possible.=C2=A0 However, I fully appreciate why some would want to do somet=
hing like this.=C2=A0 Sometimes, linking to external resources is &quot;ove=
rkill&quot; for the task at hand.=C2=A0 And, you&#39;re right that dealing =
with polymorphic data types can be a pain.=C2=A0 Then again, the JSON parse=
r deals with much of this automatically and the client is likely going to o=
nly be looking for known members, anyway.</div>

</div></blockquote><div><br></div><div>it depends very much on what the cod=
e is doing. =C2=A0If you&#39;re just relying on a JSON parser to parse an u=
nknown structure, it&#39;s unlikely anything too bad will happen. =C2=A0How=
ever, if you&#39;re specifically trying to unserialize the properties objec=
t into a string=3D&gt;string map, then you would likely get a parsing error=
.</div>

<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div>=C2=A0</div>
<div>So, I&#39;m not sure what to do here.=C2=A0 I&#39;m OK with making a c=
hange.=C2=A0 It bothers me that we might break any client code that assumes=
 all properties are strings.=C2=A0 </div></div></blockquote><div><br></div>=
<div>&quot;client code that assumes all properties are strings&quot; almost=
 sounds like they took a shortcut or something. =C2=A0This could also be sp=
elled &quot;client code that implemented the spec as written&quot;... <b>of=
 course</b> they may have assumed properties would be strings, that&#39;s w=
hat the spec said they would be (or null).</div>

<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>But, there is alw=
ays the option to add some other member named something other than &quot;pr=
operties&quot;.</div>


<div>=C2=A0</div>
<div>I take it you&#39;re not too keen on the idea, though.</div></div></bl=
ockquote><div><br></div><div>I think that option should certainly be explor=
ed at least. =C2=A0In fact, that&#39;s something that can already be done t=
oday, no? =C2=A0I don&#39;t think webfinger precludes including other JSON =
values, does it?</div>

<div><br></div><div>Certainly, making breaking changes does bother me, thou=
gh I still don&#39;t think there as been THAT much adoption in the wild yet=
, so I don&#39;t know how much would really be at risk of breaking. =C2=A0W=
hat is the process for making this kind of change anyway? =C2=A0Publish an =
entirely new RFC that updates 7033? =C2=A0Publish a rewritten spec that obs=
oletes 7033 altogether?</div>

<div><br></div><div><br></div><div>As a separate issue, and I don&#39;t rec=
all to what extent this was discuss before, but this also makes me worry a =
little about the size of the data people are looking to add to a webfinger =
document. =C2=A0At least with links, you can request just the links you car=
e about with the &quot;rel&quot; query parameter, but no such filtering mec=
hanism exists for properties. =C2=A0Plus I have no idea how well supported =
the &quot;rel&quot; parameter is in webfinger servers anyway (I know I don&=
#39;t support it on my personal site, but that&#39;s just me).</div>

<div><br></div><div>I know that nothing is stopping someone from throwing a=
 megabyte worth of data in a property string today, so this &quot;problem&q=
uot; (as much as it really is) already exists today. =C2=A0But I worry that=
 changing properties to accept arbitrary JSON data may entice people to sho=
ve larger amounts of data in a JRD than perhaps should be. =C2=A0Gzip helps=
 you to a degree, but I don&#39;t think JWT sets, for example, compress muc=
h.</div>

<div><br></div><div>Ultimately, whether properties are strings or JSON obje=
cts, it&#39;s up to the application to decide where they&#39;re going to lo=
ok for what data, and therefore what they instruct users to publish in thei=
r webfinger document. =C2=A0Perhaps what I&#39;m suggesting is just that if=
 new text does end up getting written to support JSON properties, then perh=
aps a note to implementors should be added to caution against adding too la=
rge of data (for some definition of &quot;large&quot;)?</div>

<div><br></div><div>-will</div><div><br></div><div><br></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div><span class=3D"HOEnZb"><font color=3D"#888888">
<div><span style=3D"color:rgb(80,0,80)">------ Original Message ------</spa=
n><br></div></font></span><div><div class=3D"h5">
<div>From: &quot;Will Norris&quot; &lt;<a href=3D"mailto:will@willnorris.co=
m" target=3D"_blank">will@willnorris.com</a>&gt;</div>
<div>To: <a href=3D"mailto:webfinger@googlegroups.com" target=3D"_blank">we=
bfinger@googlegroups.com</a></div>
<div>Cc: &quot;<a href=3D"mailto:webfinger@ietf.org" target=3D"_blank">webf=
inger@ietf.org</a>&quot; &lt;<a href=3D"mailto:webfinger@ietf.org" target=
=3D"_blank">webfinger@ietf.org</a>&gt;</div>
<div>Sent: 8/11/2014 11:39:19 PM</div>
<div>Subject: Re: [webfinger] Redefining &quot;properties&quot;</div>
<div>=C2=A0</div>
<div>
<blockquote cite=3D"http://CAJqAn3ysg30qZndNpUvk=3DkUK0ZCcQrW652E_6-0-+q_ce=
FPHAA@mail.gmail.com" type=3D"cite">
<div dir=3D"ltr">what are the actual use cases prompting this? =C2=A0If fol=
ks are trying to store more complicated data, why is it not just a linked r=
esource?=20
<div><br></div>
<div>Personally, as a client author, I&#39;ve always hated it when APIs hav=
e polymorphic data types like this.</div></div>
<div class=3D"gmail_extra"><br><br>
<div class=3D"gmail_quote">On Mon, Aug 11, 2014 at 7:29 PM, &#39;Paul E. Jo=
nes&#39; via WebFinger <span dir=3D"ltr">&lt;<a href=3D"mailto:webfinger@go=
oglegroups.com" target=3D"_blank">webfinger@googlegroups.com</a>&gt;</span>=
 wrote:<br>


<blockquote class=3D"gmail_quote" style=3D"PADDING-LEFT:1ex;MARGIN:0px 0px =
0px 0.8ex;BORDER-LEFT:#ccc 1px solid">
<div>
<div>Folks,</div>
<div>=C2=A0</div>
<div>I have been asked by multiple people for different purposes to see if =
it might be possible to redefine &quot;properties&quot; in the JSON Resourc=
e Descriptor.</div>
<div>=C2=A0</div>
<div>Per RFC 7033, &quot;properties&quot; is defined as an object that has =
zero or more name/value pairs whose values are strings or null.=C2=A0 The s=
uggestion is that the values should be any valid JSON type.=C2=A0 Thus, a p=
roperty might refer to a string (as is does now) or it might refer to an ob=
ject or array.</div>


<div>=C2=A0</div>
<div>This change would break any parsers strictly implement definition of &=
quot;properties&quot;.=C2=A0 So, there are=C2=A0two questions I want to pre=
sent to those who are interested:</div>
<div>=C2=A0</div>
<div>1) Would you be agreeable to change the current definition of &quot;pr=
operties&quot;=C2=A0to allow any value type?</div>
<div>2) If not, would be agreeable to introducing something like &quot;prop=
erties&quot; that essentially allows for the same and, if so, what should t=
his new object be named?</div>
<div>=C2=A0</div>
<div>Personally, as much as I don&#39;t like breaking backward-compatibilit=
y, I&#39;m favorable to redefining properties to accomodate what people wan=
t to do.=C2=A0 I&#39;m willing to work on an RFC 7033bis and/or a new RFC t=
o update the JRD specification, if folks are agreeable to either (1) or (2)=
.</div>

<span><font color=3D"#888888">
<div>=C2=A0</div>
<div>Paul</div>
<div>=C2=A0</div></font></span></div><span><font color=3D"#888888">
<p></p>-- <br><br>--- <br>You received this message because you are subscri=
bed to the Google Groups &quot;WebFinger&quot; group.<br>To unsubscribe fro=
m this group and stop receiving emails from it, send an email to <a href=3D=
"mailto:webfinger+unsubscribe@googlegroups.com" target=3D"_blank">webfinger=
+unsubscribe@googlegroups.com</a>.<br>

For more options, visit <a href=3D"https://groups.google.com/d/optout" targ=
et=3D"_blank">https://groups.google.com/d/optout</a>.<br></font></span></bl=
ockquote></div><br></div></blockquote></div></div></div></div><div class=3D=
"HOEnZb">

<div class=3D"h5">

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups &=
quot;WebFinger&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:webfinger+unsubscribe@googlegroups.com" target=3D=
"_blank">webfinger+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" targ=
et=3D"_blank">https://groups.google.com/d/optout</a>.<br>
</div></div></blockquote></div><br></div></div>

--001a1133a55c0f4edd0500df1544--


From nobody Mon Aug 18 17:10:18 2014
Return-Path: <ve7jtb@ve7jtb.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6C89D1A0B0A for <webfinger@ietfa.amsl.com>; Mon, 18 Aug 2014 17:10:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.2
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id URacptFmwuZE for <webfinger@ietfa.amsl.com>; Mon, 18 Aug 2014 17:10:14 -0700 (PDT)
Received: from mail-qg0-f46.google.com (mail-qg0-f46.google.com [209.85.192.46]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 226201A0B05 for <webfinger@ietf.org>; Mon, 18 Aug 2014 17:10:13 -0700 (PDT)
Received: by mail-qg0-f46.google.com with SMTP id z60so1815179qgd.19 for <webfinger@ietf.org>; Mon, 18 Aug 2014 17:10:13 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=Y6x6KmPM9QWsZ3GNx5jTYVI+U+Cu+b/yYsZuAqQwEsM=; b=bWBM4Dgdbva7GopyDtUdB1DCE835qhI5a1+dxi489kxZ4nlTKqY64yYZ41i5vS+tiH 8lTsj/+JG2RiqpE9sqfUVZN8u0IyZNgW2BboOQXGGcTGFzxkJxACWO2SRttfdjfxgfAg yIJJq3IosnZxK+xVam2p6oi6kaHez4Pq0W1Wo53ptx+PE7U+fzCNxk2TB9c7rqJn2Ih+ 5X7tCP+acf8jSAPXpnfLvVcNx4uDGqMAw6NbUARCD5dQtpBcvle8g2XbgHSo8wKWVapI 2d7qjTbC+PoBNn78EQMJiyHV8gEqr61Jhpvjpi6BaIaudtvI4jqM7FK1oT9avYY+CWqJ aPMw==
X-Gm-Message-State: ALoCoQlKT7ZVrOw0yrU4dS8zhKRN5SziPzbjfseC03ukN7PPNsPFpmki4s4+HAbwDTysnj4PXbZs
X-Received: by 10.224.74.1 with SMTP id s1mr62068680qaj.61.1408407013058; Mon, 18 Aug 2014 17:10:13 -0700 (PDT)
Received: from [192.168.8.103] ([201.188.7.206]) by mx.google.com with ESMTPSA id u14sm32230277qau.43.2014.08.18.17.10.10 for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 18 Aug 2014 17:10:12 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_C4511973-0865-4417-9C36-3DE97E0BAEB9"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: John Bradley <ve7jtb@ve7jtb.com>
In-Reply-To: <CAJqAn3zdfmqi_+fyBcxxQSVPLLVs9raHxQWaPqdYiX1=s6Uw9g@mail.gmail.com>
Date: Mon, 18 Aug 2014 20:10:13 -0400
Message-Id: <34087713-90B2-4B60-AA14-F5FF617C7C8C@ve7jtb.com>
References: <CAJqAn3ysg30qZndNpUvk=kUK0ZCcQrW652E_6-0-+q_ceFPHAA@mail.gmail.com> <em6aba2e86-7b0f-49d3-a041-49439c5f7df4@sydney> <CAJqAn3zdfmqi_+fyBcxxQSVPLLVs9raHxQWaPqdYiX1=s6Uw9g@mail.gmail.com>
To: webfinger@googlegroups.com
X-Mailer: Apple Mail (2.1878.6)
Archived-At: http://mailarchive.ietf.org/arch/msg/webfinger/J7G2BNiLw3a7m8Z5Nsxk5StAebk
Cc: "webfinger@ietf.org" <webfinger@ietf.org>
Subject: Re: [webfinger] Redefining "properties"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger/>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Aug 2014 00:10:17 -0000

--Apple-Mail=_C4511973-0865-4417-9C36-3DE97E0BAEB9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

I will also note that embedding a JWKS directly is not necessarily a =
good thing unless you are dynamically generating the JRD.

In Connect registration we originally only had jwks_uri to include them =
by reference.  Allowing a client to push a JWK inline came later.

JWKS can easily be referenced with a link from a JRD.  There may be =
other resins to allow complex types but I don=92t think JWKS inline is a =
compelling one.

John B.

On Aug 17, 2014, at 11:36 PM, Will Norris <will@willnorris.com> wrote:

> On Sat, Aug 16, 2014 at 12:05 PM, 'Paul E. Jones' via WebFinger =
<webfinger@googlegroups.com> wrote:
> Will,
> =20
> Sorry for the slow response.  I've been busy.
> =20
> Yes, folks do want to put more complex data into JRD as opposed to =
linking, including objects or arrays.  I can see how this can be abused, =
but then I can also see an argument for not linking to data that could =
be trivially represented inside the JRD itself.
> =20
> Unfortunately, I do not have details of the specific use cases.=20
>=20
> as a rule, I think suggestions for major changes to spec should always =
be accompanied by concrete use cases that necessitate the change, ever =
more so when we're talking aboutbreaking changes to a finalized spec.  =
(in this case Mike did provide an example later, so my comment is more =
to the fact that his was proposed in the first place without an actual =
use case in mind)
> =20
> All I do know is that there people working on unrelated applications =
where they want to be able to  do things like this with WebFinger:
> =20
> "properties" :
> {
>   "http://example.com/ns/foo" :
>   {
>     "a" : "Hello",
>     "b" : 32
>   }
> }
> =20
> Perhaps what might be worse is the possibility that people do this:
> =20
> ...
> "properties" :
> {
>   "http://example.com/ns/foo" : "{\"a\" : \"Hello\", \"b\" : 32}"
> }
> ...
> When working on WebFinger, there was a desire to keep it as simple as =
possible.  However, I fully appreciate why some would want to do =
something like this.  Sometimes, linking to external resources is =
"overkill" for the task at hand.  And, you're right that dealing with =
polymorphic data types can be a pain.  Then again, the JSON parser deals =
with much of this automatically and the client is likely going to only =
be looking for known members, anyway.
>=20
> it depends very much on what the code is doing.  If you're just =
relying on a JSON parser to parse an unknown structure, it's unlikely =
anything too bad will happen.  However, if you're specifically trying to =
unserialize the properties object into a string=3D>string map, then you =
would likely get a parsing error.
> =20
> =20
> So, I'm not sure what to do here.  I'm OK with making a change.  It =
bothers me that we might break any client code that assumes all =
properties are strings.=20
>=20
> "client code that assumes all properties are strings" almost sounds =
like they took a shortcut or something.  This could also be spelled =
"client code that implemented the spec as written"... of course they may =
have assumed properties would be strings, that's what the spec said they =
would be (or null).
> =20
> But, there is always the option to add some other member named =
something other than "properties".
> =20
> I take it you're not too keen on the idea, though.
>=20
> I think that option should certainly be explored at least.  In fact, =
that's something that can already be done today, no?  I don't think =
webfinger precludes including other JSON values, does it?
>=20
> Certainly, making breaking changes does bother me, though I still =
don't think there as been THAT much adoption in the wild yet, so I don't =
know how much would really be at risk of breaking.  What is the process =
for making this kind of change anyway?  Publish an entirely new RFC that =
updates 7033?  Publish a rewritten spec that obsoletes 7033 altogether?
>=20
>=20
> As a separate issue, and I don't recall to what extent this was =
discuss before, but this also makes me worry a little about the size of =
the data people are looking to add to a webfinger document.  At least =
with links, you can request just the links you care about with the "rel" =
query parameter, but no such filtering mechanism exists for properties.  =
Plus I have no idea how well supported the "rel" parameter is in =
webfinger servers anyway (I know I don't support it on my personal site, =
but that's just me).
>=20
> I know that nothing is stopping someone from throwing a megabyte worth =
of data in a property string today, so this "problem" (as much as it =
really is) already exists today.  But I worry that changing properties =
to accept arbitrary JSON data may entice people to shove larger amounts =
of data in a JRD than perhaps should be.  Gzip helps you to a degree, =
but I don't think JWT sets, for example, compress much.
>=20
> Ultimately, whether properties are strings or JSON objects, it's up to =
the application to decide where they're going to look for what data, and =
therefore what they instruct users to publish in their webfinger =
document.  Perhaps what I'm suggesting is just that if new text does end =
up getting written to support JSON properties, then perhaps a note to =
implementors should be added to caution against adding too large of data =
(for some definition of "large")?
>=20
> -will
>=20
>=20
> ------ Original Message ------
> From: "Will Norris" <will@willnorris.com>
> To: webfinger@googlegroups.com
> Cc: "webfinger@ietf.org" <webfinger@ietf.org>
> Sent: 8/11/2014 11:39:19 PM
> Subject: Re: [webfinger] Redefining "properties"
> =20
>> what are the actual use cases prompting this?  If folks are trying to =
store more complicated data, why is it not just a linked resource?
>>=20
>> Personally, as a client author, I've always hated it when APIs have =
polymorphic data types like this.
>>=20
>>=20
>> On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones' via WebFinger =
<webfinger@googlegroups.com> wrote:
>> Folks,
>> =20
>> I have been asked by multiple people for different purposes to see if =
it might be possible to redefine "properties" in the JSON Resource =
Descriptor.
>> =20
>> Per RFC 7033, "properties" is defined as an object that has zero or =
more name/value pairs whose values are strings or null.  The suggestion =
is that the values should be any valid JSON type.  Thus, a property =
might refer to a string (as is does now) or it might refer to an object =
or array.
>> =20
>> This change would break any parsers strictly implement definition of =
"properties".  So, there are two questions I want to present to those =
who are interested:
>> =20
>> 1) Would you be agreeable to change the current definition of =
"properties" to allow any value type?
>> 2) If not, would be agreeable to introducing something like =
"properties" that essentially allows for the same and, if so, what =
should this new object be named?
>> =20
>> Personally, as much as I don't like breaking backward-compatibility, =
I'm favorable to redefining properties to accomodate what people want to =
do.  I'm willing to work on an RFC 7033bis and/or a new RFC to update =
the JRD specification, if folks are agreeable to either (1) or (2).
>> =20
>> Paul
>> =20
>>=20
>> --=20
>>=20
>> ---=20
>> You received this message because you are subscribed to the Google =
Groups "WebFinger" group.
>> To unsubscribe from this group and stop receiving emails from it, =
send an email to webfinger+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>=20
>=20
>=20
> --=20
>=20
> ---=20
> You received this message because you are subscribed to the Google =
Groups "WebFinger" group.
> To unsubscribe from this group and stop receiving emails from it, send =
an email to webfinger+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>=20
>=20
> --=20
>=20
> ---=20
> You received this message because you are subscribed to the Google =
Groups "WebFinger" group.
> To unsubscribe from this group and stop receiving emails from it, send =
an email to webfinger+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.


--Apple-Mail=_C4511973-0865-4417-9C36-3DE97E0BAEB9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I will =
also note that embedding a JWKS directly is not necessarily a good thing =
unless you are dynamically generating the JRD.<div><br></div><div>In =
Connect registration we originally only had jwks_uri to include them by =
reference. &nbsp;Allowing a client to push a JWK inline came =
later.</div><div><br></div><div>JWKS can easily be referenced with a =
link from a JRD. &nbsp;There may be other resins to allow complex types =
but I don=92t think JWKS inline is a compelling =
one.</div><div><br></div><div>John B.</div><div><br><div><div>On Aug 17, =
2014, at 11:36 PM, Will Norris &lt;<a =
href=3D"mailto:will@willnorris.com">will@willnorris.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div =
dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On =
Sat, Aug 16, 2014 at 12:05 PM, 'Paul E. Jones' via WebFinger<span =
class=3D"Apple-converted-space">&nbsp;</span><span dir=3D"ltr">&lt;<a =
href=3D"mailto:webfinger@googlegroups.com" =
target=3D"_blank">webfinger@googlegroups.com</a>&gt;</span><span =
class=3D"Apple-converted-space">&nbsp;</span>wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: =
1ex;"><div>Will,</div><div>&nbsp;</div><div>Sorry for the slow =
response.&nbsp; I've been busy.</div><div>&nbsp;</div><div>Yes, =
folks&nbsp;do want to put more complex data into JRD as&nbsp;opposed to =
linking, including objects or arrays.&nbsp; I can see how this can be =
abused, but then I can also see an argument for not linking to data that =
could be trivially represented inside the JRD =
itself.</div><div>&nbsp;</div><div><span>Unfortunately, I do not have =
details of the specific use =
cases.&nbsp;</span></div></blockquote><div><br></div><div>as a rule, I =
think suggestions for major changes to spec should always be accompanied =
by concrete use cases that necessitate the change, ever more so when =
we're talking about<i>breaking</i><span =
class=3D"Apple-converted-space">&nbsp;</span>changes to a<span =
class=3D"Apple-converted-space">&nbsp;</span><i>finalized</i><span =
class=3D"Apple-converted-space">&nbsp;</span>spec. &nbsp;(in this case =
Mike did provide an example later, so my comment is more to the fact =
that his was proposed in the first place without an actual use case in =
mind)</div><div>&nbsp;</div><blockquote class=3D"gmail_quote" =
style=3D"margin: 0px 0px 0px 0.8ex; border-left-width: 1px; =
border-left-color: rgb(204, 204, 204); border-left-style: solid; =
padding-left: 1ex;"><div><span><div>All I do know is that there people =
working on unrelated applications where they&nbsp;want to be able =
to&nbsp; do things like this with =
WebFinger:</div><div>&nbsp;</div><div><font face=3D"Courier =
New">"properties" :<br>{<br>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>"</font><a =
href=3D"http://example.com/ns/foo" target=3D"_blank"><font face=3D"Courier=
 New">http://example.com/ns/foo</font></a><font face=3D"Courier New">" =
:<br>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>{<br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>"a" : =
"Hello",<br>&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>"b" : 32<br>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>}<br>}</font></div></span></d=
iv><div>&nbsp;</div><div>Perhaps what might be worse is the possibility =
that people do this:</div><div>&nbsp;</div><div><font face=3D"Courier =
New">...<br>"properties" :<br>{<br>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>"</font><a =
href=3D"http://example.com/ns/foo" target=3D"_blank"><font face=3D"Courier=
 New">http://example.com/ns/foo</font></a><font face=3D"Courier New">" : =
"{\"a\" : \"Hello\", \"b\" : 32}"<br>}<br>...<br></font></div><div>When =
working on WebFinger, there was a desire to keep it as simple as =
possible.&nbsp; However, I fully appreciate why some would want to do =
something like this.&nbsp; Sometimes, linking to external resources is =
"overkill" for the task at hand.&nbsp; And, you're right that dealing =
with polymorphic data types can be a pain.&nbsp; Then again, the JSON =
parser deals with much of this automatically and the client is likely =
going to only be looking for known members, =
anyway.</div></blockquote><div><br></div><div>it depends very much on =
what the code is doing. &nbsp;If you're just relying on a JSON parser to =
parse an unknown structure, it's unlikely anything too bad will happen. =
&nbsp;However, if you're specifically trying to unserialize the =
properties object into a string=3D&gt;string map, then you would likely =
get a parsing error.</div><div>&nbsp;</div><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;"><div>&nbsp;</div><div>So, =
I'm not sure what to do here.&nbsp; I'm OK with making a change.&nbsp; =
It bothers me that we might break any client code that assumes all =
properties are =
strings.&nbsp;</div></blockquote><div><br></div><div>"client code that =
assumes all properties are strings" almost sounds like they took a =
shortcut or something. &nbsp;This could also be spelled "client code =
that implemented the spec as written"...<span =
class=3D"Apple-converted-space">&nbsp;</span><b>of course</b><span =
class=3D"Apple-converted-space">&nbsp;</span>they may have assumed =
properties would be strings, that's what the spec said they would be (or =
null).</div><div>&nbsp;</div><blockquote class=3D"gmail_quote" =
style=3D"margin: 0px 0px 0px 0.8ex; border-left-width: 1px; =
border-left-color: rgb(204, 204, 204); border-left-style: solid; =
padding-left: 1ex;"><div>But, there is always the option to add some =
other member named something other than =
"properties".</div><div>&nbsp;</div><div>I take it you're not too keen =
on the idea, though.</div></blockquote><div><br></div><div>I think that =
option should certainly be explored at least. &nbsp;In fact, that's =
something that can already be done today, no? &nbsp;I don't think =
webfinger precludes including other JSON values, does =
it?</div><div><br></div><div>Certainly, making breaking changes does =
bother me, though I still don't think there as been THAT much adoption =
in the wild yet, so I don't know how much would really be at risk of =
breaking. &nbsp;What is the process for making this kind of change =
anyway? &nbsp;Publish an entirely new RFC that updates 7033? =
&nbsp;Publish a rewritten spec that obsoletes 7033 =
altogether?</div><div><br></div><div><br></div><div>As a separate issue, =
and I don't recall to what extent this was discuss before, but this also =
makes me worry a little about the size of the data people are looking to =
add to a webfinger document. &nbsp;At least with links, you can request =
just the links you care about with the "rel" query parameter, but no =
such filtering mechanism exists for properties. &nbsp;Plus I have no =
idea how well supported the "rel" parameter is in webfinger servers =
anyway (I know I don't support it on my personal site, but that's just =
me).</div><div><br></div><div>I know that nothing is stopping someone =
from throwing a megabyte worth of data in a property string today, so =
this "problem" (as much as it really is) already exists today. &nbsp;But =
I worry that changing properties to accept arbitrary JSON data may =
entice people to shove larger amounts of data in a JRD than perhaps =
should be. &nbsp;Gzip helps you to a degree, but I don't think JWT sets, =
for example, compress much.</div><div><br></div><div>Ultimately, whether =
properties are strings or JSON objects, it's up to the application to =
decide where they're going to look for what data, and therefore what =
they instruct users to publish in their webfinger document. =
&nbsp;Perhaps what I'm suggesting is just that if new text does end up =
getting written to support JSON properties, then perhaps a note to =
implementors should be added to caution against adding too large of data =
(for some definition of =
"large")?</div><div><br></div><div>-will</div><div><br></div><div><br></di=
v><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex;"><div><span =
class=3D"HOEnZb"><font color=3D"#888888"><span style=3D"color: rgb(80, =
0, 80);">------ Original Message =
------</span><br></font></span><div><div class=3D"h5"><div>From: "Will =
Norris" &lt;<a href=3D"mailto:will@willnorris.com" =
target=3D"_blank">will@willnorris.com</a>&gt;</div><div>To:<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:webfinger@googlegroups.com" =
target=3D"_blank">webfinger@googlegroups.com</a></div><div>Cc: "<a =
href=3D"mailto:webfinger@ietf.org" =
target=3D"_blank">webfinger@ietf.org</a>" &lt;<a =
href=3D"mailto:webfinger@ietf.org" =
target=3D"_blank">webfinger@ietf.org</a>&gt;</div><div>Sent: 8/11/2014 =
11:39:19 PM</div><div>Subject: Re: [webfinger] Redefining =
"properties"</div><div>&nbsp;</div><div><blockquote =
cite=3D"http://CAJqAn3ysg30qZndNpUvk=3DkUK0ZCcQrW652E_6-0-+q_ceFPHAA@mail.=
gmail.com/" type=3D"cite"><div dir=3D"ltr">what are the actual use cases =
prompting this? &nbsp;If folks are trying to store more complicated =
data, why is it not just a linked =
resource?<div><br></div><div>Personally, as a client author, I've always =
hated it when APIs have polymorphic data types like =
this.</div></div><div class=3D"gmail_extra"><br><br><div =
class=3D"gmail_quote">On Mon, Aug 11, 2014 at 7:29 PM, 'Paul E. Jones' =
via WebFinger<span class=3D"Apple-converted-space">&nbsp;</span><span =
dir=3D"ltr">&lt;<a href=3D"mailto:webfinger@googlegroups.com" =
target=3D"_blank">webfinger@googlegroups.com</a>&gt;</span><span =
class=3D"Apple-converted-space">&nbsp;</span>wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"padding-left: 1ex; margin: 0px 0px 0px =
0.8ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; =
border-left-style: solid;"><div><div>Folks,</div><div>&nbsp;</div><div>I =
have been asked by multiple people for different purposes to see if it =
might be possible to redefine "properties" in the JSON Resource =
Descriptor.</div><div>&nbsp;</div><div>Per RFC 7033, "properties" is =
defined as an object that has zero or more name/value pairs whose values =
are strings or null.&nbsp; The suggestion is that the values should be =
any valid JSON type.&nbsp; Thus, a property might refer to a string (as =
is does now) or it might refer to an object or =
array.</div><div>&nbsp;</div><div>This change would break any parsers =
strictly implement definition of "properties".&nbsp; So, there =
are&nbsp;two questions I want to present to those who are =
interested:</div><div>&nbsp;</div><div>1) Would you be agreeable to =
change the current definition of "properties"&nbsp;to allow any value =
type?</div><div>2) If not, would be agreeable to introducing something =
like "properties" that essentially allows for the same and, if so, what =
should this new object be named?</div><div>&nbsp;</div><div>Personally, =
as much as I don't like breaking backward-compatibility, I'm favorable =
to redefining properties to accomodate what people want to do.&nbsp; I'm =
willing to work on an RFC 7033bis and/or a new RFC to update the JRD =
specification, if folks are agreeable to either (1) or =
(2).</div><span><font =
color=3D"#888888"><div>&nbsp;</div><div>Paul</div><div>&nbsp;</div></font>=
</span></div><span><font color=3D"#888888"><div><br =
class=3D"webkit-block-placeholder"></div>--<span =
class=3D"Apple-converted-space">&nbsp;</span><br><br>---<span =
class=3D"Apple-converted-space">&nbsp;</span><br>You received this =
message because you are subscribed to the Google Groups "WebFinger" =
group.<br>To unsubscribe from this group and stop receiving emails from =
it, send an email to<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:webfinger+unsubscribe@googlegroups.com" =
target=3D"_blank">webfinger+unsubscribe@googlegroups.com</a>.<br>For =
more options, visit<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"https://groups.google.com/d/optout" =
target=3D"_blank">https://groups.google.com/d/optout</a>.<br></font></span=
></blockquote></div><br></div></blockquote></div></div></div></div><div =
class=3D"HOEnZb"><div class=3D"h5"><div><br =
class=3D"webkit-block-placeholder"></div>--<span =
class=3D"Apple-converted-space">&nbsp;</span><br><br>---<span =
class=3D"Apple-converted-space">&nbsp;</span><br>You received this =
message because you are subscribed to the Google Groups "WebFinger" =
group.<br>To unsubscribe from this group and stop receiving emails from =
it, send an email to<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:webfinger+unsubscribe@googlegroups.com" =
target=3D"_blank">webfinger+unsubscribe@googlegroups.com</a>.<br>For =
more options, visit<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"https://groups.google.com/d/optout" =
target=3D"_blank">https://groups.google.com/d/optout</a>.<br></div></div><=
/blockquote></div><br></div></div><div><br =
class=3D"webkit-block-placeholder"></div>--<span =
class=3D"Apple-converted-space">&nbsp;</span><br><br>---<span =
class=3D"Apple-converted-space">&nbsp;</span><br>You received this =
message because you are subscribed to the Google Groups "WebFinger" =
group.<br>To unsubscribe from this group and stop receiving emails from =
it, send an email to<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:webfinger+unsubscribe@googlegroups.com">webfinger+unsubscri=
be@googlegroups.com</a>.<br>For more options, visit<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"https://groups.google.com/d/optout">https://groups.google.com/d/op=
tout</a>.</div></blockquote></div><br></div></body></html>=

--Apple-Mail=_C4511973-0865-4417-9C36-3DE97E0BAEB9--

