-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is not yet a real time chat implementation, but it works. The chat creator is an actor that can create new chats. A chat is an entity that offers the affordance of creating a participation. A participation is like an invite link that's associated with a name. Anyone who has a participation URL can submit messages under that name. I've also changed some various things in the actor framework. It's still a work in progress and this is the first real feature that involves multiple participants and so on. The next thing to add is real-time updates which I'm still thinking about. I'll write about that in a note.
- Loading branch information
Showing
17 changed files
with
891 additions
and
373 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
This chat system reimagines how people can communicate online by building entirely on capability-based security principles instead of traditional user accounts. When someone creates a chat room, they receive a special URL that grants them the power to create "participations." Each participation manifests as a unique URL that enables sending messages under a specific name in that chat. | ||
|
||
The system works through simple URL sharing rather than accounts and passwords. To add someone to a chat, the creator generates a participation URL for a chosen name and shares it through any preferred channel. Anyone with that URL can then send messages appearing under that name, and if multiple people have the same URL, they'll all appear as that participant. This eliminates the need for user authentication while maintaining a clean way to manage who can speak and under what names. | ||
|
||
The design extends naturally to delegation of capabilities. Chat creators can generate delegate URLs that grant others limited power to create new participations. These delegate capabilities can be constrained in various ways - allowing someone to add only a specific number of participants, create temporary participations that expire, or add participants matching certain name patterns. All security and permissions are embedded in the URLs themselves, eliminating the need for complex role management systems. | ||
|
||
This approach aligns with REST architectural principles and capability-based security models, where possessing a URL grants specific, well-defined powers that can be delegated and constrained flexibly. The result is a simple yet powerful system where chat participation and management happen entirely through sharing and using capability URLs, making it easy to understand and use while maintaining fine-grained control over permissions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.