Release Notes
New Features in This Release
The following table lists the new features in this release.
Feature |
Description |
The Application Firewall has been rewritten in Python 3. |
•Move from Python 2.7.12 to Python 3.9.2 •Python2 strings are bytes whereas Python3 strings are unicode •Scripts intended to be used with the ScriptHandler that are written using Python2 code may no longer work •Python3 sorted function and sort method have new signatures (accepting different arguments to that in Python2) •Source latest version of dependencies using pip (python package manager) •Remove dependencies on aodlib, aodre, aodpickle, aodpartial •Use Python xmlrpc instead of daemon/xmlrpclib.py •initdatabase now uses standard Python CLI argument parsing instead of positional arguments and now accepts the following options: "-v", "--version", "-c", "--config-file-path", "-u", "--update", "update" •Use python3 asyncio in place of threading for internal admin server communication •Use SQLAlchemy for the decider metering, statistics and threat_classifier databases creation and CRUD operations •Use pyinstaller instead of cx_Freeze •Add Python class based configuration •Move to semantic versioning (although we are still forced to use the current numbering format (e.g. 4.10-00000) until changes to the updater have been made) •Requests with gzip encoding which are larger than the allowed max_body_size are marked as invalid, unless, allow_traffic_if_cant_parse_request is True. •Licenses file is renamed THIRD_PARTY_LICENSES •Refactored initdatabase to ensure sqlite databases are created for new users and migrations are always run for existing users •Remove the use of sys.path throughout the code base and fix imports •Fix spelling of committed |