Skip to content

Installation

Requirements

Python Django Wagtail
3.10, 3.11, 3.12, 3.13, 3.14 4.2, 5.1, 5.2, 6.0 7.0 – 7.3

Install the Package

pip install wagtail-unveil

The current PyPI release is still an alpha intended for early adopters and real-world testing, and breaking changes may still happen before a stable release. To try the latest unreleased changes from GitHub instead:

pip install git+https://github.com/nm-packages/wagtail-unveil.git

Add to INSTALLED_APPS

INSTALLED_APPS = [
    # ...
    "wagtail_unveil",
    # ...
]

Include Package URLs

from django.urls import include, path

urlpatterns = [
    # ...
    path("unveil/", include("wagtail_unveil.urls")),
]

Set the API Key

Set WAGTAIL_UNVEIL_API_KEY as an environment variable (recommended):

export WAGTAIL_UNVEIL_API_KEY=your-secret-key

Or set it in Django settings:

WAGTAIL_UNVEIL_API_KEY = "your-secret-key"

If both are set, the environment variable takes precedence.

Try the Reports

HTML reports require a superuser login and either DEBUG=True or WAGTAIL_UNVEIL_ENABLE_PRODUCTION_REPORTS=True:

  • /unveil/report/backend-urls/ — admin URL discovery report
  • /unveil/report/frontend-urls/ — frontend URL discovery report
  • /unveil/report/platform/ — runtime versions and dependency inventory report
  • /unveil/report/settings/ — settings diagnostic page

You can also open these pages from links in the Wagtail admin dashboard panel.

Try the API

curl -H "Authorization: Bearer your-secret-key" http://localhost:8000/unveil/api/v1/backend-urls/
curl -H "Authorization: Bearer your-secret-key" http://localhost:8000/unveil/api/v1/frontend-urls/
curl -H "Authorization: Bearer your-secret-key" http://localhost:8000/unveil/api/v1/platform/

To include Python dependency inventory in the platform response, also set:

WAGTAIL_UNVEIL_PLATFORM_DEPENDENCY_FILE = "pyproject.toml"

The platform endpoint requires Bearer auth for normal API-client requests, even in local DEBUG=True development. The built-in platform report uses a separate signed report-access flow and does not expose the API key to the browser.