DFIRe is built using open source software. This page lists the third-party libraries and their licenses.
License Summary
DFIRe uses only open source libraries with licenses that permit commercial use. The following license types are used by our dependencies. Every build checks each Python and npm package, and each system library that DFIRe loads, against this table, and fails on any other license. A reviewer checks each program in the container image that DFIRe runs as a separate process (see the Container Image Note).
License
Type
Commercial Use
MIT
Permissive
Allowed
BSD (2-Clause, 3-Clause)
Permissive
Allowed
Apache 2.0
Permissive
Allowed
ISC
Permissive
Allowed
MIT-CMU
Permissive
Allowed
BlueOak-1.0.0
Permissive
Allowed
Unlicense
Public domain
Allowed
MPL 2.0
Weak Copyleft
Allowed (see note below)
LGPL (2.1 / 3.0)
Weak Copyleft
Allowed (see note below)
RSALv2 / SSPLv1
Source Available
Allowed (see note below)
PSF (Python)
Permissive
Allowed
PostgreSQL License
Permissive
Allowed
ZPL 2.1
Permissive
Allowed
MIT-0, 0BSD
Permissive
Allowed
CC0 1.0
Public domain
Allowed
CC BY 4.0
Attribution
Allowed (data files)
CNRI-Python, TCL
Permissive
Allowed
FreeType License, libpng 2.0, HPND (sell variant)
Permissive
Allowed
SIL Open Font License 1.1, Bitstream Vera
Font license
Allowed (fonts)
GPL 3.0 with the GCC Runtime Library Exception
Runtime library exception
Allowed (see note below)
LGPL Note: The psycopg2 PostgreSQL driver is licensed under LGPL 3.0 and the paramiko SSH/SFTP library under LGPL 2.1. Pyphen, which WeasyPrint uses, is offered under GPL, LGPL or MPL 1.1, and DFIRe uses it under LGPL 2.1 or later. The PDF renderer also loads system libraries under LGPL: Pango, GLib, FriBidi, libthai, libdatrie and Graphite. Under LGPL terms, you may use these libraries in commercial applications without releasing your own source code, provided you do not modify the libraries themselves. DFIRe uses all of them as unmodified dependencies.
MPL 2.0 Note: mozilla-django-oidc and DOMPurify are licensed under MPL 2.0 (DOMPurify is dual-licensed Apache-2.0/MPL-2.0), as are the transitive dependencies certifi and tqdm. MPL 2.0 is a file-level copyleft license: modifications to MPL-licensed source files must be made available, but it does not require disclosure of surrounding proprietary code. DFIRe uses these libraries as unmodified dependencies.
Redis Note: DFIRe ships Redis 8, which the Redis project offers under your choice of RSALv2, SSPLv1 or AGPLv3. RSALv2 permits using Redis as a component in commercial software. It only restricts offering Redis itself as a competing managed database service. DFIRe uses Redis as an internal caching and message broker component, which is fully permitted under these terms.
Pyphen Note: Pyphen ships hyphenation dictionaries from LibreOffice under several licenses, some of them GPL. DFIRe never hyphenates text, so the backend image does not include these dictionaries. The Pyphen library code is not changed.
Container Image Note: The backend image is built on the official Python image, which is based on Debian. Some programs in the image use the GPL. The GnuPG tools verify a package key while the image is built. Perl runs the PostgreSQL client wrapper scripts. Some Debian helper tools are also GPL. DFIRe runs these programs as separate processes or not at all, and does not link to them. The GPL applies to those programs only. GLib loads libatomic from GCC, which is licensed under GPL 3.0 with the GCC Runtime Library Exception. The exception permits any program to use the library.
Backend Dependencies (Python)
The DFIRe backend is built with Python and uses the following key libraries:
The backend image adds these Debian packages, and the libraries they need, to the official Python image. The source of every Debian package is available from the Debian archive.
DFIRe complies with all license requirements of its dependencies:
Attribution: This page provides attribution as required by BSD, MIT, and Apache licenses.
Source availability: All dependencies are available from their respective package registries (PyPI, npm) or source repositories.
No modification: DFIRe uses all dependencies as unmodified libraries, satisfying LGPL and MPL requirements without source disclosure obligations. The build only deletes Pyphen's hyphenation dictionaries and leaves its code as published.
Automated check: Every build compares the license of each Python and npm package, and of each system library that DFIRe loads, with the License Summary table. A package with any other license stops the build. A new system package of any kind also stops the build until someone reviews it.
Redis usage: DFIRe uses Redis as an internal infrastructure component (caching and message broker), which is permitted under the RSALv2 license terms.
License texts: Full license texts are included in the respective packages and available from the links above.
Questions? If you have questions about licensing or need additional compliance documentation, please contact us at [email protected].