Skip to content

Latest commit



577 lines (340 loc) · 25.2 KB

File metadata and controls

577 lines (340 loc) · 25.2 KB

15.5.1 (2024-03-06)

Bug Fixes

  • 2024 Constituency: Apply IDs to 2024 field (52fa74e)
  • Constituencies: Put 2024 Cons in separate field (871b189)

15.5.0 (2024-03-01)


  • 2024 Constituencies: Apply expected 2024 Westminster (20ad61a)
  • ONSPD: Bump to Feb 2024 (00eec21)

15.4.1 (2024-02-07)

Bug Fixes

  • Nov 2023: Rebuild release for NUTS/ITL (ba78b97)
  • NUTS: Update NUTS/ITL (4cf64ea)

15.4.0 (2024-01-31)

Bug Fixes

  • CI: Drop test in release step (9c0f2c8)
  • Node: Bump to v20 (46d5af2)
  • ONSPD Aug 2023: Update CCGs (3191842)


  • NUTS/ITL: Update names (837a951)
  • ONSPD: Update for Nov 2023 (af1c922)
  • Parish: Update for 2023 (c15a1c1)

15.3.0 (2023-08-24)

Bug Fixes

  • ONPSD Aug 2023: Update districts (d78cc76)
  • ONSPD May 2023: Update CCGs (d848c76)


  • ONSPD: Update to August 2023 (0003f4a)
  • ONSPD: Update to May 2023 (25db52b)

15.2.0 (2023-06-10)

Bug Fixes

  • App: Load router if URL Prefix not defined (ff7a427)


  • URL Prefix: Enable URL Prefixes with URL_PREFIX env flag (c0ee972)

15.1.0 (2023-03-10)


  • ONSPD: Bump to ONSPD Feb 2023 (2034e01)

15.0.0 (2023-01-04)

Bug Fixes

  • Wards: Fix for ONSPD Nov (3be07ad)


  • CCGs: Migrate CCGs to Sub ICB Locations (0dac18a)
  • ONPSD: Bump to Nov (9d159ad)
  • Police Force Area: Add PFA model (b3183b4)
  • Police Force Areas: Ingest PFA GSS codes (ab37f8c)
  • Police Force Areas: Return PFA name on API (64d43f4)
  • Postcodes: Return date of creation in YYYYMM format (df36589)


  • CCGs: From July 2022, CCGs were replaced by Sub-ICB locations.

14.4.1 (2022-08-25)

Bug Fixes

  • Dockerfile: Fix npm install (92deb67)

14.4.0 (2022-08-25)

Bug Fixes

  • Parish: Add missing parish data (2d4af13)
  • Wards: Update for missing wards (556c960)


  • Node: Run on Node 16 (2e6bcde)
  • ONSPD: Update dataset for ONSPD Aug 2022 (f3aecea)

14.3.0 (2022-02-23)


  • ONSPD: Bump to Feb 2022 (7ef4c17)

14.2.0 (2021-12-13)

Bug Fixes

  • ONSPD: Add missing wards for ONSPD 11/21 (91a0d15)


  • ONSPD: Bump to Nov 2021 (5fd8973)

14.1.0 (2021-09-07)

Bug Fixes

  • ONSPD: Update CED dataset (6589312)
  • ONSPD: Update NUTS/ITL dataset (257e8ab)


  • ONSPD: Update for ONSPD August 2021 (9aad316)

14.0.4 (2021-07-08)

Bug Fixes

  • Districts: Add missing codes for Northamptonshire (1d8d4f8)

14.0.3 (2021-07-05)

Bug Fixes

  • Database: Point to latest pg_dump (9df3bf5)

14.0.2 (2021-07-05)

Bug Fixes

14.0.1 (2021-06-28)

Bug Fixes

  • Rust: Add reference to Rust crate (bd7bb84)

14.0.0 (2021-06-25)

Bug Fixes

  • CCG: Update CCGs for May 2021 (21b2a7c)
  • NUTS: Transition NUTS to ITL (4939eac)
  • Wards: Update wards for ONSPD May 2021 (ab7fcdb)


  • ONSPD: Bump to ONSPD May 2021 (02db17f)


  • NUTS: ONSPD has removed NUTS in favour of ITL

As of May 2021. NUTS has changed to International Territorial Levels (ITL). will report ITL in nuts and codes.nuts to preserve backwards compatibility.

