Change log
Version 1.2.1 [2026-03-12]
Bugfixes
Version 1.2.0 [2025-10-23]
Changes
Dependencies
Bumped
jinja2~=3.1.6.Bumped
jsonschema~=4.25.1.Added support for Python
3.11,3.12, and3.13.Dropped support for Python
3.8.
Bugfixes
Version 1.1.3 [2025-07-31]
Bugfixes
Automatically generate a logical name for VLAN 802.1X interfaces in the OpenWRT Backend when the
networkfield is missing in the NetJSON configuration. This prevents misconfiguration due to missing interface names.
Version 1.1.2 [2025-03-05]
Bugfixes
Fixed typo in fields of ZeroTier backend
Update ZeroTier default name from
ow_zttoglobal
Version 1.1.1 [2024-12-23]
Bugfixes
Added a fallback for the
hostnameproperty in the OpenWISP 1.x Backend to ensure consistent configurations.Fixed readthedocs.org documentation build
Version 1.1.0 [2024-11-22]
Features
Added ZeroTier VPN backend
Added support for configuring ZeroTier in OpenWrt backend
Added support for more WPA EAP client parameters
Added support for more WPA Enterprise parameters
Added data-ciphers option for OpenVPN
Added support for DSA and VLAN 802.1q/802.1ad interfaces
Added support for more properties to WireGuard schema
Allowed defining VXLAN interface in VXLAN over WireGuard backend
Added OWE encryption type
Added
wpa3-personalfor 802.11s meshAdded support for new wireless radio syntax
band
Changes
Updated OpenWrt timezones
Update the default values for
script_securityto2andlogto/var/log/<infname>.login configuration generated byOpenVpn.auto_clientDo not add roaming configuration in wireless configuration when roaming is disabled
Avoid unnecessary options in wireless configurations
Do not remove default options in WireGuard configurations
Dependencies
Bumped
jinja2~=3.1.4Bumped
jsonschema~=4.23.0Added support for Python
3.10Dropped support for Python
3.7
Bugfixes
Fixed parsing routes without a gateway
Fixed optional management frame protection
Fixed multiple WireGuard peers bug
Fixed bridge name in auto-attached wireless interface
Fixed unhashable type list error in
netjsonconfig.utils.merge_listRemoved device configuration block for
modemmanagerinterfaceFixed automatic attachment of wireless interface to network interface
Fixed ZeroTier schema for
allow_managedfieldReplace dashes with underscores in WireGuard peer interface names in OpenWrt configuration
Fixed OpenVPN fragment option being removed when set to 0
Updated missing WiFi 5GHz channels on U-NII-2C and U-NII-3
Version 1.0.2 [2022-12-02]
Bugfixes
Fixed parsing of wifi interface without ifname
Fixed parsing of wifi with encryption set to none
Fixed parsing wifi interface boolean typecasting
Fixed a backward compatibility issue with bridges not being prefixed with “br-” on OpenWrt >= 21
Version 1.0.1 [2022-05-11]
Fixed modem-manager configuration for OpenWrt 21
Fixed WiFi interface configuration for OpenWrt 21
Version 1.0.0 [2022-04-20]
Features
Added support for the new DSA bridge syntax to the OpenWrt backend
Added support for Wireguard and Wireguard/VXLAN
Added support for Wireguard interfaces in OpenWrt backend
Added support for VXLAN interfaces in OpenWrt backend
Added
auth_nocacheproprety to theOpenVpnbackendAdded support for OpenVPN tls-auth option, the OpenVPN backend will automatically create a file for the key present in “tls_auth” field and update the value of the “tls-auth” parameter
Added
prototo remote setting of theOpenVpnbackendAdded support for IEEE 802.11w configurations to the
OpenWrtbackendAdded support for Wifi6 / IEEE 802.11ax to the
OpenWrtbackendAdded support for basic IEEE 802.11r options to the
OpenWrtbackendAdded support for WPA3 to the
OpenWrtbackendAdded support for EAP-PEAP as
authmethod in WPA2 enterprise wifi client configuration ofOpenWrtbackendRemoved option of 2.4GHz radio for 802.11ac from the
OpenWrtbackend
Changes
Backward incompatible changes
By default, the
OpenWrtbackend now generates bridge syntax in the new DSA compatible format, to override this,dsa=Falsemust be passed during the initialization of the backend
Dependencies
Dropped support for Python 3.6
Added support for Python 3.8 and 3.9
Upgraded Jinja to 3.0
Upgraded jsonschema to 3.2.x
Upgraded to openwisp-utils 1.0.x and reformatted code with latest version of the black formatter
Other changes
Simplified bridging of wifi interfaces in the OpenWrt backend: users can now simply add a wifi interface to a bridge and forget about having to update also the attached networks of the OpenWrt configuration
Bugfixes
Ensured values are always deep copied when using
merge_config, without this change the different schemas remain interwined and a dynamic change to one part which is reused by other schemas will affect different backends inadvertentlyThe file
pathis not allowed to be an empty string anymoreIgnored duplicate list elements when merging templates: detect identical elements present in both lists to avoid adding the duplicate to the result; this is needed because some templates may share one or multiple common files and these do not not have to be duplicated
Fixed typo in EAP TTLS protocol
enum_titleofOpenWrtbackend: it was showing EAP-PEAP even though TTLS was setFixed madwifi driver for legacy systems
Fixed comp-lzo option for legacy OpenVPN in OpenWisp1 backend
Fixed UCI format backward compatibility with OpenWISP 1 This fix is needed to allow workarounds in the code of OpenWISP-Firmware to keep working also with OpenWISP 2
Version 0.9.1 [2021-02-15]
[fix] Removed
mtu_discfromauto_clientmethod because it causes issues on most OpenWRT systems[fix] Avoided maxLength on PIN property to allow configuration variables
[change] Add missing TLS ciphers to OpenVPN
Version 0.9.0 [2020-11-18]
[change] Potentially backward incompatible: added support for dialup interfaces (ppp, pppoe, pppoa, 3g, qmi, ncm, wwan, pptp, 6in4, aiccu or l2tp) to openwrt backend. This change is backward incompatible if the same type of configuration was achieved using a workaround, in these cases the configuration will have to be upgraded to use the new format.
[feature] Added support for modem manager interfaces
Version 0.8.2 [2020-08-17]
[fix] Fixed bug in OpenWRT backend validation for ip_rules/src
Version 0.8.1 [2020-05-28]
Fixed bug that prevented overriding the contents of a file present in a template and caused the file to be duplicated instead of overwritten
Fixed bug affecting backward conversion of switch VLAN on OpenWRT
Version 0.8.0 [2020-04-03]
Changed default file mode for certificate files generated with from
0644to0600
Version 0.7.0 [2020-01-14]
Dropped support for python 2.7
Updated github buttons in documentation which were causing an unintended redirect
Updated the jsonschema library to version 3.x
Version 0.6.4 [2019-12-09]
Version 0.6.3 [2018-07-09]
#106 [extensions] Query backends from installed packages (thanks to @EdoPut)
#109 [doc] Added reference to plugin interface (thanks to @EdoPut)
#99 [cli] print traceback fully if the verbose flag is passed (thanks to @EdoPut)
#108 [openvpn] Added more options to the OpenVPN backend (thanks to @okraits)
Version 0.6.2 [2017-08-29]
Version 0.6.1 [2017-07-05]
5ddc201: [general] Avoid default mutable arguments
dde3c9b: [openvpn] Added explicit
list_identifiersattribute8c26cd6: [docs] Updated outdated OpenWRT rendering examples
5f8483e: [openwrt] Fixed repeated bridge gateway case
#84 [exceptions] Improved validation errors (thanks to @EdoPut)
#85 [openwrt] Added “vid” option in “switch”
#86 [openwrt] Added support for “ip6gw” option
#70 [feature] Backward conversion
#87 [openwrt] Removed automatic timezone
Version 0.6.0 [2017-06-01]
#70 [general] Preliminary work for backward conversion, more info in the OpenWISP Mailing List
#58: [openwrt] Dropped obsolete code in
OpenVpnconverter#59: [openwrt] Improved multiple ip address output
Version 0.5.6 [2017-05-24]
Version 0.5.5.post1 [2017-04-18]
Version 0.5.5 [2017-03-15]
#65: [openwrt] Added missing zonename attribute
Version 0.5.4.post1 [2017-03-07]
4aaecae: [docs] Added documentation regarding template overrides
Version 0.5.4 [2017-02-14]
6f712d1: [utils] Implemented identifiers as parameters in
utils.merge_listfcae96c: [openwrt] Added
config_valueidentifier inutils.merge_listeaa04de: [docs] Improved “All the other settings” section in
OpenWrtbackend#60 [openvpn] Fixed
resolv_retrybug; minor backward incompatible change: handled in django-netjsonconfig with a migrationf25e77e: [openvpn] Added
topologyattribute to schemac4aa07a: [openvpn] Allow to omit seconds in status attribute
Version 0.5.3 [2017-01-17]
Version 0.5.2 [2016-12-29]
#55: [vars] Fixed broken evaluation of multiple variables
Version 0.5.1 [2016-09-22]
Version 0.5.0 [2016-09-19]
Version 0.4.5 [2016-09-05]
#53: [docs] avoid ambiguity on dashes in context
#52: [schema] added countries list as
enumfor radios (thanks to @zachantre)
Version 0.4.4 [2016-06-27]
#50: [openwrt] add logical name to all generated configuration items
Version 0.4.3 [2016-04-23]
c588e5d: [openwrt] avoid adding
dnsanddns_searchifprotoisnone
Version 0.4.2 [2016-04-11]
Version 0.4.1 [2016-04-04]
b903c6f: [schema] corrected wrong ipv4 minLength and maxLength
de98ae6: [schema] fixed interface minLength attribute
4679282: [schema] added regexp pattern for interface mac address (can be empty)
067b471: [schema] switched order between MTU and MAC address properties
26b62dd: [schema] added pattern for wireless BSSID attribute
11da509: [openwrt] added regexp pattern to
maclistelementsb061ee4: [openwrt] fixed empty output bug if addresses is empty list
7f74209: [openwrt] removed support for
chanbwfor typesath5kandath9k(backward incompatible change)#46: [schema] introduced different profiles for radio settings
6ab9d5b [openwrt] added support for “Automatic Channel Selection”
#48: [openwrt] improved support for config lists
9f93776: [openwrt] simplified definition of custom interface “proto” options
a5f63f0: [openwrt] allow to override general dns and dns_search settings
1b58f97: [schema] added
stp(spanning tree protocol) property on bridge interfacesbfbf23d: [openwrt] added
igmp_snoopingproperty on bridge interfaces269c7bf: [openwrt] added
isolateproperty on wireless access points2cbc242: [openwrt] fixed
autostartwhenFalse85bd7dc: [openwrt] fixed mac address override on interfaces
45159e8: [openwrt] allow overriding
htmodeoptionb218f7d: [schema] added
enum_titlesinencryptionprotocolsef8c296: [schema] validate general hostname format
2f23cfd: [schema] validate interface ipv4 address format
612959e: [openwrt] validate ntp server hostname format
f1116f0: [schema] validate
dns_searchhostname format #42372d634 [openwrt] do not set dns to dhcp interfaces
Version 0.4.0 [2016-03-22]
#40: [openwrt] added support for ULA prefix
#44: [schema] added
noneto encryption choices#45: [schema] improved address definition
#43: [openwrt] improved static routes
#41: [schema] added
wdsproperty & removedwdsmode#36: [schema] added specific settings for 802.11s (mesh) mode
3f6d2c6: [schema] removed NetJSON
typefrom schema04c6058: [openwrt] made file
modeproperty required (backward incompatible change)00e784e: [openwrt] added default switch settings
dd708cb: [openwrt] added NTP default settings
f4148e4: [schema] removed
txqueuelenfrom interface definition574a48d: [schema] added
titleandtypetobridge_membersc6276f2: [schema] MTU title and minimum value
d8ab0e0: [schema] added
minLengthto interface name67a0916: [schema] added
minLengthto radio name258892e: [schema] added possible
ciphers2751fe3: [schema] improved definition of wireless interface fields
478ef16: [openwrt] added
wmmproperty for wireless access pointsb9a14f3: [schema] added
minLengthandmaxLengthto interfacemacproperty526c2d1: [schema] added
minLengthand maxLength to wirelessbssidpropertyc8c95d6: [schema] improved ordering and titles of wireless properties
a226e90: [openwrt] ignore advanced wifi options if zero
e008ef6: [openwrt] added
macfilterto wireless access pointsc70ab76: [openwrt] fixed empty dns and dns-search bug
778615a: [openwrt] increased network
maxLength
Version 0.3.7 [2016-02-19]
Version 0.3.6 [2016-02-17]
fixed
flake8andisortwarningsadded
flake8andisortchecks to travis build6ec5ce8: minor regexp optimization for generate method
#39: added configuration variables feature
a3486d2: the shell utility can now use environment variables in
configandtemplates, read relevant docs
Version 0.3.5 [2016-02-10]
18ecf28: removed
hardwareandoperating_systemsections75c259d: reordered schema sections
010ca98: file contents can now be only strings (backward incompatible change)
e2bb3b2: added non-standard
propertyOrderattributes to schemas to facilitate UI ordering#37: [schema] radio
tx_powernot required anymore#38: [openwrt schema] hardened file mode contraints
c2cc3fc: [schema] added minlength and maxlength to hostname
Version 0.3.4 [2016-01-14]
#35 wifi inherits
disabledfrom interface
Version 0.3.3 [2015-12-18]
Version 0.3.2 [2015-12-11]
#31 added files in
renderoutput#32
generatenow returns an in-memory file objectbadf292 updated command line utility script and examples
#33 added
writemethod5ff7360 [cli] positional
configparam is now--configor-c28de4a5 [cli] marked required arguments:
--config,--backendand--methodf55cc4a [cli] added
--argoption to pass arguments to methods
Version 0.3.1 [2015-12-02]
Version 0.3 [2015-11-30]
Version 0.2 [2015-11-23]
#20 added support for array of lines in files
#21 date is now correctly set in tar.gz files
82cc5e configuration archive is now compatible with
sysupgrade -r#22 improved and simplified bridging
#23 do not ignore interfaces with no addresses
#24 restricted schema for interface names
#25 added support for logical interface names
#26
merge_dictnow returns a copy of all the elementsd22d59 restricted SSID to 32 characters
#27 improved wireless definition
#28 removed “enabled” in favour of “disabled”
Version 0.1 [2015-10-20]
Added
OpenWrtBackendAdded command line utility
netjsonconfigAdded multiple templating feature
Added file inclusion feature