Metadata-Version: 2.5
Name: plone.securitytxt
Version: 1.0.0b1
Summary: A Plone addon to generate and provide a security.txt for the Plone website.
Project-URL: Homepage, https://github.com/collective/plone.securitytxt
Project-URL: Documentation, https://github.com/collective/plone.securitytxt
Project-URL: Repository, https://github.com/collective/plone.securitytxt.git
Project-URL: Issues, https://github.com/collective/plone.securitytxt/issues
Author-email: Maik Derstappen <md@derico.de>
License: GPL-2.0-or-later
Keywords: CMS,Plone
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 6.0
Classifier: Framework :: Plone :: Addon
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Requires-Dist: paste
Requires-Dist: plone-app-caching
Requires-Dist: plone-app-upgrade
Requires-Dist: plone-classicui
Requires-Dist: plone>=6.0
Requires-Dist: setuptools<81
Provides-Extra: signing
Requires-Dist: python-gnupg>=0.5.6; extra == 'signing'
Provides-Extra: test
Requires-Dist: plone-app-testing; extra == 'test'
Requires-Dist: plone-testing; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-plone>=0.5.0; extra == 'test'
Description-Content-Type: text/markdown

# Plone security.txt

A Plone addon to generate and provide a security.txt for the Plone website.

## Features

- One site-wide, structured Security Policy with draft and published lifecycle states
- Deterministic RFC 9116 output at `/.well-known/security.txt`
- Anonymous GET/HEAD, strong ETags, Canonical enforcement, and expiry-bounded caching
- Dedicated management permission, Classic UI control panel, REST API, and expiry warning
- Optional fail-closed OpenPGP clear-signing via the `signing` extra
- Compatible with Plone 6.0+

See the [administrator guide](docs/security-policy.md), [REST API](docs/rest-api.md),
[deployment guide](docs/deployment.md), and [signing guide](docs/signing.md).

## Installation

Add `plone.securitytxt` to your project's dependencies:

```python
# In your pyproject.toml
dependencies = [
    "plone.securitytxt",
    # ...
]
```

Then activate the addon in your Plone site's control panel or via GenericSetup.

## Development

### Setup

```bash
# Clone the repository
git clone https://github.com/collective/plone.securitytxt.git
cd plone.securitytxt

# Create virtual environment
python -m venv venv
source venv/bin/activate

# Install in development mode
uv sync --extra test
```

### Running Tests

```bash
uv run pytest
```

### Running Tests with Coverage

```bash
uv run pytest --cov=plone.securitytxt --cov-report=html
```

## License

GPL-2.0-or-later

## Author

Maik Derstappen <md@derico.de>
