Gaia/Contacts/Data Refactor: Difference between revisions

Jump to navigation Jump to search
Line 77: Line 77:
== Platform requirements ==
== Platform requirements ==
In order to do this we sill have some requirements that needs to be implemented in the platform.
In order to do this we sill have some requirements that needs to be implemented in the platform.
=== Expose mozContacts API content as a datastore ===
=== Expose mozContacts API content as a datastore ===
Because we want the MozContacts API content to be another Contact Provider as defined in this model, we need this data to be exposed through a datastore. This way the GCDS will be able to create pointers to the local contacts data owned by the MozContacts API and receive notifications about changes done in this data.
Because we want the MozContacts API content to be another Contact Provider as defined in this model, we need this data to be exposed through a datastore. This way the GCDS will be able to create pointers to the local contacts data owned by the MozContacts API and receive notifications about changes done in this data.
Line 83: Line 84:
=== System message when data changes in datastores (DONE) ===
=== System message when data changes in datastores (DONE) ===
In order to make the flow happen when changes are performed in the different datastores, we will need to be able to receive system messages if a DS changes in our app. {{bug|1014023}}
In order to make the flow happen when changes are performed in the different datastores, we will need to be able to receive system messages if a DS changes in our app. {{bug|1014023}}
=== DataStore change scheduler instead of datastore-change-* system message ===
=== Mechanism to acknowledge the reception and processing of the datastore change notification ===


=== System message when a specific datastore is added ===
=== System message when a specific datastore is added ===
In order to add a new Contact Provider datastore information and its corresponding contained data pointers to the list of providers stored in GCDS we need to be notified about new installed apps exposing a datastore named ''contacts''.
In order to add a new Contact Provider datastore information and its corresponding contained data pointers to the list of providers stored in GCDS we need to be notified about new installed apps exposing a datastore named ''contacts''.
Currently, we are able to request a list of all the datastores with an specific name from the GCDS app, but to do that the GCDS needs to be opened. And this only happens when a contact is changed in any of the already registered Contact Providers, which could happen immediately, next month or never. So we need a way to wake this app up to do the proper registration of the new Contact Provider.
Currently, we are able to request a list of all the datastores with an specific name from the GCDS app, but to do that the GCDS needs to be opened. And this only happens when a contact is changed in any of the already registered Contact Providers, which could happen immediately, next month or never. So we need a way to wake this app up to do the proper registration of the new Contact Provider. We can reuse the datastore change notification that can be fired as soon as we detect a new datastore named X.
 
TODO: file bug.
TODO: file bug.


=== Datastore permission model ===
=== DataStore permission model ===
Once the DataStore API is exposed to privileged apps, apart from what it is being proposed on {{bug|942641}}, we need a way for apps to define a minimum level of privileges an app should have to access a datastore. We need this granularity to avoid privileged apps to get access to the FB datastore which is supposed to be only for Gaia certified apps. Probably an addition to the manifest like:
 
  'datastores-owned': {
    'datastore-name': {
      'description': 'My certified only datastore',
      'access': 'readonly',
      'access-level': certified
    }
  }


== FAQ ==
== FAQ ==
Confirmed users
483

edits

Navigation menu