Identity Management
This documentation and design are a WIP!
Identity management is one of the mechanisms that set BobaBoard apart from other social networks. In particular, rather than surfacing
user data
in its APIs, BobaBoard surfaces identity data
.
Benefits
Decoupling Identity
from the underlying User
allows for the following benefits:
Identities can be managed as independent entities.
By default, there is no world-visible connection between Identities
belonging to the same user account. These connections can, however, be revealed to other users through the Identity Reveal System.
Fine-grained data access
A user can maintain multiple, separate Identities
on a single account. Each of these Identities
can be used across different Realms
, Boards
or Threads
.
Users can independently decide which Realm
, Board
(?) or User
has access to each Identity
's activity and data. Users can also choose to
selectively reveal which identities belong to the same User
.
User identities can be optional
A user can choose not to reveal any identity data on Realms
and Boards
that support Anonymity
.
Identities can be shared across different users
While this feature isn't currently designed (or planned), the separation of identities theoretically allows the same Identity
to be associated
with separate accounts.
Creating Identities
This feature still in the design phase! More information will be available in the future.
When a friendship relationship is present, the current implementation reveals the user data
rather than the data of the Identity
associated with the User
. Fixing this should be trivial once the design is finalized.
Managing Identities
Anonymous Boards/Realms
When a Realm
or a Board
supports anonymity, BobaBoard randomly selects an Identity
to associate with the user's activity. You can read more
about anonymous identity selection in the BobaDex page.
Non-Anonymous Boards/Realms
This feature still in the design phase! More information will be available in the future.
- How does the user decide which identity to join the board/realm with? When do they make the decision?
- How does this work in Realms that allow both personal and multiple identities?
- Can a user join a Realm with multiple identities? Are there pitfalls in allowing them to do so?
- WARNING: Not allowing this possibility creates a danger of identity connection.
Example
Alice asks Bob to join their Realm with a specific identity. Bob has already joined the Realm with a different one, and is unable to do accept Alice's request. Alice can now infer that one of the identities already in the Realm belongs to Bob.
- WARNING: Not allowing this possibility creates a danger of identity connection.
Revealing Identities
This feature still in the design phase! More information will be available in the future.
While the codebase already accounts for this system, the exact mechanics governing identity reveal are not currently defined.
In the current setup, personal identity is revealed to users with a friends
relationship in the database. No mechanism to create a friendship
is available in the API.
Identity Data Management
- How do we decide which subset of the identity data is available to who?
- How do we allow users to not repeat the same information over and over for which identity?
This feature still in the design phase! More information will be available in the future.