Opened at 2013-07-02T13:39:04Z
Last modified at 2013-07-02T22:43:54Z
#2010 new enhancement
Implement shortcuts to caps
Reported by: | markberger | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | undecided |
Component: | code-frontend | Version: | 1.10.0 |
Keywords: | usability newurls introducer security aliases | Cc: | |
Launchpad Bug: |
Description
Most of the time users want to keep their caps secret, but there are those instances when you want to share caps with people easily (for example, Zooko serving his blog on tahoe). As previously discussed, the current URI and gateway URLs are long and ugly and this creates problems when sharing, especially with people who don't use tahoe (see ticket #882).
To solve this issue, we could implement cap 'shortcuts' that the user registers with the introducer and these shortcuts would act like tinyurls. Then users could have access to a cap with a simple keyword or phrase, which makes sharing over the grid a lot easier. If the user does not want to share their cap over the entire grid, but wants to access the cap easily, they could register the shortcut with just the client.
So in the example of Zooko's blog, Zooko could create a shortcut named 'home' which points to the readonly cap associated with the homepage of his blog. Then users would be able to access his blog via "testgrid.allmydata.org:3456/sc/home", which would forward them to the messy URLs tahoe already uses.
When the client registers with the introducer, it would receive a list of these shortcuts. Whenever the user creates a new shortcut they want to share over the grid, the introducer checks to make sure there are no conflicts and then registers the new shortcut with the introducer. When another user tries to use a shortcut that the client doesn't know about, the client would request a new version of the shortcut list and then appropriately succeed or fail depending on whether the list has that shortcut.
This doesn't solve all of the problems in #882, but I think it would be a good way to make sharing files over http a lot easier until the new caps are implemented. Also this would be a simple way to solve the problem outlined in ticket #958, where Zooko talks about redirection caps for his blog. If the user wants to use a different cap for their shortcut, they would just have to delete the shortcut and create a new shortcut with the same name and a different cap. That way when Zooko switches over to the new cap design, his URL will still be good.
This solution isn't perfect. If the user bookmarks the long and messy URL instead of the shortcut, redirection isn't accomplished. Also I'm not sure if this solution would work nicely once the introducer become decentralized. Furthermore this could be an over engineered solution (why not just use tinyurls instead of creating our own?) but I thought it was an interesting idea that I should at least share with the tahoe community.
Change History (6)
comment:1 Changed at 2013-07-02T13:52:26Z by gdt
comment:2 Changed at 2013-07-02T16:29:55Z by markberger
- I agree that the feature should be at the protocol level. That was my original idea but I forgot to explicitly state that.
- When I was talking about sharing, I had the idea of sharing via a publicly accessible gateway, similarly to how the tiddly wiki works. If a user is running their own client, shortcuts should be able to be used with the WUI, but I agree that it is not the way to share files.
- You're right in that there are serious issues with the flat namespace. If accounting were implemented a user could have their own namespace for their respective shortcuts.
comment:3 Changed at 2013-07-02T19:23:17Z by zooko
markberger: how would this be better than a tinyurl service, such as http://tinyurl.com?
comment:4 Changed at 2013-07-02T19:29:07Z by gdt
We should also think about security properties, and MITM attacks on expansion of shortcuts. That's an obvious bug with tinyurl.com. The other obvious bug is disclosing shortcut data to third parties, when it should perhaps be grid-private.
comment:5 Changed at 2013-07-02T22:43:31Z by daira
- Component changed from code to code-frontend
- Keywords security added
comment:6 Changed at 2013-07-02T22:43:54Z by daira
- Keywords aliases added
This is a major architectural change, to add a new namespace. Before it happens, I think it needs a a complete written architectural design and protocol explanation. A few concerns: