Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ updates:
- "react*"
- "@testing-library/react"
- "@mdx-js/react"
prod-minor-patch:
dependency-type: "production"
update-types:
- "minor"
- "patch"
patterns:
- "*"
cooldown:
default-days: 7

Expand All @@ -49,6 +56,12 @@ updates:
docker:
patterns:
- "docker/*"
gha-minor-patch:
update-types:
- "minor"
- "patch"
patterns:
- "*"
labels:
- "bot"
commit-message:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
node-version-file: package.json

- name: Configure sustainable npm
uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0
uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0

- name: Install NPM dependencies
run: npm ci
Expand All @@ -51,7 +51,7 @@ jobs:
node-version-file: package.json

- name: Configure sustainable npm
uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0
uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0

- name: Install NPM dependencies
run: npm ci
Expand All @@ -65,7 +65,7 @@ jobs:
npx --yes wait-on@9 --timeout 60000 http://localhost:3000/

- name: Run accessibility tests
uses: lowlysre/pa11y-ci-action@9cfc00c514ae1d06afa84ce15d3959f8bbca2e73 # v1.0.0
uses: lowlysre/pa11y-ci-action@84174759cd514bd3ea3bcaa30dc1798dde81f713 # v1.1.0

query-tests:
name: DuckDB query smoke tests
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/production_deploy_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
node-version-file: package.json

- name: Configure sustainable npm
uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0
uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0

- name: Install NPM dependencies
run: npm ci --prefer-dedupe
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/staging_deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
with:
node-version-file: 'package.json'

- uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0
- uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0

- run: npm ci --omit=dev

Expand Down
3 changes: 2 additions & 1 deletion blog/2026-10-06-cng-workshop.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ You do have a model. You just wrote it in a place nothing else can read. The dat

We had the same problem at Overture, at a larger scale. The [Overture Schema](<https://docs.overturemaps.org/schema/>) started as JSON Schema, hand-written as YAML, with reference docs written separately and validation that only ran on JSON. When the schema changed, the docs had to catch up by hand, and they didn't always. So we asked how we could write the model so that the data, the validation, and the reference material all derive from it and can't diverge. Our answer was code. [Last month we published v2.0.0 of the schema](<https://docs.overturemaps.org/blog/2026/09/16/schema-v2/>) as a Python library built on Pydantic. The model is the source, and the JSON Schema, the reference docs, and the validation checks are all generated from it.

{/* truncate */}

This post follows the workshop we're teaching today at the [CNG Forum in Snowbird](<https://cloudnativegeo.org/events/cng-forum-2026>). If you're in the room, it's the written version of what we're doing together. If you're not, it's an invitation: the packages are on PyPI, the workshop material is in [a public repo](https://github.com/OvertureMaps/workshop/tree/cng-snowbird) with a [Codespace that has everything installed](https://bit.ly/4jH4Rp8), and you can work through it on your own data. It's written for people on their own data modeling journey: you have a model you built, one you inherited, or one that's implicit in how your data happens to look, and it isn't working as well as you'd like. You want something that holds together better and fits with other datasets and tools.


{/* truncate */}

## Background: JSON Schema and Pydantic

Expand Down
Loading