GeneratedSDK 0.10.1
manifest.json rules
Required fields, limits and every validation code the upload check can return.
Fields
| Schlüssel | Erforderlich | Regel |
|---|---|---|
id | Ja | Plugin id (e.g. "my_plugin"). Must match the id the Dev Portal gave the plugin. |
name | Ja | Human-readable name shown on the marketplace. |
version | Ja | Version string (e.g. "1.0.0"). Must match the version you upload. |
description | Nein | Up to 2000 characters. Placeholder text is refused: description goes here, edit this, fill me in, lorem ipsum, placeholder, tbd, todo. |
capabilities_required | Nein | List of capability ids in namespace:action form. See the capability catalog. Declaring slash_commands adds interaction:respond for you. |
slash_commands | Nein | List of command objects. Names match ^[-_\w]{1,32}$. Option names are lowercase, 1 to 32 characters. Option type is a Discord option type (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11). Groups nest at most two levels: group, subcommand, options. Reservierte Namen are refused. |
cron | Nein | Up to 5 entries of {"spec": "0 9 * * *", "name": "function_name"}. Five-field cron in UTC, day of week 0 is Sunday, no interval shorter than 5 minutes. Each name must be a function in your plugin decorated with @plugin.cron. |
dashboard_manifest | Nein | The settings page definition. See dashboard widget vocabulary. |
proxy_domains_requested | Nein | Hosts your plugin may call through the HTTP proxy. Declaring any adds proxy:http for you. |
Code rules
The upload check reads your Python too. These calls are refused: __import__, compile, eval, exec. A set of imports that reach the operating system, the network or other processes is refused as well; yourbot validate names them locally. SQL built with string formatting is flagged.
Validation errors
37 block an uploadEach code appears in the Dev Portal and in yourbot validate output with a message and, usually, a hint.
artifact_unreadablemissing_entry_pointmissing_manifestmanifest_encodingmanifest_not_objectmanifest_invalid_jsonmanifest_missing_fieldmanifest_plugin_id_mismatchmanifest_version_mismatchcapabilities_not_listcapability_malformedrequirements_line_not_allowedcapability_used_not_declaredbundled_submodule_missingdashboard_manifest_unparseabledashboard_manifest_invalidcommand_options_not_listcommand_option_malformedcommand_option_missing_namecommand_option_name_invalidcommand_option_missing_typecommand_option_type_invalidcommand_defs_not_listcommand_handler_not_lowercasecommand_def_malformedcommand_name_invalidcommand_name_duplicatecommand_name_reservedcommand_missing_handlercron_not_listcron_too_manycron_entry_malformedcron_name_invalidcron_name_duplicatecron_spec_invalidcron_spec_too_frequentcron_decorator_spec_invalidValidation warnings
16 do not blockdescription_too_longdescription_placeholdercapability_declared_not_usedimport_not_bundled_or_declareddashboard_handler_without_manifestdashboard_declared_rpc_no_handlerdashboard_editor_rpc_method_missing_handlerbytecode_in_artifactgit_metadata_in_artifactcommand_name_not_lowercasecommand_handlers_not_foundcommand_not_declaredcron_task_not_in_manifestschedule_task_never_runscron_missing_taskcron_tasks_not_found
YourBot docs
Reference tables are generated from the code that is running.
Ask in Discord
Suggest a correction