MySQL Shell 8.0

10.1.2 Registering MySQL Shell Reports

To register your user-defined report with MySQL Shell, call the shell.registerReport() method in JavaScript or shell.register_report() in Python. The syntax for the method is as follows:

shell.registerReport(name, type, report[, description])

Where:

The name, type, and report parameters are all required. The report name must meet the following requirements:

The report name is not case-sensitive during the registration process and when running the report using the \show and \watch commands. The report name is case-sensitive when calling the corresponding API function at the shell.reports object. There you must call the function using the exact name that was used to register the report, whether you are in Python or JavaScript mode.

The optional dictionary contains the following keys, which are all optional:

brief

A brief description of the report.

details

A detailed description of the report, provided as an array of strings. This is provided when you use the \help command or the --help option with the \show command.

options

Any report-specific options that the report can accept. Each dictionary in the array describes one option, and must contain the following keys:

  • name (string, required): The name of the option in the long form, which must be a valid scripting identifier.

  • brief (string, optional): A brief description of the option.

  • shortcut (string, optional): An alternate name for the option as a single alphanumeric character.

  • details (array of strings, optional): A detailed description of the option. This is provided when you use the \help command or the --help option with the \show command.

  • type (string, optional): The value type of the option. The permitted values are string, bool, integer, and float, with a default of string if type is not specified. If bool is specified, the option acts as a switch: it defaults to false if not specified, defaults to true (and accepts no value) when you run the report using the \show or \watch command, and must have a valid value when you run the report using the shell.reports object.

  • required (bool, optional): Whether the option is required. If required is not specified, it defaults to false. If the option type is bool then required cannot be true.

  • values (array of strings, optional): A list of allowed values for the option. Only options with type string can have this key. If values is not specified, the option accepts any values.

argc

A string specifying the number of additional arguments that the report expects, which can be one of the following:

  • An exact number of arguments, which is specified as a single number.

  • Zero or more arguments, which is specified as an asterisk.

  • A range of argument numbers, which is specified as two numbers separated by a dash (for example, 1-5).

  • A range of argument numbers with a minimum but no maximum, which is specified as a number and an asterisk separated by a dash (for example, 1-*).