Skip to content

Tags: carbans/openwisp-controller

Tags

1.0.3

Toggle 1.0.3's commit message

Verified

This commit was signed with the committer’s verified signature.
pandafy Gagan Deep
1.0.3 release

Signed-off-by: Gagan Deep <pandafy.dev@gmail.com>

1.0.2

Toggle 1.0.2's commit message
1.0.2 release

Signed-off-by: Gagan Deep <pandafy.dev@gmail.com>

1.0.1

Toggle 1.0.1's commit message

Verified

This tag was signed with the committer’s verified signature.
nemesifier Federico Capoano
Version 1.0.1 [2022-05-11]

- Admin: show main group information in ``DeviceGroupAdmin`` list:
  - name
  - organization
  - modified
  - created
- Fixed uncaught exception triggered on the deletion of
  VPN client certificates
- SSH connection: fixed OpenWrt <= 19 authentication failure
- The SSH connection is now explicitly closed when
  the authentication fails to avoid leaving lingering SSH
  connection objects open

1.0.0

Toggle 1.0.0's commit message

Verified

This tag was signed with the committer’s verified signature.
nemesifier Federico Capoano
Version 1.0.0 [2022-04-29]

Features
~~~~~~~~

- Added support for `remotely executing shell commands on device
  <https://github.com/openwisp/openwisp-controller#sending-commands-to-devices>`_
- Added `automatic provisioning of Subnets and IPs
  <https://github.com/openwisp/openwisp-controller#subnet-division-app>`_
- Added `support for WireGuard and VXLAN tunnels
  <https://github.com/openwisp/openwisp-controller#how-to-setup-wireguard-tunnels>`_
- Added `required templates
  <https://github.com/openwisp/openwisp-controller#required-templates>`_
- Added support for generating configurations for OpenWrt 21
- Added `REST API
  <https://github.com/openwisp/openwisp-controller#rest-api-reference>`_
- Added charts for *config status*, *model*, *OS*, *hardware*
  and *location type* and a map for displaying the location of all devices
- Added `management_ip_changed
  <https://github.com/openwisp/openwisp-controller#management_ip_changed>`_
  and `device_name_changed
  <https://github.com/openwisp/openwisp-controller#device_name_changed>`_
  signals
- Added `OPENWISP_CONTROLLER_DEVICE_NAME_UNIQUE setting
  <https://github.com/openwisp/openwisp-controller#openwisp_controller_device_name_unique>`_
  to conditionally enforce unique device names in an organization
- Added caching for ``DeviceChecksumView``
- Added support for ED25519 SSH keys in ``Credentials``
- Added `Device Groups
  <https://github.com/openwisp/openwisp-controller#device-groups>`_
  to organize devices of a particular organization
- Configuration push updates now use the SIGUSR1 signal to reload openwisp-config
- The device list admin page now allows to search for location address

Changes
~~~~~~~

Backward incompatible changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Since django-sortedm2m, the widget we use to implement ordered templates,
  clears all the many to many relationships every time it has to make changes,
  we had to stop deleting ``VpnClient`` instances related to VPN templates
  on ``post_clear`` m2m signals
  If you wrote any custom derivative which relies on calls like
  ``device.config.templates.clear()`` to delete related ``VpnClient``
  instances and their x509 certificates, you will have to update your code
  to remove all the templates using their primary keys,
  instead of using ``clear()``
- The default behavior for the resolution of conflicting management
  IPs between devices of different organizations has been changed;
  by default, in this new version, the system assumes it's using only
  1 management tunnel for all the organizations, so different devices
  from any organization will not have the same management IP to avoid
  conflicts. The old behaviour can be restored by setting
  `OPENWISP_CONTROLLER_SHARED_MANAGEMENT_IP_ADDRESS_SPACE
  <https://github.com/openwisp/openwisp-controller#openwisp_controller_shared_management_ip_address_space>`_
  to ``False``
- ``OPENWISP_CONTROLLER_BACKEND_DEVICE_LIST`` has been renamed
  to ``OPENWISP_CONTROLLER_CONFIG_BACKEND_FIELD_SHOWN``
