Features
- Added possibility to extend openwisp-controller
- Added flat JSON widget for configuration variables
- Added JSON Schema widget to credentials admin
- Added
device_registered
signal - Added OpenWISP Notifications module as a dependency, which
brings support for web and email notifications for important events - Allow using a different device model in update_config: his allows OpenWISP Monitoring to override the
can_be_updated
method to take into account the monitoring status, so that push updates won't be attempted - Added notifications for changes of
is_working
status of credentials - UX, automatically add/remove default values to device context: automatically add or remove default values of templates to the configuration context (a.k.a. configuration variables) when templates are added or removed from devices
- UX: added system defined variables section
Changes
- Backward incompatible: the code of django-netjsonconfig was
merged in openwisp-controller to simplify maintenance - Changed API of
device_location
view for consistency:/api/device-location/{id}/
becomes/api/v1/device/{id}/location/
, the old URL is kept for backward compatibility but will be removed in the future - Backward incompatible change: schema url endpoint changed to
<controller-url>/config/schema.json
and it's now in config namespace instead of admin namespace - Changed VPN DH length to 2048 and moved its generation to the background because it's a lot slower
- Admin: Order Device, Template and VPN alphabetically by default
- Admin: Added
mac_address
field to the device list page (DeviceAdmin.list_display
) - Increased
max_length
of common name to64
- Changed the config apply logic to avoid restarting the openwisp-config deamon if the configuration apply procedure is already being run
- Made template
config
field required in most cases - Changed
DeviceConnection.failure_reason
field toTextField
, this avoids possible exception iffailed_reason
is very long, which may happen in some corner cases - Made Device
verbose_name
configurable, seeOPENWISP_CONTROLLER_DEVICE_VERBOSE_NAME
- Increased netjsonconfig version to 0.9.x (which brings support for new interface types, see the change log of netjsonconfig for more information)
- Increased django-x509 version to 0.9.x
- Increased django-loci version to 0.4.x (which brings many bug fixes to the mapping feature, as long as support for geo-coding and reverse geo-coding, see the change log of django-loci for more information)
- Increased openwisp-users version from 0.2.x to 0.5.x (which brings many interesting improvements to multi-tenancy, see the
change log of openwisp-users for more information) - Increased django-taggit version to 1.3.x
- Increased openwisp-utils version to 0.7.x
- Increased django-rest-framework-gis version to 0.16.x
- Added support for django 3.1
Bugfixes
- Fixed JSON validation error when dealing with OpenVPN configuration
- Ensured
unique
inHARDWARE_ID_OPTIONS
defaults toFalse
- Avoid need of migration if
HARDWARE_ID_OPTIONS
is changed - JS: prevent crash if backend value is empty
- Do not execute default template selection if device exists
- Close preview overlay on errors
- Avoid triggering
config_modified
signal during registration - UI: Fixed whitespace after overview tab in in device page
- Validate
Config.context
andTemplate.default_values
:Config.context
andTemplate.default_values
must always be a dictionary, falsy values will be converted to empty dictionary automatically - Fixed failures in
update_config
operation: theupdate_config
operation will be executed only when the transaction is committed to the database; also handled rare but possible error conditions - Handled device not existing case in
update_config
task - Fixed auto cert feature failure when device name is too long
- UI: avoid showing main scrollbar in preview mode
- Fixed
OPENWISP_CONTROLLER_BACKEND_DEVICE_LIST = False
- UI fixed advanced mode bugs: positioning is done using css instead of js. Removed body scrollbar when in advanced mode. Back to normal mode with ESC key. Hidden netjsonconfig docs hint on narrow screens
- Avoid simultaneous
update_config
tasks: since now the launch of the task is executed when the transaction is committed to the database - Fixed
OPENWISP_CONTROLLER_CONTEXT
setting getting modified at run time - Fixed z-index of preview overlay: the z-index is increased so it's higher than the main navigation menu to avoid the possibility of triggering the main menu inadvertently
- Prevent sending
config_modified
signal multiple times - Fix timeout when changing template: slow operations are moved to the background
- Fixed variablle validation: now all the available context (device variables, system variables) are taken into account when performing validation
- Removed unnecessary
static()
call from media assets