code: func New(params legacy.Params) (*BoltBackend, error) {
  	// look at 'path' parameter, if it's missing use 'data_dir' (default):
  	path := params.GetString("path")
  	if len(path) == 0 {
  		path = params.GetString(teleport.DataDirParameterName)
  	}
  	// still nothing? return an error:
  	if path == "" {
  		return nil, trace.BadParameter("BoltDB backend: 'path' is not set")
  	}
  	if !utils.IsDir(path) {
  		return nil, trace.BadParameter("%v is not a valid directory", path)
  	}
  	path, err := filepath.Abs(filepath.Join(path, keysBoltFile))
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	db, err := bolt.Open(path, openFileMode, &bolt.Options{Timeout: openTimeout})
  	if err != nil {
  		if err == bolt.ErrTimeout {
  			return nil, trace.Errorf("Local storage is locked. Another instance is running? (%v)", path)
  		}
  		return nil, trace.Wrap(err)
  	}
  
  	// Wrap the backend in a input sanitizer and return it.
  	return &BoltBackend{
  		locks: make(map[string]time.Time),
  		clock: clockwork.NewRealClock(),
  		db:    db,
  	}, nil
  }
docs: // New initializes and returns a fully created BoltDB backend. It's
  // a properly implemented Backend.NewFunc, part of a backend API