Following the UK’s withdrawal from the EU, a new UK-managed international statistical geography - ITL (International Territorial Levels) - was introduced from 1st January 2021, replacing the former NUTS classification

13.1.0 (2021-03-09)

Bug Fixes

  • Parish: Update Parish dataset (52f74bb)


  • Bulk Search: Guarantee results in same order (816214b), closes #675
  • ONSPD: Update ONSPD to Feb 2021 (d567664)

13.0.4 (2021-01-24)

Bug Fixes

  • Healthcheck: Fixues docker healthcheck (12ec633), closes #699

13.0.3 (2020-12-21)

Bug Fixes

  • Zenodo: Trigger new release (3d5f561)

13.0.2 (2020-12-17)

Bug Fixes

  • SPD: Add back dual SPD entries (80f2f90)
  • SPD: Correct and ingest invalid SPD postcodes (8564f5a), closes #578

13.0.1 (2020-12-11)

Bug Fixes

  • Async Limit: Fix queuing for bulk requests (e196a2c), closes #642

13.0.0 (2020-12-09)

Bug Fixes

  • MapBox: Update to latest MapBox lib (1f68e3b)


  • Docker: Add readiness check /ready (890e33b)
  • GSS Codes: Add LSOA and MSOA data models (4aac8a1)
  • GSS Codes: Return MSOA and LSOA in codes (3562e35)
  • LAU2: Add LAU2 to codes block (3af2938)
  • ONSPD: Update ONSPD and OS Open Names (e820b73)
  • Port to Typescript (144a566)


  • GSS Codes: postcodes relation has been altered to store GSS Codes for MSOA and LSOA (as msoa_id and lsoa_id) rather than names

12.1.1 (2020-11-30)

Bug Fixes

  • correct grammar on documentation page (eea9056)

12.1.0 (2020-08-24)


  • ONSPD: Bump to ONSP Aug 2020 (64f9831)

12.0.4 (2020-08-23)

Bug Fixes

  • SPD: Correct and ingest invalid SPD postcodes (954469c)

12.0.3 (2020-07-09)

Bug Fixes

  • NUTS: Incorporate NUTS updates into latest dataset (2fb71ae)

12.0.2 (2020-07-09)

Bug Fixes

  • NUTS: Add missing NUTS from ONSPD May 2020 (869e264)

12.0.1 (2020-07-02)

Bug Fixes

  • Demo: Don't clear input on click (8f70d0e), closes #541

12.0.0 (2020-06-22)

Bug Fixes

  • a11y: add title attributes to iframe elements and structure headings on page (65ca5a3)


  • Node: Deprecate node 8, switch to node 12 LTS (e8d211c)


  • Data: Update ONSPD, Open Names, SPD (a92a91a)


  • Node: Node 8 no longer supported


Any changes, including backwards incompatible changes will be listed here

11.1.0 (6/3/2020)

  • Updated ONSPD to Feb 2020
  • Updated Open Names to Jan 2020
  • Updated GSS codes for missing parishes
  • Chore: Refactored static ejs templates

11.0.1 (6/1/2020)

  • Fix: codes.cgg incorrectly returning short code rather than GSS code

11.0.0 (3/1/2020)

  • Breaking Change CCG Short Code column added to ccgs table
  • CCG Short Code returned in codes object
  • Update ONSPD to November 2019
  • Update OS Open Names to October 2019
  • Updated GSS codes for midding NUTS
  • Updated GSS codes for midding wards
  • New docker-compose setup for test, dev and s3 pg_dump testing

10.2.1 (2/9/2019)

  • Return specific error message if postcode not in SPD but in ONSPD. Thanks to @mashedkeyboard

10.2.0 (27/8/2019)

  • Update ONSPD to August 2019
  • Update OS Open Names to July 2019
  • Updated GSS codes for missing wards
  • Integrated Scotland Postcode Directory (SPD) dataset
  • Added Scotland postcode lookup (for Scottish Constituencies) /scotland/postcodes/:postcode

10.1.4 (5/7/2019)

  • CI testing on node 12 (instead of 11)
  • Deprecated PMX configuration option. Use prom-client for monitoring
  • Fix: Prom client uses stricter path matching to reduce cardinaility in path= label
  • Update ONSPD to May 2019
  • Update OS Names dataset to April 2019
  • Rebuild GSS codes

10.1.3 (23/3/2019)

  • Enable prometheus endpoint
  • .env files loaded upon application start. These are overwritten with explicit ENV variables

