inrupt / solid-react-sdk

Solid React SDK by Inrupt
MIT License
81 stars 5 forks source link

User Preferences #11

Open justinwb opened 5 years ago

justinwb commented 5 years ago

The applications most of us use today manage user application preferences. In Solid, user preferences are a bit different (and more powerful), because Solid decouples an application from the data model and corresponding entities ("things") that it depends on. As a result, while a user may manage some preferences that are very specific to the application they're using, they are just as likely to manage preferences associated with the "thing". We will provide the facilities to manage this cleanly.

justinwb commented 5 years ago

There are five types of preferences that we need to account for:

  1. Global - Applies across the board, not specific to any type of data or application
  2. Application - Applies only to a specific application
  3. Type - Applies to things of a given type, regardless of the application
  4. Type Instance - Applies to a specific instance of a thing, regardless of the application
  5. Application Instance - Applies to a specific instance of a thing, specific to an application

As we get into application and type specific preferences, we cross into the realm of Data Discovery, as our approach to these will be related. Consequently, we aim to start with global preferences, then figure out application and type specific preferences as part of the work we're doing on Data Discovery.

Complicating matters is the holdup we currently have in writing to the pod (detailed in #9). Until this is resolved, we don't want to corrupt anyone's preference files. We'll start with cookie-based support first, but will expand that as soon as we're able to safely write to the pod again.

To recap: