code: func (b *BoltBackend) Export() ([]backend.Item, error) {
  	var rootBuckets [][]string
  	err := b.db.View(func(tx *bolt.Tx) error {
  		tx.ForEach(func(name []byte, b *bolt.Bucket) error {
  			rootBuckets = append(rootBuckets, []string{string(name)})
  			return nil
  		})
  		return nil
  	})
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	var items []backend.Item
  	for _, bucket := range rootBuckets {
  		f := &fetcher{
  			bucket: bucket,
  		}
  
  		err := b.db.View(f.fetch)
  		if err != nil {
  			return nil, trace.Wrap(boltErr(err))
  		}
  
  		for _, p := range f.paths {
  			item, err := b.getItem(p.bucket, p.key)
  			if err != nil {
  				continue
  			}
  			items = append(items, *item)
  		}
  	}
  	return items, nil
  }
docs: // Export exports all items from the backend in new backend Items