code: def initialize():
      
      global __initialized
  
      if __initialized:
          return
  
      # Setup all the default base settings
      try:
          for data in DEFAULT_CONFIG_OPTIONS:
              nsobj = _get_config_namespace(data['prefix'], data['name'], sort_order=data['sort_order'])
              for opt in data['options']:
                  _register_default_option(nsobj, opt)
              db.session.add(nsobj)
  
          # Iterate over all of our plugins and setup their defaults
          for ns, info in CINQ_PLUGINS.items():
              if info['name'] == 'commands':
                  continue
  
              for entry_point in info['plugins']:
                  _cls = entry_point.load()
                  if hasattr(_cls, 'ns'):
                      ns_name = '{}: {}'.format(info['name'].capitalize(), _cls.name)
                      if not isinstance(_cls.options, abstractproperty):
                          nsobj = _get_config_namespace(_cls.ns, ns_name)
                          if _cls.options:
                              for opt in _cls.options:
                                  _register_default_option(nsobj, opt)
  
                          db.session.add(nsobj)
  
          # Create the default roles if they are missing and import any missing or updated templates,
          # if they havent been modified by the user
          _add_default_roles()
          _import_templates()
  
          db.session.commit()
          dbconfig.reload_data()
          __initialized = True
      except ProgrammingError as ex:
          if str(ex).find('1146') != -1:
              logging.getLogger('cloud_inquisitor').error(
                  'Missing required tables, please make sure you run `cloud-inquisitor db upgrade`'
              )
docs: Initialize the application configuration, adding any missing default configuration or roles
  
      Returns:
          `None`