{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.talkpython/data-driven-web-apps-with-flask","documentNamespace":"https://spdx.org/spdxdocs/protobom/3f73adc6-b865-41d3-ae4a-b1be6ca29a20","comment":"Exact versions could not be resolved for some packages. For more information: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#dependencies-included.","creationInfo":{"creators":["Tool: protobom-v0.0.0-20251216165153-1f3f3060931e+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2025-12-22T17:48:34Z"},"packages":[{"name":"passlib","SPDXID":"SPDXRef-pypi-passlib-1.7.4-75c946","versionInfo":"1.7.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"(c) 2016 the Electronic Freedom Foundation, (c) 2016 the Electronic Freedom Foundation., (c) Assurance Technologies \u003chttp://www.assurancetechnologies.com\u003e, (c) Assurance Technologies 2003-2009, (c) Assurance Technologies 2008-2011, Copyright (c) 1996 Aki Yoshida, Copyright (c) 1996 Aki Yoshida., Copyright (c) 2006 Damien Miller \u003cdjm@mindrot.org\u003e, Copyright (c) 2008-2020 Assurance Technologies, LLC., copyright 2008, copyright 2008- d, s","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/passlib@1.7.4"}]},{"name":"flask","SPDXID":"SPDXRef-pypi-flask-3.1.0-75c946","versionInfo":"3.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"(c) Copyright 2010 by http://domain.invalid/\u003e, Copyright (c) 2015 CERN., copyright 2010 Pallets, Copyright 2010 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/flask@3.1.0"}]},{"name":"dnspython","SPDXID":"SPDXRef-pypi-dnspython-2.7.0-75c946","versionInfo":"2.7.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"ISC","copyrightText":"(c) 2009 Dennis Kaarsemaker \u003cdennis@kaarsemaker.net\u003e, Copyright (c) 2000, 2001 Internet Software Consortium, Copyright (c) 2001-2007, 2009-2011 Nominum, Inc., Copyright (c) 2001-2017 Nominum, Inc., Copyright (c) 2003-2007, 2009-2011 Nominum, Inc., Copyright (c) 2003-2007, 2009, 2011 Nominum, Inc., Copyright (c) 2003-2017 Nominum, Inc., Copyright (c) 2004-2007, 2009-2011 Nominum, Inc., Copyright (c) 2004-2007, 2009-2011, 2016 Nominum, Inc., Copyright (c) 2004-2017 Nominum, Inc., Copyright (c) 2005-2007, 2009-2011 Nominum, Inc., Copyright (c) 2006-2017 Nominum, Inc., Copyright (c) 2006, 2007, 2009-2011 Nominum, Inc., Copyright (c) 2009-2011 Nominum, Inc., Copyright (c) 2009-2017 Nominum, Inc., Copyright (c) 2010, 2011 Nominum, Inc., Copyright (c) 2011 Nominum, Inc., Copyright (c) 2012-2017 Nominum, Inc., Copyright (c) 2014 Red Hat, Inc., Copyright (c) 2015 Red Hat, Inc., Copyright (c) 2016 Coresec Systems AB, Copyright (c) 2016 Nominum, Inc., Copyright (c) Dnspython Contributors, Copyright (c) Google Inc.","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/dnspython@2.7.0"}]},{"name":"python-dateutil","SPDXID":"SPDXRef-pypi-python-dateutil-2.9.0.post0-75c946","versionInfo":"2.9.0.post0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0 AND BSD-3-Clause AND LicenseRef-scancode-unknown-license-reference","copyrightText":"Copyright (c) 2003-2011 - Gustavo Niemeyer \u003cgustavo@niemeyer.net\u003e, Copyright (c) 2012-2014 - Tomi Pievilainen \u003ctomi.pievilainen@iki.fi\u003e, Copyright (c) 2014-2016 - Yaron de Leeuw \u003cme@jarondl.net\u003e, Copyright (c) 2015- - dateutil contributors, Copyright (c) 2015- - Paul Ganssle \u003cpaul@ganssle.io\u003e, Copyright 2017- dateutil contributors, Copyright 2017- Paul Ganssle \u003cpaul@ganssle.io\u003e, copyright 2019, dateutil","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-dateutil@2.9.0.post0"}]},{"name":"typing-extensions","SPDXID":"SPDXRef-pypi-typing-extensions-4.12.2-75c946","versionInfo":"4.12.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Python-2.0.1","copyrightText":"Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands, Copyright (c) 1995-2001 Corporation for National Research Initiatives, Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/typing-extensions@4.12.2"}]},{"name":"python-utils","SPDXID":"SPDXRef-pypi-python-utils-3.9.1-75c946","versionInfo":"3.9.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2016, Rick van Hattem \u003cwolph@wol.ph\u003e","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-utils@3.9.1"}]},{"name":"mako","SPDXID":"SPDXRef-pypi-mako-1.3.9-75c946","versionInfo":"1.3.9","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"LicenseRef-scancode-proprietary-license AND MIT","copyrightText":"(c) Copyright the Mako authors and contributors, (c) OpenJS Foundation and other contributors, Copyright (c) 2006 Edgewall Software, Copyright 2006-2020 the Mako authors and contributors, Copyright 2006-2025 the Mako authors and contributors, Copyright 2007-2023 by the Sphinx team, Copyright 2008 by Armin Ronacher, Copyright Sphinx contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/mako@1.3.9"}]},{"name":"six","SPDXID":"SPDXRef-pypi-six-1.17.0-75c946","versionInfo":"1.17.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2010-2024 Benjamin Peterson","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/six@1.17.0"}]},{"name":"blinker","SPDXID":"SPDXRef-pypi-blinker-1.9.0-75c946","versionInfo":"1.9.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"copyright 2010 Jason Kirtland, Copyright 2010 Jason Kirtland","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/blinker@1.9.0"}]},{"name":"pymongo","SPDXID":"SPDXRef-pypi-pymongo-4.11.1-75c946","versionInfo":"4.11.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","copyrightText":"Copyright (c) 2001-2024 Python Software Foundation, Copyright (c) 2007-2010 Michael G Schwern, Copyright 2007-2011 by the Sphinx team, Copyright 2009-2015 MongoDB, Inc., Copyright 2009-present MongoDB, Inc., Copyright 2010-2015 MongoDB, Inc., Copyright 2010-present MongoDB, Inc., Copyright 2011-2015 MongoDB, Inc., Copyright 2011-present MongoDB, Inc., Copyright 2012-present MongoDB, Inc., Copyright 2013-2016 MongoDB, Inc., Copyright 2013-present MongoDB, Inc., Copyright 2014-2015 MongoDB, Inc., Copyright 2014-2016 MongoDB, Inc., Copyright 2014-present MongoDB, Inc., Copyright 2015 MongoDB, Inc., Copyright 2015-present MongoDB, Inc., Copyright 2016 MongoDB, Inc., Copyright 2016-present MongoDB, Inc., Copyright 2017 MongoDB, Inc., Copyright 2017-present MongoDB, Inc., Copyright 2018 MongoDB, Inc., Copyright 2018-present MongoDB, Inc., Copyright 2019-present MongoDB, Inc., Copyright 2020-present MongoDB, Inc., Copyright 2021-present MongoDB, Inc., Copyright 2022-present MongoDB, Inc., Copyright 2022-Present MongoDB, Inc., Copyright 2023-present MongoDB, Inc., Copyright 2023-Present MongoDB, Inc., Copyright 2024-present MongoDB, Inc., Copyright 2024-Present MongoDB, Inc., copyright MongoDB, Inc. 2008-present","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pymongo@4.11.1"}]},{"name":"progressbar2","SPDXID":"SPDXRef-pypi-progressbar2-4.5.0-75c946","versionInfo":"4.5.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"Copyright (c) 2010 by Armin Ronacher, Copyright (c) 2010 Kenneth Reitz, Copyright (c) 2012 Rick van Hattem, Copyright (c) 2022, Rick van Hattem (Wolph), Copyright 2010 by Armin Ronacher, Copyright 2010 by Armin Ronacher. :license Flask Design, Copyright 2015 Rick van Hattem, copyright f datetime.date.today .year, http://wol.ph/'\u003e","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/progressbar2@4.5.0"}]},{"name":"alembic","SPDXID":"SPDXRef-pypi-alembic-1.14.1-75c946","versionInfo":"1.14.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) (c) H (c), (c) Zeno Rocha, Copyright (c) 2005-2019 the SQLAlchemy authors and contributors, Copyright (c) 2005-2021 the SQLAlchemy authors and contributors, Copyright (c) 2020, EBP, Copyright (c) Copyright 2010-2025, Mike Bayer, Copyright 2009-2025 Michael Bayer, copyright 2010-2025, Mike Bayer, Copyright 2011-2024 The Bootstrap Authors, Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors), Copyright 2024 Fonticons, Inc.","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/alembic@1.14.1"}]},{"name":"sqlalchemy","SPDXID":"SPDXRef-pypi-sqlalchemy-2.0.38-75c946","versionInfo":"2.0.38","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) OpenJS Foundation and other contributors, (c) Zeno Rocha, Copyright (c) 2005, Copyright (c) 2005-2024 the SQLAlchemy authors and contributors, Copyright (c) 2005-2025 Michael Bayer and contributors, Copyright (c) 2005-2025 the SQLAlchemy authors and contributors, Copyright (c) 2006-2025 the SQLAlchemy authors and contributors, Copyright (c) 2009-2025 the SQLAlchemy authors and contributors, Copyright (c) 2010 Gaetan de Menten gdementen@gmail.com, Copyright (c) 2010-2025 the SQLAlchemy authors and contributors, Copyright (c) 2013-2025 the SQLAlchemy authors and contributors, Copyright (c) 2020-2025 the SQLAlchemy authors and contributors, Copyright (c) 2021-2025 the SQLAlchemy authors and contributors, Copyright (c) 2022-2025 the SQLAlchemy authors and contributors, Copyright (c) Microsoft Corporation, Copyright (c) Microsoft Corporation Microsoft SQL Azure, Copyright 2005-2025 SQLAlchemy authors and contributors, Copyright 2007-2023 by the Sphinx team, copyright 2007-2025, the SQLAlchemy authors and contributors, Copyright 2007-2025, the SQLAlchemy authors and contributors, Copyright Core API Basics Custom SQL Constructs and Compilation Extension, Copyright Sphinx contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sqlalchemy@2.0.38"}]},{"name":"markupsafe","SPDXID":"SPDXRef-pypi-markupsafe-3.0.2-75c946","versionInfo":"3.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2010 Pallets, Copyright 2010 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/markupsafe@3.0.2"}]},{"name":"jinja2","SPDXID":"SPDXRef-pypi-jinja2-3.1.5-75c946","versionInfo":"3.1.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"(c) Copyright 2008 by http://domain.invalid/\u003e, copyright 2007 Pallets, Copyright 2007 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/jinja2@3.1.5"}]},{"name":"werkzeug","SPDXID":"SPDXRef-pypi-werkzeug-3.1.3-75c946","versionInfo":"3.1.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2007 Pallets, Copyright 2007 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/werkzeug@3.1.3"}]},{"name":"click","SPDXID":"SPDXRef-pypi-click-8.1.8-75c946","versionInfo":"8.1.8","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright 2001-2006 Gregory P. Ward, Copyright 2002-2006 Python Software Foundation, copyright 2014 Pallets, Copyright 2014 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/click@8.1.8"}]},{"name":"itsdangerous","SPDXID":"SPDXRef-pypi-itsdangerous-2.2.0-75c946","versionInfo":"2.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2011 Pallets, Copyright 2011 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/itsdangerous@2.2.0"}]},{"name":"mongoengine","SPDXID":"SPDXRef-pypi-mongoengine-0.29.1-75c946","versionInfo":"0.29.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2009, copyright 2009, MongoEngine","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/mongoengine@0.29.1"}]},{"name":"alembic","SPDXID":"SPDXRef-pypi-alembic-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/alembic"}]},{"name":"com.github.talkpython/data-driven-web-apps-with-flask","SPDXID":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","versionInfo":"master","downloadLocation":"git+https://github.com/talkpython/data-driven-web-apps-with-flask","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/talkpython/data-driven-web-apps-with-flask@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-itsdangerous-2.2.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-sqlalchemy-2.0.38-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-mongoengine-0.29.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-alembic-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-passlib-1.7.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-six-1.17.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-progressbar2-4.5.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-werkzeug-3.1.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-dnspython-2.7.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-python-utils-3.9.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-alembic-1.14.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-markupsafe-3.0.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-jinja2-3.1.5-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-flask-3.1.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-python-dateutil-2.9.0.post0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-typing-extensions-4.12.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-mako-1.3.9-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-blinker-1.9.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-pymongo-4.11.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relatedSpdxElement":"SPDXRef-pypi-click-8.1.8-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-talkpython-data-driven-web-apps-with-flask-master-1dd8eb","relationshipType":"DESCRIBES"}]}