MySQL Shell plugins can be used to contain functions that are registered as MySQL Shell reports (see Section 10.1, “Reporting with MySQL Shell”), and functions that are members of extension objects that are made available by user-defined MySQL Shell global objects (see Section 10.2, “Adding Extension Objects to MySQL Shell”). A single plugin can contain and register more than one function, and can contain a mix of reports and members of extension objects. Functions that are registered as reports or members of extension objects by a MySQL Shell plugin are available immediately when MySQL has completed startup.
      A MySQL Shell plugin is a folder containing an initialization
      script appropriate for the language (an
      init.js or init.py
      file). The initialization script is the entry point for the
      plugin. A plugin can only contain code in one language, so if you
      are creating an extension object with a mix of members defined in
      Python and members defined in JavaScript, you must store the
      members as separate language-appropriate plugins.
    
      For a MySQL Shell plugin to be loaded automatically at startup,
      its folder must be located under the plugins
      folder in the MySQL Shell user configuration path. MySQL Shell
      searches for any initialization scripts in this location.
      MySQL Shell ignores any folders in the
      plugins location whose name begins with a dot
      (.) but otherwise the name you use for a plugin's folder is not
      important.
    
      The default path for the plugins folder is
      ~/.mysqlsh/plugins on Unix and
      %AppData%\MySQL\mysqlsh\plugins in Windows.
      The user configuration path can be overridden on all platforms by
      defining the environment variable
      MYSQLSH_USER_CONFIG_HOME. The value of this
      variable replaces %AppData%\MySQL\mysqlsh\ on
      Windows or ~/.mysqlsh/ on Unix.
    
      When an error is found while loading plugins, a warning is shown
      and the error details are available in the MySQL Shell
      application log. To see more details on the loading process use
      the --log-level=debug option when starting
      MySQL Shell.
    
When a MySQL Shell plugin is loaded, the following objects are available as global variables:
The built in global objects
shell,dba, andutil.The Shell API main module
mysql.The X DevAPI main module
mysqlx.The AdminAPI main module
dba.