Third-party software licences
Portavis includes or loads the components below. Each component remains subject to its own copyright and licence. These licences do not grant rights to Portavis itself.
Direct Python dependencies
| Component | Reviewed version | Licence | Licence text |
|---|---|---|---|
| Django | 6.1.1 | BSD-3-Clause | View |
| Psycopg / psycopg-binary | 3.3.6 | LGPL-3.0-only | View |
| pypdf | 6.19.0 | BSD-3-Clause | View |
| python-docx | 1.2.0 | MIT | View |
| ReportLab | 5.0.1 | BSD | View |
| OpenAI Python SDK | 1.109.1 | Apache-2.0 | View |
| HTTPX | 0.28.1 | BSD-3-Clause | View |
| python-dotenv | 1.2.3 | BSD-3-Clause | View |
| pytest | 9.1.1 | MIT | View |
| pytest-django | 4.14.0 | BSD-3-Clause | View |
Browser libraries
| Component | Version | Licence | Licence text |
|---|---|---|---|
| Bootstrap | 5.3.3 | MIT | View |
| HTMX | 2.0.1 | BSD-0-Clause | View |
| Leaflet | 1.9.4 | BSD-2-Clause | View |
| Leaflet.heat | 0.2.0 | BSD-2-Clause | View |
| MapLibre GL JS | 5.24.0 | BSD-3-Clause | View |
| MapLibre GL Leaflet | 0.1.4 | ISC | View |
| Quill | 2.0.3 | BSD-3-Clause | View |
Resolved transitive Python dependencies
The reviewed environment also contains annotated-types, AnyIO, ASGIRef, Certifi, charset-normalizer, Colorama, Distro, h11, HTTPCore, idna, iniconfig, jiter, lxml, packaging, Pillow, pluggy, Pydantic, Pydantic Core, Pygments, sniffio, sqlparse, tqdm, typing-inspection, typing-extensions, and tzdata. Their exact reviewed versions are recorded in requirements.lock, and their licence files are supplied in their installed Python distributions.
Hosted map and API services
Interactive maps use the OpenFreeMap public vector-tile service with data from OpenStreetMap and OpenMapTiles. Maps display the required attribution. See the OpenFreeMap terms, privacy policy, OpenStreetMap copyright, and OpenMapTiles licence.
When adding an incident location, the map is centred using the free OpenStreetMap Nominatim geocoding service, which looks up the organisation's recorded operating location. See the Nominatim usage policy.
Weather and wave/swell conditions shown on an incident's record are fetched from the free Open-Meteo historical weather and marine APIs, using only the incident's recorded coordinates and date/time. Attribution ("Weather data by Open-Meteo.com") is shown alongside the data on the incident page. See the Open-Meteo licence (data: CC-BY-4.0; source code: AGPLv3).
Measured tide heights are fetched from the nearest Environment Agency tide gauge or tidal level station via the EA real-time flood-monitoring API, using only the incident's coordinates and date. This uses Environment Agency tide gauge data from the real-time data API (Beta), available under the Open Government Licence v3.0.
The OpenAI SDK licence covers the client library only. Use of the optional OpenAI API is separately subject to OpenAI's service, commercial, and privacy terms.
Bundled data
Before incident text is sent for optional AI analysis, likely person names are redacted locally using a list of first names derived from the Office for National Statistics Baby names in England and Wales: 1996 to 2025 dataset. Contains public sector information licensed under the Open Government Licence v3.0.