code: func (s *Store) CARoots(ws memdb.WatchSet) (uint64, structs.CARoots, error) {
  	tx := s.db.Txn(false)
  	defer tx.Abort()
  
  	// Get the index
  	idx := maxIndexTxn(tx, caRootTableName)
  
  	// Get all
  	iter, err := tx.Get(caRootTableName, "id")
  	if err != nil {
  		return 0, nil, fmt.Errorf("failed CA root lookup: %s", err)
  	}
  	ws.Add(iter.WatchCh())
  
  	var results structs.CARoots
  	for v := iter.Next(); v != nil; v = iter.Next() {
  		results = append(results, v.(*structs.CARoot))
  	}
  	return idx, results, nil
  }
docs: // CARoots returns the list of all CA roots.