Metadata-Version: 2.1
Name: federatedcode
Version: 0.1.0
Summary: Share software metadata and vulnerabilities in a federated manner over ActivityPub and git
Home-page: https://github.com/nexB/federatedcode
Author: nexB Inc., AboutCode.org  and others
Author-email: info@aboutcode.org
License: Apache-2.0
Keywords: open source,package,dependency,activitypub,vulnerabilities,security,dependencies,packages
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: apache-2.0.LICENSE
License-File: NOTICE
License-File: AUTHORS.rst
License-File: CHANGELOG.rst
License-File: CODE_OF_CONDUCT.rst
Requires-Dist: Django==5.1.2
Requires-Dist: django-oauth-toolkit==3.0.1
Requires-Dist: djangorestframework==3.15.2
Requires-Dist: django-environ==0.11.2
Requires-Dist: gunicorn==23.0.0
Requires-Dist: GitPython==3.1.43
Requires-Dist: requests==2.32.3
Requires-Dist: httpx==0.28.1
Requires-Dist: http-message-signatures==0.5.0
Requires-Dist: attrs==24.2.0
Requires-Dist: pillow==11.0.0
Requires-Dist: cryptography==44.0.0
Requires-Dist: idna==3.10
Requires-Dist: packageurl-python==0.16.0
Requires-Dist: psycopg2-binary==2.9.10
Requires-Dist: pytest==8.3.4
Requires-Dist: pytest-django==4.9.0
Requires-Dist: saneyaml==0.6.1
Requires-Dist: django-ninja==1.3.0
Requires-Dist: pydantic==2.10.3
Requires-Dist: aboutcode.pipeline==0.2.0
Requires-Dist: aboutcode.hashid==0.2.0
Requires-Dist: python-dotenv==1.0.1
Requires-Dist: click==8.1.7
Provides-Extra: dev
Requires-Dist: flake8>=6.1.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: doc8>=0.11.2; extra == "dev"
Requires-Dist: pydocstyle>=6.3.0; extra == "dev"
Requires-Dist: bandit>=1.7.5; extra == "dev"
Requires-Dist: pytest!=7.0.0,>=6; extra == "dev"
Requires-Dist: pytest-xdist>=2; extra == "dev"
Requires-Dist: twine>=6.0.1; extra == "dev"
Requires-Dist: flot>=0.7.2; extra == "dev"
Requires-Dist: django-debug-toolbar==4.2.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: Sphinx>=5.0.2; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
Requires-Dist: sphinx-reredirects>=0.1.2; extra == "docs"
Requires-Dist: doc8>=0.11.2; extra == "docs"
Requires-Dist: sphinx-autobuild; extra == "docs"
Requires-Dist: sphinx-rtd-dark-mode>=1.3.0; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
Requires-Dist: sphinxcontrib_django; extra == "docs"
Requires-Dist: sphinx-jsonschema; extra == "docs"

==============
FederatedCode
==============

FederatedCode is a decentralized, federated metadata system for open source software code and
security information.


Quick Installation
--------------------

Run with Docker
~~~~~~~~~~~~~~~


Clone FederatedCode::

    git clone https://github.com/aboutcode-org/federatedcode.git
    cd federatedcode

Build and run::

    docker compose build
    docker compose up


Local development installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On a Debian system, use this::

    sudo apt-get install python3-venv python3-dev postgresql libpq-dev build-essential
    git clone https://github.com/aboutcode-org/federatedcode.git
    cd federatedcode
    make dev envfile postgresdb
    make test
    source venv/bin/activate
    make run

Note that we support Python 3.10 and up only.

Configuration
-------------------

The configuration of FederatedCode depends on environment variables:


- FEDERATEDCODE_WORKSPACE_LOCATION: Directory location of the workspace where we store local Git repos and
  content. Default to var/ in current directory in development
- These are generated id and secrets stored in a .env file when running `make envfile`
  - SECRET_KEY: Django's secret key
  - FEDERATEDCODE_CLIENT_ID: Client UUID
  - FEDERATEDCODE_CLIENT_SECRET: Own secret key


Acknowledgements, Funding, Support and Sponsoring
--------------------------------------------------------

This project is funded, supported and sponsored by:

