Skip to main content

panos-response-pages

CI Python License

Modern, responsive response pages for PAN-OS. Generate response pages to delight users while protecting them from threats.

Full documentation →

Table of Contents

Preview

A blocked-application page rendered in the Beacon Field style

Full Preview available via Github Pages pages.

Features

Use panos-response-pages to generate response pages that

  • Provide responsive design for desktop and mobile
  • Automatically serve light or dark mode depending on OS settings
  • Automatically redirect users to sanctioned apps based on URL category match
  • Link to the IT service desk via mail or link
  • Support 7 themes across 4 colour palettes

Quickstart

Install it:

pip install panos-response-pages

Or, with uv:

uv tool install panos-response-pages
uvx panos-response-pages build          # or run it without installing

Build the pages:

panos-response-pages build              # every style, into ./out
panos-response-pages themes             # what styles exist
panos-response-pages palettes           # what colour palettes exist

out/deploy/<style>/<palette>/ is what you import into PAN-OS. out/preview/index.html is a clickthrough gallery for review — style, palette, page, viewport and colour scheme — built with sample data standing in for the PAN-OS tokens.

Seven styles ship, all supporting both colour schemes. Six wear any of the three brand palettes: assist, record, banner, glass, beacon, mesh. nyan pins a palette of its own. See [Styles].

Customise

Copy the shipped shells, palettes, themes and config out, then edit them:

panos-response-pages init               # into ~/.panos_response_pages, which build finds on its own

Put your own settings in config/<customer>.json. It is deep-merged over config/_defaults.json, so list only what differs:

{
  "company": "Example Corp",
  "supportUrl": "https://servicedesk.example.com/new-ticket",
  "supportEmail": "",
  "supportLabel": "the Service Desk",
  "redirect": {
    "enabled": true,
    "categories": {
      "online-storage-and-backup": {
        "app": "Company Drive",
        "url": "https://drive.example.com/",
        "seconds": 5,
        "message": "Work files belong on {app}. Taking you there."
      }
    }
  }
}
  • company is the wordmark on every page.
  • supportUrl points "Report to IT" at a ticket system instead of a mailbox. It must be an absolute https:// URL — a response page is served as the blocked site, so a relative path resolves against whatever host refused the user. supportEmail and supportUrl are mutually exclusive: set one and blank the other, or the build stops. supportLabel names the queue for the places that print the contact inline — in email mode those print the address itself, so it applies to supportUrl mode only.
  • redirect hands a user over to a sanctioned app after a countdown when the blocked category has an approved equivalent. It applies to the URL block page only. A category needs no entry in categories to redirect — that map lists only the ones whose tone or wording differs, and anything absent from it is calm — but a category listed there as warn or critical is refused, because a user must never be forwarded off a security block. Make sure your security policy actually permits the target, or the redirect lands on another block page.

Then build against it:

panos-response-pages build --customer <name>

Development

uv sync --all-groups
uv run pre-commit install
uv run nox                            # lint, type-check, tests, docs

nox -s tests runs the suite with coverage; the gate is 93%. Commit uv.lock.

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

panos_response_pages-0.1.1.tar.gz (244.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

panos_response_pages-0.1.1-py3-none-any.whl (243.9 kB view details)

Uploaded Python 3

File details

Details for the file panos_response_pages-0.1.1.tar.gz.

File metadata

  • Download URL: panos_response_pages-0.1.1.tar.gz
  • Upload date:
  • Size: 244.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for panos_response_pages-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f903c33f8f2e7669a5ed06a426f514cc1219e3f99c7f1aacd0488dea73fe05f6
MD5 385d91d5528fbec2068596b5f437c2df
BLAKE2b-256 2e6cad0405bb2e1a4dd7089ee49b45025b255e1c13a869d05ff2ecfe08baf097

See more details on using hashes here.

Provenance

The following attestation bundles were made for panos_response_pages-0.1.1.tar.gz:

Publisher: release.yml on kaisero/panos-response-pages

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file panos_response_pages-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for panos_response_pages-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aebccff007d5eaf2cd1d9a14973d18ac05d7539efd520dae00aba381e7a42224
MD5 bb30c72afc0d9e75e5b0196a6f1eae8d
BLAKE2b-256 1550088b2e75124f66e96a35df2aac59fd2e16ab09a48f233afe2242e1be3a25

See more details on using hashes here.

Provenance

The following attestation bundles were made for panos_response_pages-0.1.1-py3-none-any.whl:

Publisher: release.yml on kaisero/panos-response-pages

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page