Metadata-Version: 2.1
Name: django-security-txt
Version: 0.3.2
Summary: Handle security.txt
Home-page: https://github.com/vint21h/django-security-txt/
Author: Alexei Andrushievich
Author-email: vint21h@vint21h.pp.ua
License: GPLv3+
Keywords: django,security,security.txt
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Classifier: Framework :: Django :: 3.1
Classifier: Framework :: Django :: 3.2
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Utilities
Description-Content-Type: text/x-rst
Requires-Dist: django (>=2.2<=3.3)
Requires-Dist: django-appconf (>=1.0.3)
Requires-Dist: django-phonenumber-field[phonenumbers] (>=5.0.0)
Provides-Extra: pgp
Requires-Dist: PGPy (>=0.5.3) ; extra == 'pgp'
Provides-Extra: test
Requires-Dist: attrs (==21.2.0) ; extra == 'test'
Requires-Dist: bandit (==1.7.0) ; extra == 'test'
Requires-Dist: black (==21.5b1) ; extra == 'test'
Requires-Dist: bpython (==0.21) ; extra == 'test'
Requires-Dist: check-manifest (==0.46) ; extra == 'test'
Requires-Dist: check-wheel-contents (==0.3.0) ; extra == 'test'
Requires-Dist: coverage (==5.5) ; extra == 'test'
Requires-Dist: coveralls (==3.1.0) ; extra == 'test'
Requires-Dist: curlylint (==0.13.0) ; extra == 'test'
Requires-Dist: darglint (==1.8.0) ; extra == 'test'
Requires-Dist: dennis (==0.9) ; extra == 'test'
Requires-Dist: django-stubs (==1.8.0) ; extra == 'test'
Requires-Dist: dodgy (==0.2.1) ; extra == 'test'
Requires-Dist: dotenv-linter (==0.2.0) ; extra == 'test'
Requires-Dist: flake8-annotations-complexity (==0.0.6) ; extra == 'test'
Requires-Dist: flake8-annotations-coverage (==0.0.5) ; extra == 'test'
Requires-Dist: flake8-bugbear (==21.4.3) ; extra == 'test'
Requires-Dist: flake8-comprehensions (==3.5.0) ; extra == 'test'
Requires-Dist: flake8-docstrings (==1.6.0) ; extra == 'test'
Requires-Dist: flake8-fixme (==1.1.1) ; extra == 'test'
Requires-Dist: flake8 (==3.9.2) ; extra == 'test'
Requires-Dist: importlib-metadata (==4.0.1) ; extra == 'test'
Requires-Dist: interrogate (==1.4.0) ; extra == 'test'
Requires-Dist: isort (==5.8.0) ; extra == 'test'
Requires-Dist: mypy (==0.812) ; extra == 'test'
Requires-Dist: pep8-naming (==0.11.1) ; extra == 'test'
Requires-Dist: pip-outdated (==0.4.0) ; extra == 'test'
Requires-Dist: polint (==0.4) ; extra == 'test'
Requires-Dist: pre-commit-hooks (==4.0.1) ; extra == 'test'
Requires-Dist: pre-commit (==2.13.0) ; extra == 'test'
Requires-Dist: pygments (==2.9.0) ; extra == 'test'
Requires-Dist: pylint-django (==2.4.4) ; extra == 'test'
Requires-Dist: pylint (==2.8.2) ; extra == 'test'
Requires-Dist: pyroma (==3.1) ; extra == 'test'
Requires-Dist: pytest-cov (==2.12.0) ; extra == 'test'
Requires-Dist: pytest-django (==4.3.0) ; extra == 'test'
Requires-Dist: pytest-extra-durations (==0.1.3) ; extra == 'test'
Requires-Dist: pytest-instafail (==0.4.2) ; extra == 'test'
Requires-Dist: pytest-sugar (==0.9.4) ; extra == 'test'
Requires-Dist: pytest (==6.2.4) ; extra == 'test'
Requires-Dist: readme-renderer (==29.0) ; extra == 'test'
Requires-Dist: removestar (==1.2.2) ; extra == 'test'
Requires-Dist: seed-isort-config (==2.2.0) ; extra == 'test'
Requires-Dist: tabulate (==0.8.9) ; extra == 'test'
Requires-Dist: tox-gh-actions (==2.5.0) ; extra == 'test'
Requires-Dist: tox-pyenv (==1.1.0) ; extra == 'test'
Requires-Dist: tox (==3.23.1) ; extra == 'test'
Requires-Dist: twine (==3.4.1) ; extra == 'test'
Requires-Dist: wheel (==0.36.2) ; extra == 'test'
Requires-Dist: yesqa (==1.2.3) ; extra == 'test'