10.1.2 (7/3/2019)

  • Fix: npm run setup on ubuntu
  • Dependency Update: switch from pmx to @pm2/io
  • Add abiltiy to define google analytics key with environment variable

10.1.1 (6/3/2019)

10.1.0 (3/3/2019)

  • Updated ONSPD dataset to February 2019
  • Updated OS Names dataset to January 2019
  • Rebuild GSS codes for NHSHA and NUTS datasets
  • Dropped bunyan as dependency. Replaced with pino, a faster and actively maintained logging library
  • Log destination can now be assigned via env variable LOG_DESTINATION
    • "/absolute/path/to/file" logs to file
    • "stdout" logs to stdout
    • "perf" logs to stdout in extreme mode
  • Added ability to export prometheus metrics by basic auth protected /metrics endpoint. To enable include PROMETHEUS_USERNAME and PROMETHEUS_PASSWORD as environment variables. Those environment variables are required to authenticate using HTTP basic authentication
  • Updated dependencies
  • Added ability to configure application limits using environment variables. See readme
  • Amended npm run setup bash script to accept more configuration arguments

10.0.1 (16/01/2019)

  • Fix: default config.js file would fail to load under NODE_ENV=production (thanks to @g-wilson)
  • Update dependencies
  • Added link to new Python lib (thanks to @raigad)
  • Clean up documentation

10.0.0 (29/11/2018)

  • Breaking Change Install dependencies upgraded. Going forward, only the following minimum versions will be tested:
    • Node.js 8
    • PostgreSQL 10
  • Postcode responses now include County Electoral Districts (ceds)
  • Updated documentation (outcodes, installation)
  • Updated dependencies
  • Updated GSS codes for missing wards
  • Updated ONSPD dataset to November 2018
  • Updated OS Names dataset to October 2018

9.0.3 (26/10/2018)

Minor updates and fixes. Many related to docker improvements

  • Fix: /outcodes endpoint returned a result attribute rather than an error attribute for a not found response
  • Docker Related: Application gracefully exits from SIGTERM
  • Docker Related: Application writes logs to stdout when NODE_ENV=production
  • DockerFile:
    • Added healthcheck
    • Run application as non-root user (node)
    • Reduced image size: delete npm cache, added .dockerignore
    • New docker file that builds a postgresql container that preloads dataset

9.0.2 (23/8/2018)

  • Updated ONSPD dataset to August 2018
  • Updated OS Names dataset to July 2018

9.0.1 (18/6/2018)

  • Fixed regression. WGS84 geolocations for points with no assigned geolocation (in postcodes and terminated_postcodes relations) returned 0 and 99.9999 (ONSPD default identifiers for no geolocation) instead of null and null.
  • Updated pg_dump released in 9.0.0 to incorporate above fix
  • Updated noticeboard

9.0.0 (8/6/2018)

  • Breaking Change Updated postcode and terminated_postcode models for the new schema in ONSPD CSV file. This means >9.0.0 will not be able to import ONSPD CSV files produced before May 2018. pg_dump imports will not be affected
  • Added package.lock file
  • Updated wards, districts, nuts, ccgs GSS Codes
  • Updated ONSPD dataset to May 2018
  • Updated OS Names dataset to April 2018

8.0.0 (6/3/2018)

  • Breaking Change Terminated Postcode schema has been updated to include geolocation attributes: longitude, latitude, northings, eastings and location
  • Extended /terminated_postcodes endpoint to include longitude and latitude
  • Updated parishes GSS Codes
  • Tidy up of ONSPD and Open Names import scripts. Now named postcodesio-onspd and postcodesio-oson respectively. Dropped unmaintained update script
  • Updated ONSPD dataset to Feb 2018
  • Updated OS Names dataset to Jan 2018

7.0.1 (26/1/2018)

  • Fixed performance regression on /places endpoint where postgresql's unaccent() causing index miss

7.0.0 (8/12/2017)

  • Breaking Change Place schema has been amended with additional columns to support better text search for place names. When upgrading, places will need to be rebuilt
  • Added Dockerfile & Dockerhub Repository (thanks to @jamescun and @billinghamj)
  • Fix: Added missing filterable attributes for ?filter=
  • Updated dependencies
  • Updated NUTS, wards, parishes GSS codes
  • Added optional rate limiting on bulk lookup endpoints
  • Updated ONSPD dataset to Nov 2017
  • Updated OS Names dataset to Oct 2017

