Docs / Developers / Referência / manifest.json rules
GeneratedSDK 0.10.1

manifest.json rules

Required fields, limits and every validation code the upload check can return.

Fields

ChaveObrigatórioRegra
idSimPlugin id (e.g. "my_plugin"). Must match the id the Dev Portal gave the plugin.
nameSimHuman-readable name shown on the marketplace.
versionSimVersion string (e.g. "1.0.0"). Must match the version you upload.
descriptionNãoUp to 2000 characters. Placeholder text is refused: description goes here, edit this, fill me in, lorem ipsum, placeholder, tbd, todo.
capabilities_requiredNãoList of capability ids in namespace:action form. See the capability catalog. Declaring slash_commands adds interaction:respond for you.
slash_commandsNãoList 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. Nomes reservados are refused.
cronNãoUp 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_manifestNãoThe settings page definition. See dashboard widget vocabulary.
proxy_domains_requestedNãoHosts 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 upload

Each 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_invalid

Validation warnings

16 do not block
description_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