Recommend object URL should 301 to AP resource
-
Wanted to start a convo with [@johnonolan@mastodon.xyz](https://community.nodebb.org/user/johnonolan%40mastodon.xyz) from Ghost and [@angus@socialhub.activitypub.rocks](https://community.nodebb.org/user/angus%40socialhub.activitypub.rocks) from Discourse about AP resource discovery. A common use case from fediverse users is to be linked out to a site, and attempt to "bring it in" to their local instance/app of choice. This is done by taking the browser URL and pasting it into their site/app's search bar, or equivalent. For example: * Ghost: https://activitypub.ghost.org/warp-factor-5-mr-sulu/ * Discourse: any forum topic For context, last night I discovered that Ghost's latest blog post didn't make it into NodeBB, due to a bug on my end. I attempted to resolve it via URL but there was no AP resource at that URL. I ended up having to query the instance actor (which I _happened to already know_), and looking at the outbox. To my knowledge there is **no way** to find a Discourse post or topic's AP resource ID without having a local Discourse account. Would it be possible for you to send back an `HTTP 301 Moved Permanently` (or similar) if the `Accepts` header contains one of the AP-related types? N.B. This probably has some overlap with [@evan@cosocial.ca](https://community.nodebb.org/user/evan%40cosocial.ca)'s [HTTP Discovery Task Force](https://swicg.github.io/activitypub-html-discovery/#url-as-input), a 308 is recommended there.
-
A ActivityPub shared this topic
-
@julian @johnonolan @angus @evan 301/308 aren’t cacheable/idempotent over the Accept header and are meant to permanently update old identifiers. consider 303 See Other for content negotiation purposes, or consider rel=alternate type=… Link headers otherwise.
-
@julian @johnonolan @angus there's a whole task force for this. You've commented on it. Why does this need to be discussed?
-
@julian @johnonolan @angus @evan 301/308 aren’t cacheable/idempotent over the Accept header and are meant to permanently update old identifiers. consider 303 See Other for content negotiation purposes, or consider rel=alternate type=… Link headers otherwise.
@trwnh @julian @johnonolan @angus there's a doc for this.
-
@julian @johnonolan @angus there's a whole task force for this. You've commented on it. Why does this need to be discussed?
[@evan@cosocial.ca](https://community.nodebb.org/user/evan%40cosocial.ca) this was to ask the mentioned parties for Ghost and Discourse to implement. I mentioned you to keep you in the loop because task forces achieve nothing without implementors doing the work. -
Object IDs should really be retrievable by http GET. See section 3.2 of https://www.w3.org/TR/activitypub
-
Object IDs should really be retrievable by http GET. See section 3.2 of https://www.w3.org/TR/activitypub[@rimu@piefed.social](https://community.nodebb.org/user/rimu%40piefed.social) yes, that's right. I'm specifically referring to object _urls_ though, which tend to be more user facing.
-
@julian @johnonolan @angus @evan
Why 301 and not 302?
I am using 302. Probably chose it because everyone else was using it. -
@julian @johnonolan @angus @evan
Why 301 and not 302?
I am using 302. Probably chose it because everyone else was using it.[@silverpill@mitra.social](https://community.nodebb.org/user/silverpill%40mitra.social) 302/307 is also fine by me. Probably safer from being accidentally cached and may be more appropriate in this situation. -
You could save yourself some hassle and make urls and IDs the same value. But you do you
-
-
[@johnonolan@mastodon.xyz](https://community.nodebb.org/user/johnonolan%40mastodon.xyz) A solution is only needed if the resource id is different from the URL (which in Ghost's case, is true). You don't _have_ to use a redirect. If your software is capable of doing it, you can serve the ActivityPub object directly from that route's controller; that's what NodeBB does.
-
@julian If you want to make an issue here about what you'd like to see I'll make sure the team sees it
GitHub - TryGhost/ActivityPub: A full-featured ActivityPub server for networked publishing with Ghost
A full-featured ActivityPub server for networked publishing with Ghost - TryGhost/ActivityPub
GitHub (github.com)
-
@julian If you want to make an issue here about what you'd like to see I'll make sure the team sees it
GitHub - TryGhost/ActivityPub: A full-featured ActivityPub server for networked publishing with Ghost
A full-featured ActivityPub server for networked publishing with Ghost - TryGhost/ActivityPub
GitHub (github.com)
@julian (Thank you for the ping btw, I appreciate the note - this wasn't on my radar)
-
@julian (Thank you for the ping btw, I appreciate the note - this wasn't on my radar)
[@johnonolan@mastodon.xyz](https://community.nodebb.org/user/johnonolan%40mastodon.xyz) no worries, and thanks! Will do.