- [feature] Added signals:
config_status_changed
,checksum_requested
,config_download_requested
- [feature] Added the possibility of specifying default values for variables used in templates
- [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
- [fix] Avoid errors being hidden by tabs
- [fix] Fixed clashes between javascript schema validation and variables
- Added controller view that allows to update the device information (firmware version used)
- Added
NETJSONCONFIG_HARDWARE_ID_AS_NAME
setting
- [admin] Fixed 500 internal server error in change device (now returns 404 correctly)
- [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 - [admin] Hidden device configuration context field into advanced options
- [models] Removed LEDE from the OpenWRT backend label
- [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
- Dropped django-x509<0.6.1 support
- Dropped django-reversion<=3.0.5 support
- [admin] Fixed minor bug in VPN client template config editor
- Dropped support for python 2 & python<3.6
- Dropped support for django<2.2
- Added support for django 3.0
- Moved from jsonfield to jsonfield2
- Added support for django-taggit<1.3.0 and dropped django-taggit<0.23.0
- Dropped support for django-model-utils<4.0, netjsonconfig<0.7.0, django-sortedm2m<3.0.0, django-x509<0.6
- [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
- 88ad549: [controller] Avoid failure if device exists but not config
- 1fca275: [vpn] Ensure ca_path does not contain spaces
- dbab6ca: [vpn] Added auto VPN client template generation hint
- #73: [docs] Improved instructions on how to extend and reuse the app (thanks to @redhog)
- 550eb52: [models] Added config_modified signal
- d1172e7: [cleanup] Removed obsolete TimeStampedEditableAdmin
- f6bd09e: [admin] Added forgotten notes field to Device edit page
- #74: [js] Generalized json-widget to handle non-config fields (thanks to @redhog)
- a8925dc:
[models] Added
_auto_create_cert_extra
method toAbstractVpnClient
- f3bbbbe: [admin] Avoid duplicated query generated by ConfigInline
- 367ffc1: Upgraded to django-x509 0.3.0
- #29:
[models] Updated sortedm2m
__str__
definition - bc1910d: [admin] Do not set initial backend value for existing instances
- 6a24393: [requirements] netjsonconfig>=0.6.2,<0.7.0
- #51: [django] Upgraded to django 1.11
- #59: [json_editor] Fixed alignment issue
- 5945b70:
[admin] Moved
submit_line.html
to openwisp-utils
- 1bc8304: [controller] Collect SOC / CPU field during registration
- a6847b5:
[admin] Added
system
field inDeviceAdmin
- 0dcc71d: [openwisp-utils] Moved shared logic to openwisp-utils
- 1a28dae: [requirements] Enable netjsonconfig 0.6.0
- #48: [feature] Added template tags
- #52: [models] Added device model (backward incompatible change)
- #55: [config-editor] Disabled schema validation for VPN
- #49: [admin] fixed fullscreen covering preview issue, thanks to @gastonche
- #47: [admin] Added templates in config filter
- #41: [admin] Added full screen for advanced mode, thanks to @gastonche
- 75210ad: [base_admin] Do not pass empty strings to relations in preview
- c31d9c5: [admin-theme] Added title tag to temporary frontend
- #23: [admin] Improved advanced editing mode
- ca975b8:
[AbstractConfigForm] Made
clean_templates
more generic - 8fa29c0:
[settings] Added LEDE in
OpenWrt
backend label - #32: [admin] Made text "Choose items and order by drag & drop." more evident
- 65a2458:
[models] Fixed a grammar error in templates
help_text
- [admin] Improved representation of config-template relationships (eg: when deleting a configuration)
- 6ddc95f: [admin] Added links to netjsonconfig docs
- f16768d:
[data-migration] Update
resolv-retry
value forOpenVpn
backend - 96f4d09:
[models] Improved
Config.templates.through __str__
representation - 066fe2a:
[TemplatesVpnMixin] Added
get_default_templates
method (allow easier extension by third party apps) - 59e2f9d: [models] Differentiate backends when getting default templates
- 13fc0a5:
[controller] Refactored
forbid_unallowed
, addedinvalid_response
(allow easier extension by third party apps) - 6ea9764:
[controller] Refactored
BaseRegisterView
(allow easier extension by third party apps) - 7b783f0:
[controller] Added
get_controller_urls
(reduce boiler plate in third party apps) - 0417ce7:
[requirements] Set minimum
netjsonconfig
version to 0.5.4 - 172a92a:
[backends] Made
OpenWisp
backend label more self-explanatory (OpenWISP Firmware 1.x) - 1daa855:
[docs] Added documentation for
get_controller_urls
- c39fe97: [requirements]
netjsonconfig minimum version is now
0.5.3
- 0b64032:
[migrations] Renamed
enabled
attribute todisabled
in openvpn configurations - e0f284a: [admin] Show config UUID hex instead of str
- 6d75336: [controller] Return uuid hex instead of str in
register()
- 7f98358: [admin] Added optional
admin_theme
- [general] Improved abstraction and reusability (potentially backward incompatible: many internal functions and classes were changed)
- [docs] Documented how to extend the base models, admin classes, controller views and app config
- #22: Fixed evaluation of multiple vars
- [vpn] Use "not equal" operator instead of "is not" in CA validation
- [openvpn] Corrected wrong "client" mode value to "p2p"
- [vpn] Updated custom OpenVpn schema (netjsonconfig 0.5.1)
- [general] require at least netjsonconfig 0.5.1
- [general] upgraded minimum django version to 1.10
- [general] upgraded minimum netjsonconfig version to 0.5.0
- [general] added VPN Server management (depends on django-x509)
- [general] added
auto_cert
feature for automatic management of VPN client certificates - [template] added
type
attribute toTemplate
model, which can begeneric
orvpn
- [config] added required unique
mac_address
field toConfig
model - [settings] added
NETJSONCONFIG_VPN_BACKENDS
setting - [settings] added
NETJSONCONFIG_DEFAULT_VPN_BACKEND
setting - [settings] added
NETJSONCONFIG_DEFAULT_AUTO_CERT
setting - [settings] added
NETJSONCONFIG_CERT_PATH
setting - [settings] added
NETJSONCONFIG_COMMON_NAME_FORMAT
setting - [settings] backends are now completely overridable
- [admin] configuration editor is now initialized empty
- [admin] configuration editor buttons order swapped: advanced mode is now on the right side while "object properties" has been renamed to "configuration menu" and moved to the left side
- [admin] log failed previews for debugging purposes
- #24: updated outdated dependencies
- 9cd6348: added a more human readable app verbose name
- 93ddb9f: removed incorrect
verbose_name_plural
fromAppConfig
- 4fd23a1: updated requirements to be less strict
- ddb6a13: [config] replace ':' with '-' in hostname when generating configuration
- 6f22de8: added consistent registration feature
- b4ca30a: [pypi] added openwisp tag to pypi release
- d7c3aea: [pypi] eliminated accidentally included test database from pypi release
- 0948999: [admin] ensured
default_templates
variable is included only inConfig
admin - #13: [admin] added json-schema editor UI in
Config
admin - 6044ac3: [admin] improved look of disabled inputs & selects
- 4b4c6a1: fixed requirements.txt (had to be
<
instead of<=
) - #22: updated django-sortedm2m dependency
- 751e24e: [admin] preview: wait when keyboard shortcut is used
- 739c9bc: updated minimum netjsonconfig version to 0.4.2 in requirements.txt
- 04c8c78:
[controller] log
last_ip
during registration - 80806d7:
[controller] log forbidden requests with
warning
level - dba328c:
[controller] refactored
utils.forbid_unallowed
in order to log request details
- 75f5c38: [admin] swapped order of key and id attribtues in config form
- #18:
added support for "configuration variables" and
NETJSONCONFIG_CONTEXT
setting - c66f74f:
[admin] fixed possible import error case when adding new
Config
- 1f7c4e7:
[admin] fixed wrong template validation error in add
Config
- #19: added "default templates" feature
- 902a65d:
added
NETJSONCONFIG_DEFAULT_BACKEND
setting - dc628e1: [admin] ensured unsaved change warnings are issued only in add/change
- updated netjsonconfig minimum version to 0.3.7
- d7700a9: added (forgotten) migration for commit e96e26
- #15:
[model]
config
field cannot beNone
- #17:
[controller] update
last_ip
during checksum
- e96e262:
allow
blank=True
inBaseConfig
(but not Templates) - #10: [admin] added configuration preview
- #12: [admin] added unsaved changes warning
- #11:
[admin] moved preview in
submit_row
- #14: [admin] added "visualize" and "download" links for templates
- #9 added "visualize" and "download" links for templates
- #7 added
report-status
mechanism - 4905bbb [config] auto detect hostname unless overridden
- #8 added
last_ip
field - #11 added revision history via django-reversion
- #2 simplified override of
Device
adminchange_form.html
template - #3 added simple http controller
- #5 fixed
ImportError
duringDevice
validation - #4 renamed
Device
toConfig
- #6 added more structure to HTTP responses of controller
- fixed files in pypi build
- 99244a0 added
key
field to Device - 46c1582 added
key_validator
to validatekey
field - 3016a2e admin: improved style of config textarea
- ec1544a admin: improved overall usability
- #1 fixed admin
clean_templates
for new devices
- manage devices
- manage templates
- multiple template inheritance with django-sortedm2m
- download configurations
- visualize configuration