PlaidWeb / Publ

Flexible publishing system for the web
http://publ.beesbuzz.biz/
MIT License
40 stars 4 forks source link

Support some sort of user-initiated automatic migration of access #499

Closed SoniEx2 closed 1 year ago

SoniEx2 commented 1 year ago

Expected Behavior

We'd like to be able to easily (auto)migrate access to another account.

Current Behavior

We can just access it with the new account and wait for the admin.

Possible Solution

Uh are there any indieweb migration protocols yet? Probably not...

Context

Twitter is uh. Well yeah.

originally posted on the wrong repo sorry https://github.com/PlaidWeb/publ-site/issues/29

fluffy-critter commented 1 year ago

I'd be hesitant to add any functionality to have a user-initiated access migration, because that involves writing out a configuration file which then needs to be checked in, and Publ tries to remain content-management-mechanism agnostic. For example, what happens if the account gets migrated from one instance from a load-balanced fleet of deployments? Many of these systems only support read-only deployment from a git repository.

I'm also concerned about how things would work in terms of someone's account getting hacked and a subsequent loss of audit trail and so on.

Do you have a proposal for how this would work from both a UX and a protocol standpoint? Like, I can maybe envision the idea of someone signing on through one identity, and then there being a function to "add identity" which could automatically set up the other account as inheriting the first identity's permissions (which is supported by the Publ permissions scheme), and then there being some sort of configurable hook for how to actually commit the configuration change as appropriate. But this also feels like it would be better suited as a custom application route within the site's configuration, rather than something baked into Publ.

For a vague analogy, Publ itself doesn't have a built-in "access request" page, there's just a generic error handler which can then present the access request form as a template (the default is just a generic 401 403 page), and then on beesbuzz.biz I have a custom handler to actually send the request email.

Basically this is one of those places where Publ is really more of a framework for web-based publishing and not an end-to-end turnkey solution like Mastodon or the like.

Similarly, on novembeat.com there is a submission system that is very specific to novembeat and which I would not want to make a core part of Publ (but I do eventually want to improve Publ's API to make it easier to build that functionality, per #471); at some point I want to implement a Micropub protocol handler for Publ but that still would not be in Publ, it'd be something that's easy to compose in as an addon.

Eventually I'd like to provide more modules for this sort of thing, when there's demand for making these things easier to set up, but I don't feel that adding this specific functionality directly into Publ is the right choice.

SoniEx2 commented 1 year ago

ah, we see. yes, that makes sense.

hmm, we do like the idea of linking up accounts tho! that would probably still require manual intervention we guess but at least being able to say "hi this is also me" feels like it'd make sense, at least to us.

fluffy-critter commented 1 year ago

It's also worth noting that Publ doesn't really have any built-in Indieweb functionality aside from supporting IndieAuth (which comes from Authl) and TicketAuth (which is application-domain-specific but is also generic enough to live in Publ), and only for login, for that matter. It doesn't provide an IndieAuth identity endpoint (although, again, I want to eventually build one that's a composable module) and there's no requirement that the admin role be provided by any specific identity provider.

hmm, we do like the idea of linking up accounts tho! that would probably still require manual intervention we guess but at least being able to say "hi this is also me" feels like it'd make sense, at least to us.

That is absolutely possible and I've done that for some folks in my personal user.cfg. :) That's documented somewhat opaquely.

When it comes to personal auth on a personal website I definitely prefer it being handled in a personal way for what makes sense for the person running it. For example, I only have a couple of actual user groups that I actively maintain, namely friends and followers, and then occasionally certain people get their own access group so that I can much more easily exclude them from seeing specific entries.

SoniEx2 commented 1 year ago

ooh.

fair enough. so we guess we just need to figure out where to move at this point...