6.1.1 (28/9/2017)

  • Updated dependencies
  • [Dev] Run code coverage and linter by default

6.1.0 (4/9/2017)

  • Minimum required version of node.js bumped to 6.x
  • Added terminated postcodes relation and /terminated_postcodes API
  • Postcode responses now include a GSS code for parliamentary constituencies
  • Extraction scripts data files (data/*.json) now stored in data/scripts/ and will effectively document how the data files are generated
  • Mispecified resources (404 errors) now return JSON instead of application/text
  • Invalid JSON post requests return 400 errors instead of 500 HTTP response codes
  • Updated ONSPD dataset to Aug 2017
  • Updated OS Names dataset to July 2017

6.0.1 (29/7/2017)

  • Bulk postcode lookups now accept a filter parameter to restrict the attributes of the returned result set

Data File Changes

The extraction process for the key/value (JSON) representation of GSS codes stored in the data/ directory is now formally documented with code in the data/scripts/ directory. See the for more information

Following the formalisation, some data files were rebuilt and the following datasets have been modified:

  • Districts: 4 names have been updated
"Eilean Siar" is now "Na h-Eileanan Siar"
"Armagh, Banbridge and Craigavon" is now "Armagh City, Banbridge and Craigavon"
"Derry and Strabane" is now "Derry City and Strabane"
"North Down and Ards" is now "Ards and North Down"
  • LSOA: A large number of Scottish LSOAs have been expanded to include more information. E.g. For code S01013429, "Blackridge" is now "Blackridge, Westfield and Torphichen - 01"
  • MSOA: A large number of Scottish LSOAs have been expanded to include more information. E.g. For code S02001501, "Altonhill South" is now "Altonhill South, Longpark and Hillhead"
  • NHSHA: Dropping codes S08000001 to S08000014 as they appear to no longer feature in ONSPD
  • NHSHA: 4 names have been modified
"Health & Social Care Board" => "ZB001"
"Jersey" => "Jersey Health Authority"
"Guernsey (including Sark and Herm)" => "Guernsey Health Authority"
"Alderney " => "Sark Health Authority"
  • Parishes: ~60 names have been updated for various reasons. Some have had a preceeding backslash remove, some have been expanded, some are renamed
  • PCTS: 7 names have been expanded
"Betsi Cadwaladr University" => "Betsi Cadwaladr University Health Board"
"Powys Teaching" => "Powys Teaching Health Board"
"Hywel Dda" => "Hywel Dda University Health Board"
"Abertawe Bro Morgannwg University" => "Abertawe Bro Morgannwg University Health Board"
"Cwm Taf" => "Cwm Taf University Health Board"
"Aneurin Bevan" => "Aneurin Bevan University Health Board"
"Cardiff and Vale University" => "Cardiff and Vale University Health Board"
  • CCG: Naming is more consistent. CCG suffix will always be dropped (previously there were 5 exceptions)

For the exact changes, you can may inspect the most recent commit applied to the file

6.0.0 (29/6/2017)

  • Breaking Change Outcode schema has been modified to include country. When upgrading it's sufficient to rebuild support tables with npm run rebuild_support_tables
  • /outcodes/:outcode, /outcodes/:outcode/nearest and /outcodes now also return a country array in the outcode result

5.0.0 (24/5/2017)

  • Breaking Change Postcode schema has been modified to facilitate faster and better quality
  • Faster and better quality postcode search and autocomplete
  • Add missing wards for ONSPD May 2017

4.0.1 (23/2/2017)

  • Update express & body-parser

4.0.0 (23/2/2017)

  • Incorporate OS Places dataset
  • npm package now points to app.ts which exports instance express app
  • Minimum advised required Postgresql version of 9.5 (due to backwards incompatible pg_dump)
  • Updated latest pg_dump for Feb 2017 ONSPD, January 2017 OS Places data


  • Updated latest pg_dump for Nov 2016 ONSPD
  • Updated NUTS GSS codes
  • Added support for Node.js 6.9


  • Updated latest pg_dump for Aug 2016 ONSPD


  • Added some missing GSS codes. Fix import script for Aug 2016 ONSPD


  • Drop support for node.js 0.10 and 0.12


  • Expanded accept headers and HTTP methods in CORS preflight requests


  • Updated dataset to February 2016