.. django-security-txt
.. README.rst


A django-security-txt documentation
===================================

|GitHub|_ |Coveralls|_ |pypi-license|_ |pypi-version|_ |pypi-python-version|_ |pypi-django-version|_ |pypi-format|_ |pypi-wheel|_ |pypi-status|_

    *django-security-txt is a Django reusable application to handle security.txt (http://securitytxt.org/)*

.. contents::

Installation
------------
* Obtain your copy of source code from the git repository: ``$ git clone https://github.com/vint21h/django-security-txt.git``. Or download the latest release from https://github.com/vint21h/django-security-txt/tags/.
* Run ``$ python ./setup.py install`` from the repository source tree or the unpacked archive. Or use pip: ``$ pip install django-security-txt``.

Configuration
-------------
* Add ``"security_txt"`` to ``settings.INSTALLED_APPS``:

.. code-block:: python

    # settings.py

    INSTALLED_APPS += [
        "phonenumber_field",
        "security_txt",
    ]

* Add ``"security_txt"`` to your URLs definitions:

.. code-block:: python

    # urls.py

    from django.urls import re_path


    urlpatterns += [
        re_path(r"^.well-known/security\.txt", include("security_txt.urls")),
    ]

Settings
--------
``SECURITY_TXT_EXPIRES``
    Indicates the date and time after which the data contained in the "security.txt" file is considered stale and should not be used. Defaults to ``None``.
``SECURITY_TXT_PREFERRED_LANGUAGES``
    Used to indicate a set of natural languages that are preferred when submitting security reports. Defaults to ``None``.
``SECURITY_TXT_SIGN``
    Sign "security.txt" using PGP. Defaults to ``False``.
``SECURITY_TXT_SIGNING_KEY``
    Path to PGP key. Defaults to ``""``.

Advanced features
-----------------
If you want to sign your "security.txt":

* Install ``django-security-txt`` with additional dependencies: ``$ pip install django-security-txt[pgp]``.
* Configure:

.. code-block:: python

    # settings.py

    SECURITY_TXT_SIGN = True
    SECURITY_TXT_SIGNING_KEY = "/path/to/key.asc"

Licensing
---------
django-security-txt is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (a
t your option) any later version.
For complete license text see COPYING file.

Contacts
--------
**Project Website**: https://github.com/vint21h/django-security-txt/

**Author**: Alexei Andrushievich <vint21h@vint21h.pp.ua>

For other authors list see AUTHORS file.

.. |GitHub| image:: https://github.com/vint21h/django-security-txt/workflows/build/badge.svg
    :alt: GitHub
.. |Coveralls| image:: https://coveralls.io/repos/github/vint21h/django-security-txt/badge.svg?branch=master
    :alt: Coveralls
.. |pypi-license| image:: https://img.shields.io/pypi/l/django-security-txt
    :alt: License
.. |pypi-version| image:: https://img.shields.io/pypi/v/django-security-txt
    :alt: Version
.. |pypi-django-version| image:: https://img.shields.io/pypi/djversions/django-security-txt
    :alt: Supported Django version
.. |pypi-python-version| image:: https://img.shields.io/pypi/pyversions/django-security-txt
    :alt: Supported Python version
.. |pypi-format| image:: https://img.shields.io/pypi/format/django-security-txt
    :alt: Package format
.. |pypi-wheel| image:: https://img.shields.io/pypi/wheel/django-security-txt
    :alt: Python wheel support
.. |pypi-status| image:: https://img.shields.io/pypi/status/django-security-txt
    :alt: Package status
.. _GitHub: https://github.com/vint21h/django-security-txt/actions/
.. _Coveralls: https://coveralls.io/github/vint21h/django-security-txt?branch=master
.. _pypi-license: https://pypi.org/project/django-security-txt/
.. _pypi-version: https://pypi.org/project/django-security-txt/
.. _pypi-django-version: https://pypi.org/project/django-security-txt/
.. _pypi-python-version: https://pypi.org/project/django-security-txt/
.. _pypi-format: https://pypi.org/project/django-security-txt/
.. _pypi-wheel: https://pypi.org/project/django-security-txt/
.. _pypi-status: https://pypi.org/project/django-security-txt/


