Change log

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 0644 to 0600

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]

  • #113: [bugfix] Made “encryption none” explicit in OpenWRT
  • 5ddc201: [bugfix] Fixed invalid UCI name bug in default OpenWRT renderer
  • #118: [bugfix] Fixed TypeError: can only concatenate list (not "str") to list
  • #137: [tests] Migrated tests to nose2

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]

  • #78 [base] Added support for multiple renderers
  • #94 [schema] Made bssid not required for wireless stations
  • #97 [python2] Fixed py2-ipaddress related unicode bug

Version 0.6.1 [2017-07-05]

  • 5ddc201: [general] Avoid default mutable arguments
  • dde3c9b: [openvpn] Added explicit list_identifiers attribute
  • 8c26cd6: [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 OpenVpn converter
  • #59: [openwrt] Improved multiple ip address output

Version 0.5.6 [2017-05-24]

  • #69: [docs] Improved contributing guidelines (thanks to @EdoPut)
  • #71: [bin] Added validate to available methods of command line tool (thanks to @EdoPut)
  • 845ed83: [version] Improved get_version to follow PEP440
  • #73: [netjson] Fixed compatibility with NetJSON specification

Version 0.5.5.post1 [2017-04-18]

  • d481781: [docs] Added OpenWRT PPPoE example
  • beb435b: [docs] Fixed Basic Concepts summary

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]

Version 0.5.3 [2017-01-17]

  • #56: [general] Implemented smarter merge mechanism
  • #57: [openwrt] Fixed interface enabled bug
  • 7a152a3: [openwrt] Renamed enabled to disabled in OpenVPN section (for consistency)

Version 0.5.2 [2016-12-29]

  • #55: [vars] Fixed broken evaluation of multiple variables

Version 0.5.1 [2016-09-22]

  • b486c4d: [openvpn] corrected wrong client mode, renamed to p2p
  • c7e51c6: [openvpn] added pull option for clients
  • dde3128: [openvpn] differentiate server between manual, routed and bridged

Version 0.5.0 [2016-09-19]

  • added OpenVpn backend
  • afbc3a3: [openwisp] fixed openvpn integration (partially backward incompatible)
  • 1234c34: [context] improved flexibility of configuration variables
  • #54: [openwrt] fixed netmask issue on ipv4

Version 0.4.5 [2016-09-05]

  • #53: [docs] avoid ambiguity on dashes in context
  • #52: [schema] added countries list as enum for 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 dns and dns_search if proto is none

Version 0.4.2 [2016-04-11]

  • 92f9a43: [schema] added human readable values for mode access_point and 802.11s
  • #47: [openwrt] improved encryption support
  • 1a4c493: [openwrt] igmp_snooping now correctlt defaults to True
  • #49: [schema] added descriptions and titles

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 maclist elements
  • b061ee4: [openwrt] fixed empty output bug if addresses is empty list
  • 7f74209: [openwrt] removed support for chanbw for types ath5k and ath9k (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 interfaces
  • bfbf23d: [openwrt] added igmp_snooping property on bridge interfaces
  • 269c7bf: [openwrt] added isolate property on wireless access points
  • 2cbc242: [openwrt] fixed autostart when False
  • 85bd7dc: [openwrt] fixed mac address override on interfaces
  • 45159e8: [openwrt] allow overriding htmode option
  • b218f7d: [schema] added enum_titles in encryption protocols
  • ef8c296: [schema] validate general hostname format
  • 2f23cfd: [schema] validate interface ipv4 address format
  • 612959e: [openwrt] validate ntp server hostname format
  • f1116f0: [schema] validate dns_search hostname format #42
  • 372d634 [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 none to encryption choices
  • #45: [schema] improved address definition
  • #43: [openwrt] improved static routes
  • #41: [schema] added wds property & removed wds mode
  • #36: [schema] added specific settings for 802.11s (mesh) mode
  • 3f6d2c6: [schema] removed NetJSON type from schema
  • 04c6058: [openwrt] made file mode property required (backward incompatible change)
  • 00e784e: [openwrt] added default switch settings
  • dd708cb: [openwrt] added NTP default settings
  • f4148e4: [schema] removed txqueuelen from interface definition
  • 574a48d: [schema] added title and type to bridge_members
  • c6276f2: [schema] MTU title and minimum value
  • d8ab0e0: [schema] added minLength to interface name
  • 67a0916: [schema] added minLength to radio name
  • 258892e: [schema] added possible ciphers
  • 2751fe3: [schema] improved definition of wireless interface fields
  • 478ef16: [openwrt] added wmm property for wireless access points
  • b9a14f3: [schema] added minLength and maxLength to interface mac property
  • 526c2d1: [schema] added minLength and maxLength to wireless bssid property
  • c8c95d6: [schema] improved ordering and titles of wireless properties
  • a226e90: [openwrt] ignore advanced wifi options if zero
  • e008ef6: [openwrt] added macfilter to wireless access points
  • c70ab76: [openwrt] fixed empty dns and dns-search bug
  • 778615a: [openwrt] increased network maxLength

Version 0.3.7 [2016-02-19]

  • 007da6e: renamed “Coordinated Universal Time” to “UTC”
  • 2c1e72e: fixed ‘tx_power’ KeyError, introduced in 71b083e
  • aa8b485: added utils.evaluate_vars function
  • 7323491: simplified implementation of configuration variables

Version 0.3.6 [2016-02-17]

Version 0.3.5 [2016-02-10]

  • 18ecf28: removed hardware and operating_system sections
  • 75c259d: reordered schema sections
  • 010ca98: file contents can now be only strings (backward incompatible change)
  • e2bb3b2: added non-standard propertyOrder attributes to schemas to facilitate UI ordering
  • #37: [schema] radio tx_power not 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 disabled from interface

Version 0.3.3 [2015-12-18]

  • 219f638 [cli] fixed binary standard output for generate method
  • a0b1373 removed timestamp from generated configuration archive to ensure reliable checksums

Version 0.3.2 [2015-12-11]

  • #31 added files in render output
  • #32 generate now returns an in-memory file object
  • badf292 updated command line utility script and examples
  • #33 added write method
  • 5ff7360 [cli] positional config param is now --config or -c
  • 28de4a5 [cli] marked required arguments: --config, --backend and --method
  • f55cc4a [cli] added --arg option to pass arguments to methods

Version 0.3.1 [2015-12-02]

  • 69197ed added “details” attribute to ValidationError
  • 0005186 avoid modifying original config argument

Version 0.3 [2015-11-30]

  • #18 added OpenWisp backend
  • 66ee96 added file permission feature
  • #19 added sphinx documentation (published at
  • 30348e hardened ntp server option schema for OpenWrt backend
  • c31375 added madwifi to the allowed drivers in schema OpenWrt backend
  • #30 updated schema according to latest NetJSON spec

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_dict now returns a copy of all the elements
  • d22d59 restricted SSID to 32 characters
  • #27 improved wireless definition
  • #28 removed “enabled” in favour of “disabled”

Version 0.1 [2015-10-20]

  • Added OpenWrt Backend
  • Added command line utility netjsonconfig
  • Added multiple templating feature
  • Added file inclusion feature