code: func (fr *fileReader) handleMissingDashboardFiles(provisionedDashboardRefs map[string]*models.DashboardProvisioning, filesFoundOnDisk map[string]os.FileInfo) {
  	// find dashboards to delete since json file is missing
  	var dashboardToDelete []int64
  	for path, provisioningData := range provisionedDashboardRefs {
  		_, existsOnDisk := filesFoundOnDisk[path]
  		if !existsOnDisk {
  			dashboardToDelete = append(dashboardToDelete, provisioningData.DashboardId)
  		}
  	}
  
  	if fr.Cfg.DisableDeletion {
  		// If deletion is disabled for the provisioner we just remove provisioning metadata about the dashboard
  		// so afterwards the dashboard is considered unprovisioned.
  		for _, dashboardId := range dashboardToDelete {
  			fr.log.Debug("unprovisioning provisioned dashboard. missing on disk", "id", dashboardId)
  			err := fr.dashboardProvisioningService.UnprovisionDashboard(dashboardId)
  			if err != nil {
  				fr.log.Error("failed to unprovision dashboard", "dashboard_id", dashboardId, "error", err)
  			}
  		}
  	} else {
  		// delete dashboard that are missing json file
  		for _, dashboardId := range dashboardToDelete {
  			fr.log.Debug("deleting provisioned dashboard. missing on disk", "id", dashboardId)
  			err := fr.dashboardProvisioningService.DeleteProvisionedDashboard(dashboardId, fr.Cfg.OrgId)
  			if err != nil {
  				fr.log.Error("failed to delete dashboard", "id", dashboardId, "error", err)
  			}
  		}
  	}
  }
docs: // handleMissingDashboardFiles will unprovision or delete dashboards which are missing on disk.