code: func (s *persistentStorage) lookup(c context.Context, identity *ProjectIdentity) (*ProjectIdentity, error) {
  	logging.Debugf(c, "lookup project scoped identity %v", identity)
  	tmp := *identity
  	if err := ds.Get(c, &tmp); err != nil {
  		switch {
  		case err == ds.ErrNoSuchEntity:
  			return nil, ErrNotFound
  		case err != nil:
  			return nil, transient.Tag.Apply(err)
  		}
  	}
  	return &tmp, nil
  }
docs: // lookup reads an identity from the storage based on what fields are set in the identity struct.