This is part 6 of the Your First Plugin tutorial. Make sure you’ve completed 5. Working with Files first.
Node configuration with UI controls
Add configuration fields that appear in the node’s settings panel in the editor:call():
Available config display types
| Type | Description |
|---|---|
ConfigText() | Single-line text input |
ConfigBigText() | Multi-line textarea |
ConfigSelect(options=[...]) | Dropdown select |
ConfigMultiSelect(options=[...]) | Multi-select dropdown |
ConfigToggle() | Boolean switch |
ConfigNumber() | Number input |
ConfigNumberSlider(min, max, step) | Slider |
ConfigRichTextVariables() | Rich text with variable insertion |
Dynamic configuration
Overrideget_config() to generate options dynamically based on context:
List handling
When a list output connects to a non-list input, the node automatically runs once per item. If you need to process the whole list at once, declare the input as a list:Plugin-level configuration
UsePluginConfiguration for settings that apply to the entire plugin (not per-node). These are set in Settings → Plugins → Configure:
Error handling
Raise exceptions with clear messages. The platform captures them and shows them to the user:- Use
ValueErrorfor input validation errors (user-fixable) - Use
RuntimeErrorfor unexpected failures (system errors) - Always chain exceptions with
from efor better stack traces - Include actionable information in error messages
Deploy your plugin
Option 1: From a Git repository
Push your plugin to a Git repository, then install from the Noxus UI:- Go to Settings → Plugins → Install Plugin
- Choose Git source
- Enter your repository URL, branch, and path (if the plugin is in a subdirectory)
- For private repos, provide an access token
Option 2: Upload directly
Package and upload:.tar.gz file through the Noxus UI.
Option 3: Marketplace
Publish to the Noxus plugins marketplace for public distribution.Verify installation
Once installed, you should see:- Your plugin listed with status Running in Settings → Plugins
- Your nodes available in the flow editor palette
- Your integration available in workspace settings for credential configuration
Complete example
Here’s the fullweather_plugin/__init__.py putting everything together: