WIP
- Increased minimum openwisp-users version to ~=0.5.1, which fixes an issue in the production setup
- Fixed the bug that prevented users from adding/editing access credentials.
- Increased django-x509 version to 0.9.2
- Increased django-flat-json-widget version to 0.1.2
- Changed the preview button colors for better readability
- Added help text for device name field
- Fixed tests that were dependent on specific settings of the Django project.
- 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
- 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 move 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
- 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, also the check for other updates in progress must be moved there - 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
- Increased minimum django-netjsonconfig version to 0.12
- [feature] Added signals:
config_status_changed
,checksum_requested
,config_download_requested
- [feature] Added the possibility of specifying default values for variables used in templates
- [feature] Added
banner_timeout
- [feature] Emit signal when
DeviceConnection.is_working
changes - [change] Backward incompatible change: the
config_modified
signal is not emitted anymore when the device is created - [change] VPN files now have 0600 permissions by default
- [change] Increased minimum netjsonconfig version to 0.8.0
- [change] Increased minimum paramiko version to 2.7.1
- [change] Increased minimum celery version to 4.4.3
- [fix] Avoid errors being hidden by tabs
- [fix] Fixed clashes between javascript schema validation and variables
- [fix] Fixed exception when adding device credential without type
- [fix] Fixed exception when auto adding device credentials to devices which don't have a configuration
- [fix] Avoid multiple devices having the same management IP address (multiple devices having the same last IP is allowed because last IP is almost always a public address)
- [docs] Documented SSH timeouts
- [docs] Update outdated steps in README instructions
- Added controller view that allows to update the device information (firmware version used)
- Recover deleted object views in recoverable objects now show latest objects first
- Added
NETJSONCONFIG_HARDWARE_ID_AS_NAME
setting
- [controller] Added
NETJSONCONFIG_REGISTRATION_SELF_CREATION
- [models] Handled accidental duplication of files across templates
- [controller] Update hardware device info during registration (if the device already exists, the registration will update its info)
- [admin] Moved
hardware_id
field in device list admin - [bugfix] Fixed broken preview when using
hardware_id
context var - [models] Flagged
hardware_id
as not unique (it'sunique_together
withorganization
) - [admin] Hidden device configuration context field into advanced options
- [models] Removed LEDE from the OpenWRT backend label
- [docker] Added
REDIS_URL
to docker-compose.yml and settings.py (for dev and test env)
- [models] Improved consistent key generation, now a consisten key is generated also when creating devices from the admin interface (or via model API), before it was only done during registration
- [admin] Fixed unsaved changes JS bug that was triggered in certain cases
- [deps] Switched back to jsonfield
- [deps] Upgraded to django 3, upgraded dependencies
- [deps] Dropped support for python 2
- [x509] Fixed serial number max length (imported from django-x509)
- [admin] Fixed bug that caused organization field to be missing when importing a CA or certificate
- [feature] Added connection module (possibility to SSH into devices)
- [feature] Added default operator group
- [feature] Added management IP feature
- [change] Changed configuration status:
running
has been renamed toapplied
- [admin] Added
NETJSONCONFIG_MANAGEMENT_IP_DEVICE_LIST
setting - [admin] Added
NETJSONCONFIG_BACKEND_DEVICE_LIST
setting - [x509] Fixed common_name redundancy
- [admin] Hidden "Download Configuration" button when no config is available
- [controller] Register view now updates device details
- [deps] Added support for Django 2.1 and Django 2.2
- [models] Added support for hardware ID / serial number
- [device] Add context field to device
- [bugfix] Show error when the preview is experiencing issues
- [ux] Group device change form in tabs
- [ux] Show loading indicator while loading preview
- [vpn] Add controller views (download & checksum) for VPN config
- [vpn] Fixed DH params in preview #107
- [change] Moved urls to admin namespace
- [feature] Implement copy/clone templates
- [feature] Added API to get context of device
- [bugfix] Ensure atomicity of transactions with database during auto-registration
- [requirements] Updated requirements and added support for django 2.0
- [pki] Reimplemented serial numbers as UUID integers
- [pki] Added switcher that facilitates importing certificates
- [pki] [admin] Removed
serial_number
from certificate list
- [feature] Added geographic and indoor mapping module
- [feature] Aded Dockerfile
- #21: [admin] Added a link to password reset in login form
- Added support for django-x509 0.3.0
- 934be13: [models] Updated sortedm2m __str__ definition
- b76e4e2: [requirements] django-netjsonconfig>=0.6.3,<0.7.0
- f3dc784:
[admin] Moved
submit_line.html
to openwisp-utils
- 0064b98:
[device] Added
system
field - c7fe513: [docs] Added "Installing for development" section to README
- c75fa68: [openwisp-utils] Moved shared logic to openwisp-utils
- 819cb21: [requirements] django-netjsonconfig>=0.6.2,<0.7.0
- #3: [feature] Added support for template tags
- #7:
[feature] Added
Device
model - #9: [admin] Load default templates JS logic only when required
- 298b2a2:
[admin] Avoid setting
extra_content
to mutable object - d173c24:
[migrations] Squashed
0001
and0002
to avoid postgres error - f5fb628: [migrations] Updated indexes
- 6200b7a:
[Template] Fixed
auto_client
bug
- #2: [admin] Added templates in config filter
- db77ae7: [controller] Added "error: " prefix in error responses
- 3c61053: [admin] Ensure preview button is present
- 0087483:
[models] Converted
OrganizationConfigSettings
to UUID primary key
- cbca4e1: [users] Fixed integration with openwisp-users
- added multi-tenancy (separation of organizations) to openwisp2
- added email confirmation of new users (via django-allauth)