- ``Device.check_management_ip_changed`` has been changed to private API
  ``Device._check_management_ip_changed``

Dependencies
^^^^^^^^^^^^

- Dropped support for Python 3.6
- Dropped support for Django 2.2
- Added support for Python 3.8 and 3.9
- Added support for Django 3.2 and 4.0
- Upgraded django-sortedm2m to 3.1.x
- Upgraded django-reversion to 4.0.x
- Upgraded django-taggit to 2.1.x
- Upgraded djangorestframework-gis to 0.18.0
- Upgraded paramiko[ed25519] to 2.10.3
- Upgraded scp to 0.14.2
- Upgraded django-flat-json-widget to 0.2.x
- Upgraded celery to 5.2.x
- Upgraded channels to 3.0.x
- Upgraded django-x509 to 1.1.x
- Upgraded django-loci to 1.0.x
- Upgraded netjsonconfig to 1.0.x
- Upgraded openwisp-utils to 1.0.x
- Upgraded openwisp-users to 1.0.x
- Upgraded openwisp-notifications to 1.0.x
- Upgraded openwisp-ipam to 1.0.x
- Added shortuuid 1.0.x
- Added netaddr 0.8.x
- Added django-cache-memoize to 0.1

Other changes
^^^^^^^^^^^^^

- `Reworked implementation of config_modified signal
  <https://github.com/openwisp/openwisp-controller#config_modified>`_:

  - the signal is now always emitted on templates changes m2m events,
    also if ``config.status`` is modified, with the differences that
    only post_add and post_remove m2m events are used, while
    ``post_clear`` is ignored, which fixes the duplicate signal emission
    caused by the implementation of sortedm2m;
  - added ``action`` and ``previous_status`` arguments, which allow to
    understand where the ``config_modified`` signal is being emitted from,
    this allows more advanced usage of the signal by custom implementations

- Context variable follows template order:
  If two or more applied templates have "default_values" with the same keys,
  then the context variables of the template which comes later in the order
  will be used
- New credentials created with ``auto_add`` set to ``True`` will get added
  to the existing devices in a background task. This improves the
  responsiveness of the web application
- Decoupled admin LogEntry from Template model
- Device admin only lists relevant templates, i.e.
  templates that are shared or belong to the device's organization
- Improved UX of `system-defined variables
  <https://github.com/openwisp/openwisp-controller/issues/344>`_
- Name of objects is unique only within the same organization
  and within the shared objects
- The system does not sends connection notifications if the
  connectivity of the device changes
- Allowed searching devices using their location address in Device admin.
- Removed deprecated ``api/device-location/<pk>`` endpoint
- Made device name unique per organization instead of unique system wide
- Added time limits to background celery tasks

Bugfixes
~~~~~~~~

- Fixed a bug which caused ``VpnClient`` instances to be recreated every time
  the configuration templates of a device were changed,
  which caused x590 certificates to be destroyed and recreated as well
- Hardened config validation of OpenVPN backend. The validation fails
  if the ``openvpn`` key is missing from the configuration
- Fixed a bug that caused issues in updating related ``Config`` whenever
  a template's ``default_values`` were changed
- Fixed pop-up view of CA and Cert not displaying data
- Fixed config status stays ``applied`` after clearing all device templates
- Fixed ``VpnClient`` not created when multiple VPN templates are added
- Fixed configuration editor raising validation error when using variables in
  fields with ``maxLength`` set
- Fixed connection notifications reporting outdated status
- Fixed migrations referencing non-swappable OpenWISP modules that
  broke OpenWISP's extensibility
- Fixed bugs in restoring deleted devices using ``django-reversion``
- Fixed cloning of shared templates
- Disallowed blank values for ``key_length`` or ``digest`` fields for ``CA``
  and ``Cert`` objects
- Fixed template ordering bug in the configuration preview on Device admin
  The order of templates was not always retained when
  generating the preview of a config object

0.8.3

Toggle 0.8.3's commit message

Verified

This tag was signed with the committer’s verified signature.
nemesifier Federico Capoano
Version 0.8.3 [2020-12-18]

Bugfixes
~~~~~~~~

