docs: def general_params(cls):
          """ Define all the possible config params """
  
          optional_bool_none = {
              "optional": True,
              "default": None,
              "type": bool
          }
          optional_string_none = {
              "optional": True,
              "default": None,
              "type": str
          }
          optional_int_none = {
              "optional": True,
              "default": None,
              "type": int
          }
          optional_empty_list = {
              "optional": True,
              "default": [],
              "type": list
          }
          no_optional_empty_string = {
              "optional": False,
              "default": "",
              "type": str
          }
          no_optional_true = {
              "optional": False,
              "default": True,
              "type": bool
          }
          optional_false = {
              "optional": True,
              "default": False,
              "type": bool
          }
  
          params = {}
  
          # GENERAL CONFIG
          params_general = {
              "general": {
                  "sleep": optional_int_none,  # we are not using it
                  "min_update_delay": {
                      "optional": True,
                      "default": 60,
                      "type": int
                  },
                  "kibana": {
                      "optional": True,
                      "default": "5",
                      "type": str
                  },
                  "update": {
                      "optional": False,
                      "default": False,
                      "type": bool
                  },
                  "short_name": {
                      "optional": False,
                      "default": "Short name",
                      "type": str
                  },
                  "debug": {
                      "optional": False,
                      "default": True,
                      "type": bool
                  },
                  "from_date": optional_string_none,  # per data source param now
                  "logs_dir": {
                      "optional": False,
                      "default": "logs",
                      "type": str
                  },
                  "bulk_size": {
                      "optional": True,
                      "default": 1000,
                      "type": int
                  },
                  "scroll_size": {
                      "optional": True,
                      "default": 100,
                      "type": int
                  }
  
              }
          }
          params_projects = {
              "projects": {
                  "projects_file": {
                      "optional": True,
                      "default": "projects.json",
                      "type": str
                  },
                  "projects_url": {
                      "optional": True,
                      "default": None,
                      "type": str
                  },
                  "load_eclipse": {
                      "optional": True,
                      "default": False,
                      "type": bool
                  }
              }
          }
  
          params_phases = {
              "phases": {
                  "collection": no_optional_true,
                  "enrichment": no_optional_true,
                  "identities": no_optional_true,
                  "panels": no_optional_true,
                  "track_items": optional_false,
                  "report": optional_false
              }
          }
  
          general_config_params = [params_general, params_projects, params_phases]
  
          for section_params in general_config_params:
              params.update(section_params)
  
          # Config provided by tasks
          params_collection = {
              "es_collection": {
                  "password": optional_string_none,
                  "user": optional_string_none,
                  "url": {
                      "optional": False,
                      "default": "http://172.17.0.1:9200",
                      "type": str
                  },
                  "arthur": optional_false,
                  "arthur_url": optional_string_none,
                  "redis_url": optional_string_none
              }
          }
  
          params_enrichment = {
              "es_enrichment": {
                  "url": {
                      "optional": False,
                      "default": "http://172.17.0.1:9200",
                      "type": str
                  },
                  "studies": optional_bool_none,
                  "autorefresh": {
                      "optional": True,
                      "default": True,
                      "type": bool
                  },
                  "user": optional_string_none,
                  "password": optional_string_none
              }
          }
  
          params_panels = {
              "panels": {
                  "kibiter_time_from": {
                      "optional": True,
                      "default": "now-90d",
                      "type": str
                  },
                  "kibiter_default_index": {
                      "optional": True,
                      "default": "git",
                      "type": str
                  }
              }
          }
  
          params_report = {
              "report": {
                  "start_date": {
                      "optional": False,
                      "default": "1970-01-01",
                      "type": str
                  },
                  "end_date": {
                      "optional": False,
                      "default": "2100-01-01",
                      "type": str
                  },
                  "interval": {
                      "optional": False,
                      "default": "quarter",
                      "type": str
                  },
                  "config_file": {
                      "optional": False,
                      "default": "report.cfg",
                      "type": str
                  },
                  "data_dir": {
                      "optional": False,
                      "default": "report_data",
                      "type": str
                  },
                  "filters": optional_empty_list,
                  "offset": optional_string_none
              }
          }
  
          params_sortinghat = {
              "sortinghat": {
                  "affiliate": {
                      "optional": False,
                      "default": "True",
                      "type": bool
                  },
                  "unaffiliated_group": {
                      "optional": False,
                      "default": "Unknown",
                      "type": str
                  },
                  "unify_method": {  # not used
                      "optional": True,
                      "default": "fast-matching",
                      "type": str
                  },
                  "matching": {
                      "optional": False,
                      "default": ["email"],
                      "type": list
                  },
                  "sleep_for": {
                      "optional": False,
                      "default": 3600,
                      "type": int
                  },
                  "database": {
                      "optional": False,
                      "default": "sortinghat_db",
                      "type": str
                  },
                  "host": {
                      "optional": False,
                      "default": "mariadb",
                      "type": str
                  },
                  "user": {
                      "optional": False,
                      "default": "root",
                      "type": str
                  },
                  "password": no_optional_empty_string,
                  "autoprofile": {
                      "optional": False,
                      "default": ["customer", "git", "github"],
                      "type": list
                  },
                  "load_orgs": {
                      "optional": True,
                      "default": False,
                      "type": bool,
                      "deprecated": "Orgs are loaded if defined always"
                  },
                  "identities_format": {
                      "optional": True,
                      "default": "sortinghat",
                      "type": str,
                      "doc": "Format of the identities data to be loaded"
                  },
                  "github_api_token": {
                      "optional": True,
                      "default": None,
                      "type": str,
                      "deprecated": "Use identities_api_token"
                  },
                  "strict_mapping": {
                      "optional": True,
                      "default": True,
                      "type": bool,
                      "doc": "rigorous check of values in identities matching " + \
                             "(i.e, well formed email addresses)"
                  },
                  "reset_on_load": {
                      "optional": True,
                      "default": False,
                      "type": bool,
                      "doc": "Unmerge and remove affiliations for all identities on load"
                  },
                  "orgs_file": optional_string_none,
                  "identities_file": optional_empty_list,
                  "identities_export_url": optional_string_none,
                  "identities_api_token": optional_string_none,
                  "bots_names": optional_empty_list,
                  "no_bots_names": optional_empty_list  # to clean bots in SH
              }
          }
  
          params_track_items = {
              "track_items": {
                  "project": {
                      "optional": False,
                      "default": "TrackProject",
                      "type": str
                  },
                  "upstream_raw_es_url": no_optional_empty_string,
                  "raw_index_gerrit": no_optional_empty_string,
                  "raw_index_git": no_optional_empty_string
              }
          }
  
          params_enrich_onion = {
              "enrich_onion": {
                  "in_index": {
                      "optional": False,
                      "default": None,
                      "type": str
                  },
                  "out_index": {
                      "optional": False,
                      "default": None,
                      "type": str
                  },
                  "contribs_field": {
                      "optional": True,
                      "default": "hash",
                      "type": str
                  },
                  "no_incremental": {
                      "optional": True,
                      "default": True,
                      "type": bool
                  }
              }
          }
  
          params_enrich_areas_of_code = {
              "enrich_areas_of_code": {
                  "in_index": {
                      "optional": False,
                      "default": None,
                      "type": str
                  },
                  "out_index": {
                      "optional": False,
                      "default": None,
                      "type": str
                  },
                  "no_incremental": {
                      "optional": True,
                      "default": True,
                      "type": bool
                  }
              }
          }
  
          params_enrich_demography = {
              "enrich_demography": {
                  "no_incremental": {
                      "optional": True,
                      "default": True,
                      "type": bool
                  }
              }
          }
  
          tasks_config_params = [params_collection, params_enrichment, params_panels,
                                 params_report, params_sortinghat, params_track_items,
                                 params_enrich_areas_of_code, params_enrich_demography,
                                 params_enrich_onion]
  
          for section_params in tasks_config_params:
              params.update(section_params)
  
          return params