Sharing is Caring.
2 types of sharing. Everyone, not everyone.
Capabilities.
Having a reference to the thing means you can access the thing.
Different types of references for different permissions. (Read vs Read+Write vs Write-Only)
github gists.
Private URLs are "secure" by virtue of being unguessable.
A read capability is implied by possession of the private URL. This works fine until you give it to one person… then they can give it to everyone.
A capability consists of 2 parts.
What about personalized capabilities.
Now 3 parts:
Introducing the share capability.
Derive new read/write capabilities to give to other people.
Derived cap includes source information.
Bob gives Alice a share capability. Alice gives Carol a read capability.
Bob didn't want Carol to have access. Bob can revoke Carol's cap, or revoke Alice's share cap which revokes all derived caps.