- Increased minimum `openwisp-users version to ~=0.5.1
  <https://github.com/openwisp/openwisp-users/blob/master/CHANGES.rst#version-051-2020-12-13>`_,
  which fixes an `issue in the production setup <https://github.com/openwisp/ansible-openwisp2/issues/233>`_

0.8.2

Toggle 0.8.2's commit message

Verified

This tag was signed with the committer’s verified signature.
nemesifier Federico Capoano
Version 0.8.2 [2020-12-11]

Bugfixes
~~~~~~~~

- Fixed the `bug <https://github.com/openwisp/openwisp-controller/issues/334>`_
  that prevented users from adding/editing access credentials.

Changes
~~~~~~~

- Increased `django-x509 <https://github.com/openwisp/django-x509#django-x509>`_
  version to 0.9.2
- Increased `django-flat-json-widget <https://github.com/openwisp/django-flat-json-widget#django-flat-json-widget>`_
  version to 0.1.2
- Changed the `preview` button colors for better readability
- Added *help text* for *device name* field

Verified

This tag was signed with the committer’s verified signature.
pandafy Gagan Deep

0.8.0

Toggle 0.8.0's commit message

Verified

This tag was signed with the committer’s verified signature.
nemesifier Federico Capoano
Version 0.8.0 [2020-11-23]

Features
~~~~~~~~

- Added possibility to `extend openwisp-controller
  <https://github.com/openwisp/openwisp-controller#extending-openwisp-controller>`_
- Added flat JSON widget for configuration variables
- Added JSON Schema widget to credentials admin
- Added ``device_registered`` signal
- Added `OpenWISP Notifications <https://github.com/openwisp/openwisp-notifications#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 <https://github.com/openwisp/openwisp-monitoring#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
  <https://github.com/openwisp/openwisp-controller#system-defined-variables>`_ section

Changes
~~~~~~~

- **Backward incompatible**: the code of `django-netjsonconfig <https://github.com/openwisp/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 to ``64``
- 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 to ``TextField``,
  this avoids possible exception if ``failed_reason`` is very long,
  which may happen in some corner cases
- Made Device ``verbose_name`` configurable, see ``OPENWISP_CONTROLLER_DEVICE_VERBOSE_NAME``
- Increased `netjsonconfig <https://github.com/openwisp/netjsonconfig#netjsonconfig>`__ version to 0.9.x
  (which brings support for new interface types,
  `see the change log of netjsonconfig <http://netjsonconfig.openwisp.org/en/latest/general/changelog.html#version-0-9-0-2020-11-18>`_
  for more information)
- Increased `django-x509 <https://github.com/openwisp/django-x509#django-x509>`_ version to 0.9.x
- Increased `django-loci <https://github.com/openwisp/django-loci#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 <https://github.com/openwisp/django-loci/blob/master/CHANGES.rst#version-040-2020-11-19>`_
  for more information)
- Increased `openwisp-users <https://github.com/openwisp/openwisp-users#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 <https://github.com/openwisp/openwisp-users/blob/master/CHANGES.rst#version-050-2020-11-18>`_
  for more information)
- Increased `django-taggit <https://github.com/jazzband/django-taggit>`_ version to 1.3.x
- Increased `openwisp-utils <https://github.com/openwisp/openwisp-utils#openwisp-utils>`__ version to 0.7.x
- Increased `django-rest-framework-gis <https://github.com/openwisp/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`` in ``HARDWARE_ID_OPTIONS`` defaults to ``False``
- 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`` and ``Template.default_values``:
  ``Config.context`` and ``Template.default_values`` must always be a dictionary,
  falsy values will be converted to empty dictionary automatically
- Fixed failures in ``update_config`` operation:
  the ``update_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

0.7.0

Toggle 0.7.0's commit message

Verified

This tag was signed with the committer’s verified signature.
nemesifier Federico Capoano
Version 0.7.0 [2020-07-01]

- [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 <https://github.com/openwisp/netjsonconfig>`_ version to 0.8.0
- [change] Increased minimum `paramiko <https://github.com/paramiko/paramiko>`_ version to 2.7.1
- [change] Increased minimum `celery <https://github.com/celery/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