Skip to main content

What a grant holds

Ask for less

Request the narrowest grant your feature needs. A wishlist feature needs data: [.products] and sources: [.screenshots], not everything. Three things are separate categories on purpose:
  • .recognizedText: without it, results carry no excerpt of the text Pool read. Ask only if you show quotes to the person.
  • .placesVisited: the cities a person travelled to, for Trips. DataCategory.things does not include it.
  • .locations: exact places, visits and venues. See Places and visits.
  • .people: faces grouped into unnamed people, with the people index option. See People.
  • .confirmedPeople: reserved.

Checked on every call

The grant you pass is looked up again on every query, evidence read, change page and live update. The wording of a question can never widen it: asking for “places” under a products grant returns no places.

Revoking

  • Calls with a revoked grant fail at once with PoolError.grantRevoked, and live queries end with the same error.
  • When the last active grant is revoked, the whole index is deleted from the device.
  • When the person takes away photo access in Settings, the index is deleted too and coverage reports the lost permission.

Give people a way out

Show the grants your app holds somewhere in its settings, with the purpose and a button that calls revoke. It costs one screen and it is what makes people comfortable saying yes.