docs: def fetch(self, is_dl_forced=False):
          """
          Here we connect to the coriell sftp server using private connection
          details.  They dump bi-weekly files with a timestamp in the filename.
          For each catalog, we ping the remote site and pull the most-recently
          updated file, renaming it to our local  latest.csv.
  
          Be sure to have pg user/password connection details in your conf.yaml
          file, like:
          dbauth : {"coriell" : {
          "user" : "<username>", "password" : "<password>",
          "host" : <host>, "private_key"=path/to/rsa_key}
          }
  
          :param is_dl_forced:
          :return:
  
          """
  
          host = config.get_config()['dbauth']['coriell']['host']
          key = config.get_config()['dbauth']['coriell']['private_key']
          user = config.get_config()['user']['coriell']
          passwd = config.get_config()['keys'][user]
  
          with pysftp.Connection(
                  host, username=user, password=passwd, private_key=key) as sftp:
              # check to make sure each file is in there
              # get the remote files
              remote_files = sftp.listdir_attr()
              files_by_repo = {}
              for attr in remote_files:
                  # for each catalog, get the most-recent filename
                  mch = re.match('(NIGMS|NIA|NHGRI|NINDS)', attr.filename)
                  if mch is not None and len(mch.groups()) > 0:
                      # there should just be one now
                      files_by_repo[mch.group(1)] = attr
              # sort each array in hash,
              # & get the name and time of the most-recent file for each catalog
              for rmt in self.files:
                  LOG.info("Checking on %s catalog file", rmt)
                  fname = self.files[rmt]['file']
                  remotef = files_by_repo[rmt]
                  target_name = '/'.join((self.rawdir, fname))
                  # check if the local file is out of date, if so, download.
                  # otherwise, skip.
                  # we rename (for simplicity) the original file
                  fstat = None
                  if os.path.exists(target_name):
                      fstat = os.stat(target_name)
                      LOG.info(
                          "Local file date: %s",
                          datetime.utcfromtimestamp(fstat[stat.ST_CTIME]))
                  if fstat is None or remotef.st_mtime > fstat[stat.ST_CTIME]:
                      if fstat is None:
                          LOG.info("File does not exist locally; downloading...")
                      else:
                          LOG.info(
                              "New version of %s catalog available; downloading...", rmt)
                      sftp.get(remotef.filename, target_name)
                      LOG.info(
                          "Fetched remote %s -> %s", remotef.filename, target_name)
                      fstat = os.stat(target_name)
                      filedate = datetime.utcfromtimestamp(
                          remotef.st_mtime).strftime("%Y-%m-%d")
                      LOG.info(
                          "New file date: %s",
                          datetime.utcfromtimestamp(fstat[stat.ST_CTIME]))
                  else:
                      LOG.info("File %s exists; using local copy", fname)
                      filedate = datetime.utcfromtimestamp(
                          fstat[stat.ST_CTIME]).strftime("%Y-%m-%d")
  
                  self.dataset.setFileAccessUrl(remotef.filename, True)
                  self.dataset.setVersion(filedate)
          return