[Atp] Re: Potential 'at' URI Solution
Robin Berjon <robin@berjon.com> Thu, 29 October 2026 09:56 UTC
Received: from fhigh-b2-smtp.messagingengine.com (fhigh-b2-smtp.messagingengine.com [202.12.124.153]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 1239D46 for <atp@ietf.org>; Thu, 29 Oct 2026 09:56:09 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=berjon.com header.s=fm1 header.b=DEWQTaI1; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=F4v4jh2T; spf=pass (mx.ietf.org: domain of robin@berjon.com designates 202.12.124.153 as permitted sender) smtp.mailfrom=robin@berjon.com; dmarc=none
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfhigh.stl.internal (Postfix) with ESMTP id A94F57A015E for <atp@ietf.org>; Thu, 29 Oct 2026 05:56:08 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Thu, 29 Oct 2026 05:56:08 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=berjon.com; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1793267768; x=1793354168; bh=FkMv3wLNqOxPKChxXfhu6NcfN9PANOuTi3PLY7/VYkw=; b= DEWQTaI1GktOe42Ak+P/0Ljoh1zhNWQrLYci8ZG/2QDKcxZEdffIiq6YbRTszAwX Ni7yct2UwS7qQOeNDk1nqbhS1a4CK/TiL3kqgM3N/PnitkX1CoFnhyIdBaFk/Fzm 1myiecIJP2Cr+0NRLdzUDt2qEx//amZjJekrjsmVKs8+Vr4kEDedmHnDE9wglunb qzRUnQT2rMe14F4d7o3lcAhR5KegiIBIod5ylCEiVvZrNKULu5q4kTzcYJPeJfho fc98YBx093uASfunSqGlYCjp2Ls+svSZF0KYTn7kma+kQ1pSXPrF++ry3N7l9chP +a6WHIb+SiXTQWlyICKNbw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; t=1793267768; x=1793354168; bh=F kMv3wLNqOxPKChxXfhu6NcfN9PANOuTi3PLY7/VYkw=; b=F4v4jh2Tqp9IULnof t35bHbuy5+K/95L0Ynb0ZqjWjk3WwEz/kRS/h73bGSH8QVQDLyrmmSTzvC9Y3YDj DRJu/WlxG9Vxkk9ILPrRMojWSbQwWbCd+TZl7+nxuKS6ZQTXK8SVUuNGGmu3jiMc eBicI6DESZ9c4S4mvLcng50GnwkHmP0y9VLO4Lokktpd12xYcdPkf0JbYzXNEfLN fgNGPRHxN7SF3RORa0LfS9RsgXaspdm8d+vpT4mCnDldq2pPQ6UqkD/JRawTkY/q g7TyEhmaLpfehpfRvoLIRHYcST8W6oqqm3n6UPvMi25T7OjzbRwQw/A6sWWfSHta eABGA==
X-DKIM2-Info: draft=ietf-dkim-dkim2-spec-08; repo=github.com/dkim2wg/interop; date=2026-10-28; sw=lmtpprox; action=sign d=berjon.com a=rsa-sha256;
DKIM2-Signature: i=1; m=1; t=1793267768; d=berjon.com; mf=PHJvYmluQGJlcmpvbi5jb20+; rt=PGF0cEBpZXRmLm9yZz4=; s=fm1:rsa-sha256:toPPZeKOvR+tX21muXwU62oUeW00y44xl3f9vYZKHpMwcJD M7g3FhcoR4dEWMKhuKPE5Sn+qXfWk0eLWcQnYJagCWdnjPVNE+0iT/LL9hic0WxB +5WjNluK2Wbs/7h1IexQpurrqf1Pgn4JvDKZj5NQBU+IeFREp3jr/JQrNLYzr1uY AYnnfwYnRdxGddSNF5tWvmXYnm4wXL4txptsxcMOEXqzT3QNHR1Y2CVDNElTzvdG AZfSPyFB5BNMO+9i3jw+ESSiG536ZHry0F/9+Vsm1MEXBnAsC92z48gdLonYIfq3 rQoheXi2Jf3IUTxf4PurjF02QR7RHwsTiCLvEvA==;
X-DKIM2-Info: draft=ietf-dkim-dkim2-spec-08; repo=github.com/dkim2wg/interop; date=2026-10-28; sw=lmtpprox; action=mi-m=1; hc=13; hn=content-language,content-transfer-encoding,content-type,date, feedback-id,from,in-reply-to,message-id,mime-version,references, subject,to,user-agent;
Message-Instance: m=1; h=sha256:xbDMzPE7xiE99kEOxEnHlGWlSWoR5SC6acp9lAbi+QA=:vhitELDfS4S/rXohOBiMHmY2eg9p+J3+uGQ8DmX/BfI=;
X-ME-Sender: <xms:OBjjan9CDZFGObS23XborfLMJwPuovKY4slaKBFq_Rpq9fAnu5_ThA> <xme:OBjjapsJC_TWMkav76kdtvXXSeZqJricDTOZ9FcWTLx6NVkwMl6WWqezjltuZyEnE zaGDcJ51XWP4V5uEltq0rFETi36sPe3dylnrS37tbj-y0fPkJg>
X-ME-Received: <xmr:OBjjaipPgUwBgvNpljTdr4dDnBlbCWwvhd9QV8EoBBpu73DYGS_bqPUUE0l8-2WX40ntLTD55ngVVOn_9XHiocDzg6bLYkFfKFUp>
X-ME-Proxy-Cause: dmFkZTETg/EDNx9OD0Xi1yJPQT3T+bfS08R3zs5gTKbtzURad4ZDjASrlMtkmR2JZpDmiC wdowMluxGD9pIgcqXPFyl6ynYsSZCaC5jS4NOPSVXL7+V9zuY36ygVFnoRFZlSmosOdR9K UnsHHEM8TGzJUkcJ6EXpUZyI5RpYnshbv4/+mQwmmy2HIu0yvfC1ObGuTOKvRlSaTMiDsZ xzE+dvtDr0cb8p8SA399Ekx7yr8wa7/ITJmmN+w/wi41uQNuzT1Hi/S5RQhSaww12WwaxS 6975ljSxtl06qhHMuPT4WGGlAXdaW0Z49clhPB7dzYxOjcY7tfB+WFWw0yMB+BKMvloMeA goazBrQq2sjhO9GvR9gEP/4tm/tndAoKag0z55aJWnvghcDblch8aGpFAXRreaO+uQBXy+ Dg/nwEjvoyHtbo+nMa7f37CbDT8uZNgoMHukmrzHRyPlv96jBiPL8f1DiCcZBt1j7wmP5X OpCTzKlhXjE1OP5cD9xetjonXSwyzxWil5AynM8FHXPufBybT6hKnqq5aQmIXNyz9AhB4/ AdxAmPInKujn/Xp7WVSYHuCejN6elZocsGTplwSoqmNH1p2El9Wa+G2VAA23TGCoI2Raz4 MPEXLIVKpyiVi9zN9cK/r2QHGhNI/LpffbeqY9XhD0HdeCLHeCvUMbzEK5JQ
X-ME-Proxy: <xmx:OBjjaum5wE4sI4_Tg99FlzMpl3rX00lEFmStxWjBrjLKkMxHtjw3TQ> <xmx:OBjjauz7qAlW6y08II03drzYO1Imo5JlTi2wQGOP3kyb8_rd9N8gYg> <xmx:OBjjauk2cXIHciJFXnd9k0bJcFC20bntLloGRsALqsg4e8t1gyb0mA> <xmx:OBjjavdp6vm1h77fcvONDgeA4liaHuqAQ2dQy4yXeJY2044CfmpO6A> <xmx:OBjjaloAlcvhjU07O8ju7z5ECyhPCSA4CfllEpNWDpbjNV07KvC8pXJz>
Feedback-ID: i38c44178:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 29 Oct 2026 05:56:07 -0400 (EDT)
Message-ID: <69ee2ba1-08ee-469a-86d4-d2ad5580eed6@berjon.com>
Date: Thu, 29 Oct 2026 10:56:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Bryan Newbold <bryan@blueskyweb.xyz>, ATP IETF Mailing List <atp@ietf.org>
References: <CABFYohhOuK3cXXdmRtTO=RKXRrrkHWUc33LikGUWajiE6J8g+g@mail.gmail.com>
Content-Language: en-GB, fr
From: Robin Berjon <robin@berjon.com>
In-Reply-To: <CABFYohhOuK3cXXdmRtTO=RKXRrrkHWUc33LikGUWajiE6J8g+g@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Spamd-Bar: ------------------------
Message-ID-Hash: JT5SENRCYF6XK6VS4RYPEQHZAPKQAWJF
X-Message-ID-Hash: JT5SENRCYF6XK6VS4RYPEQHZAPKQAWJF
X-MailFrom: robin@berjon.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Atp] Re: Potential 'at' URI Solution
List-Id: Authenticated Transfer <atp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/atp/Y63LN55ryexxe2oYQr4d2nCbqsM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/atp>
List-Help: <mailto:atp-request@ietf.org?subject=help>
List-Owner: <mailto:atp-owner@ietf.org>
List-Post: <mailto:atp@ietf.org>
List-Subscribe: <mailto:atp-join@ietf.org>
List-Unsubscribe: <mailto:atp-leave@ietf.org>
Hey Bryan, the primary downside I see with this proposal is that it no longer formally has the identity as the authority, despite that being conceptually the case. But there are, like, five people who even know what an authority is and so in pragmatic terms this is essentially an aesthetic bikeshedding concern. As far as I'm concerned, the requirements for this are: • It parses. • It contains the requisite information. And this meets both. I like clearly separating public from spaced; this seems like it could open the door to also flagging different kinds of spaces and perhaps at:local. I don't think that relative resolution is a requirement here. We don't have things like resolving blobs relative to other blobs from an AT location, for instance — that's what MASL is for. So I think this works! This is not a counterproposal but since you seem to have some longing for keeping at://, note that these options also work: #1 Space v public authority • at://did:plc:735r43lcgemuv2woqpvx3lso@public/ • at://did:plc:735r43lcgemuv2woqpvx3lso@space/ • at://robin.berjon.com@public/ • at://robin.berjon.com@space/ It's a little clunky to reassemble the identifier but *shrug*. #2 Special-case DIDs with their own authority • at://735r43lcgemuv2woqpvx3lso@plc/ • at://robin.berjon.com/ This drops the early public/space flag but it has the advantage that it keeps existing AT URLs that have a handle authority untouched. The semantics remain largely correct. If the authority is a DID method, then consult the username. (I never understood what the `did:` prefix was for anyway given that any interop only happens at the method level — it seems largely spurious?) On 28/10/2026 17:47, Bryan Newbold wrote: > I have a new 'at' URI scheme syntax/structure proposal that could be a > way forward: > > at:public/<account>/<collection>/<rkey> > at:public/did:plc:vwzwgnygau7ed7b7wt5ux7y2/ > app.bsky.feed.post/3k5nobkf2w72g <http://app.bsky.feed.post/3k5nobkf2w72g> > > As a reminder, the current 'at://<account>/...' syntax with double > slashes is not a valid IETF URI, nor a valid WHATWG URL. In this > proposal we lose the nice idiomatic prefix ('at://'), but keep the > account identifiers vebatim, and don't need any escaping or encoding. > The general shape is unchanged: a three-tuple of {account, type, key}. > > This prefix structure would generalize well to other URIs in the broader > atproto ecosystem. For example, design work is wrapping up on "atproto > spaces", a protocol extension for non-public data[0]. This is outside > the scope of this group's current charter, but assuming all goes well > with the current charter we expect to propose it in a future re-charter. > Spaces have a dual namespace structure, with two separate three-tuples, > and need distinguishable URIs. With feedback from the developer > ecosystem we have iterated on a couple different syntaxes (including a > new 'ats:' URI scheme), and currently settled on a '/space/' as the > first path prefix: > > at://<space-account>/space/<space-type>/<skey>/<repo-account>/ > <collection>/<rkey> > at://did:plc:735r43lcgemuv2woqpvx3lso/space/my.bulletin.board/self/ > did:plc:735r43lcgemuv2woqpvx3lso/my.bulletin.post/3mtiiz6ci6c2j <http:// > my.bulletin.post/3mtiiz6ci6c2j> > > This reuses the 'at:' scheme (which we like), but has all the same > syntax problems as the current public protocol references (aka, the > double-slash), and also has the '/space/' in the middle. Under the new > proposed syntax, these could be: > > at:space/<space-account>/<space-type>/<skey>/<repo-account>/ > <collection>/<rkey> > at:space/did:plc:735r43lcgemuv2woqpvx3lso/space/my.bulletin.board/ > self/did:plc:735r43lcgemuv2woqpvx3lso/my.bulletin.post/3mtiiz6ci6c2j > <http://my.bulletin.post/3mtiiz6ci6c2j> > > The use of 'public' for the prefix for regular atproto records could be > debated; maybe 'at:repo' would make sense. We would still expect the > 'at://' syntax to be supported as a mandatory "legacy" format for all > the billions of existing records containing strings in that format, but > we would be careful not to call them "URIs". > > We have a short time window in which we could adopt the 'at:space' > syntax for the atproto spaces beta deployment, which we expect to go > live soon after IETF 127 ("by the end of November"). That would sort of > hinge on expecting the general pattern to work out as the public data > URI syntax as well. It is impossible to come to a formal consensus on > this timeframe, but there is time to get feedback on this list and have > a discussion at IETF 127. If there is broad support this format, we will > likely use it in the spaces beta deployment. If not, we will likely go > ahead with the syntactically-invalid 'at://' format, and resolve that > problem at the same time as the public data references. > > Some questions for the list: > > - are there any concerns about this new proposed syntax being a valid > and well-formed IETF URI? > - how likely is this new syntax likely to be pass scrutiny at the IESG > and/or uri-review@ietf.org <mailto:uri-review@ietf.org> phase? > - are folks willing to let go of the nice 'at://' prefix? > - is it worth the disruption and friction of supporting two syntaxes > ("valid URI" and "legacy non-URI") indefinitely? > - are there any firm counter-proposals waiting in the wings? > - any strong aesthetic or conceptual objections to this new syntax? > > --bryan > > _______________________________________________ > Atp mailing list -- atp@ietf.org > To unsubscribe send an email to atp-leave@ietf.org -- Robin Berjon (he/him) https://berjon.com/ - social: https://robin.berjon.com/
- [Atp] Potential 'at' URI Solution Bryan Newbold
- [Atp] Re: Potential 'at' URI Solution Bryan Newbold
- [Atp] Re: Potential 'at' URI Solution Emelia S.
- [Atp] Re: Potential 'at' URI Solution Daniel Holmgren
- [Atp] Re: Potential 'at' URI Solution Rudy Fraser
- [Atp] Re: Potential 'at' URI Solution Emelia S.
- [Atp] Re: Potential 'at' URI Solution Bryan Newbold
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Martin J. Dürst
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Bumblefudge
- [Atp] Re: Potential 'at' URI Solution Scott Handley
- [Atp] Re: Potential 'at' URI Solution Meredith Espinosa
- [Atp] Re: Potential 'at' URI Solution Erin Shepherd
- [Atp] Re: Potential 'at' URI Solution Robin Berjon