- Generous support and contributions from users like you!
- the European Commission NGI programme
- the NLnet Foundation 
- the Swiss State Secretariat for Education, Research and Innovation (SERI)
- Google, including the Google Summer of Code and the Google Seasons of Doc programmes
- Mercedes-Benz Group
- Microsoft and Microsoft Azure
- AboutCode ASBL
- nexB Inc. 



|europa|   |dgconnect| 

|ngi|   |nlnet|   

|aboutcode|  |nexb|



This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial
support from the European Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology under grant agreement No 825310.

|ngizeropet|  https://nlnet.nl/project/VulnerableCode/


This project was funded through the NGI0 Discovery Fund, a fund established by NLnet with financial
support from the European Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology under grant agreement No 825322.

|ngidiscovery| https://nlnet.nl/project/vulnerabilitydatabase/


This project was funded through the NGI0 Core Fund, a fund established by NLnet with financial
support from the European Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology under grant agreement No 101092990.

|ngizerocore| https://nlnet.nl/project/VulnerableCode-enhancements/


This project is funded through the NGI0 Entrust Fund, a fund established by NLnet with financial
support from the European Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology under grant agreement No 101069594.

|ngizeroentrust| https://nlnet.nl/project/FederatedSoftwareMetadata/


This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial
support from the European Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology under grant agreement No 101135429. Additional
funding is made available by the Swiss State Secretariat for Education, Research and Innovation
(SERI). 

|ngizerocommons| |swiss| https://nlnet.nl/project/FederatedCodeNext/




.. |nlnet| image:: https://nlnet.nl/logo/banner.png
    :target: https://nlnet.nl
    :height: 50
    :alt: NLnet foundation logo

.. |ngi| image:: https://ngi.eu/wp-content/uploads/thegem-logos/logo_8269bc6efcf731d34b6385775d76511d_1x.png
    :target: https://ngi.eu35
    :height: 50
    :alt: NGI logo

.. |nexb| image:: https://nexb.com/wp-content/uploads/2022/04/nexB.svg
    :target: https://nexb.com
    :height: 30
    :alt: nexB logo

.. |europa| image:: https://ngi.eu/wp-content/uploads/sites/77/2017/10/bandiera_stelle.png
    :target: http://ec.europa.eu/index_en.htm
    :height: 40
    :alt: Europa logo

.. |aboutcode| image:: https://aboutcode.org/wp-content/uploads/2023/10/AboutCode.svg
    :target: https://aboutcode.org/
    :height: 30
    :alt: AboutCode logo

.. |swiss| image:: https://www.sbfi.admin.ch/sbfi/en/_jcr_content/logo/image.imagespooler.png/1493119032540/logo.png
    :target: https://www.sbfi.admin.ch/sbfi/en/home/seri/seri.html
    :height: 40
    :alt: Swiss logo

.. |dgconnect| image:: https://commission.europa.eu/themes/contrib/oe_theme/dist/ec/images/logo/positive/logo-ec--en.svg
    :target: https://commission.europa.eu/about-european-commission/departments-and-executive-agencies/communications-networks-content-and-technology_en
    :height: 40
    :alt: EC DG Connect logo

.. |ngizerocore| image:: https://nlnet.nl/image/logos/NGI0_tag.svg
    :target: https://nlnet.nl/core
    :height: 40
    :alt: NGI Zero Core Logo

.. |ngizerocommons| image:: https://nlnet.nl/image/logos/NGI0_tag.svg
    :target: https://nlnet.nl/commonsfund/
    :height: 40
    :alt: NGI Zero Commons Logo

.. |ngizeropet| image:: https://nlnet.nl/image/logos/NGI0PET_tag.svg
    :target: https://nlnet.nl/PET
    :height: 40
    :alt: NGI Zero PET logo

.. |ngizeroentrust| image:: https://nlnet.nl/image/logos/NGI0Entrust_tag.svg
    :target: https://nlnet.nl/entrust
    :height: 38
    :alt: NGI Zero Entrust logo

.. |ngiassure| image:: https://nlnet.nl/image/logos/NGIAssure_tag.svg
    :target: https://nlnet.nl/image/logos/NGIAssure_tag.svg
    :height: 32
    :alt: NGI Assure logo

.. |ngidiscovery| image:: https://nlnet.nl/image/logos/NGI0Discovery_tag.svg
    :target: https://nlnet.nl/discovery/
    :height: 40
    :alt: NGI Discovery logo
