Project
Changelog¶
All notable changes to the Portolan STAC profile will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2026-08-28¶
The schema is published at
https://schemas.portolan-sdi.org/portolan/v0.2.0/schema.json. The v0.1.0,
v0.1.1, and v0.1.2 schemas stay published unchanged.
This is the first schema change since v0.1.0. v0.1.1 and v0.1.2 each
carried a new $id and nothing else.
Changed¶
- The
links_conformantblock accepts aselflink. The branch that mappedrel: "self"tofalseis gone, following the spec's retirement ofPORTO-CORE-034(#159). - The
links_conformantblock accepts an absolute structuralhref. The"not": {"pattern": "://"}constraint is gone from theroot/parent/child/collectionbranch and from theitembranch.PORTO-CORE-034carried that rule too.
The rest of the block is unchanged. Structural links still carry the required
media type, child and item links still carry a title, and an icon link
still declares a renderable media type.
The new recommendation of a root self link (PORTO-CORE-081) is conditional
on how the publisher serves the catalog, so the schema does not check it. A
validator resolves an absolute structural link through the base that the root
self link names, which the schema also cannot check.
0.1.2 - 2026-08-20¶
The schema is published at
https://schemas.portolan-sdi.org/portolan/v0.1.2/schema.json. The v0.1.0 and
v0.1.1 schemas stay published unchanged.
Changed¶
- The schema is identical to
v0.1.1apart from its$id. The specification release addsPORTO-CORE-078,PORTO-CORE-079, andPORTO-CORE-080, none of which the schema can check: the fan-out rule counts children across the tree, and the multilingual rules governalternatelinks between separate roots. The version directory exists because the schema URI is the signal of specification version, and a released schema is immutable.
0.1.1 - 2026-08-14¶
The schema is published at
https://schemas.portolan-sdi.org/portolan/v0.1.1/schema.json. The v0.1.0
schema stays published unchanged.
Changed¶
- The extension registry now records the table extension as SHOULD for vector
collections as well as tabular ones, and names the two placements the
extension defines, matching
PORTO-FMT-046andPORTO-FMT-047. The vector examples carrytable:columnson the collection, and the partitioned item carries it inproperties. The schema is unchanged. - The schema no longer requires
file:sizeandfile:checksumon every asset, following the specification's move of both to SHOULD. Where either is present the schema still checks its shape, and tooling still checks the checksum's multihash encoding and its agreement with the bytes. A catalog that conformed before still conforms, so this is a non-breaking relaxation under the pre-1.0 bump policy. - The extension registry lists File Info as a conditional MUST, owed when an asset carries either field rather than on every object with assets.
PORTO-CORE-026:image/webpis now a valid thumbnail media type alongsideimage/pngandimage/jpeg. No existing catalog breaks.- A link with
rel: "icon"now MUST carry atype, and the schema restricts it toimage/apng,image/avif,image/gif,image/jpeg,image/png,image/svg+xml, andimage/webp, matching core.md's Catalog Logo section. The section's other two rules, a relativehrefand atitle, are SHOULD-level, so Portolan tooling reports them and the schema does not. A catalog that carries an icon link without a media type conformed before and does not now. - The media types and roles table lists the
sourceandcollection-mirrorroles, which catalogs already carry. The schema is unchanged:rolesstays a non-empty array of non-empty strings with no enumeration, so no previously accepted value is removed.
0.1.0 - 2026-07-27¶
First tagged release. The schema is published at https://schemas.portolan-sdi.org/portolan/v0.1.0/schema.json.
Added¶
- Initial version of the Portolan STAC profile, moved from the
stac-portolan-extensionrepository intostac/. - JSON Schema covering the specification's schema-checkable structural
requirements: non-empty titles and descriptions, titles on
child/itemlinks, noselflinks with relative typed structural links,type,roles,file:size, andfile:checksumrequired on every asset, https-only absolute asset hrefs,providerswith a producer and a reachable host, collectionlicensenever the deprecatedproprietary, WGS84 bbox range validity, and therel: "agents"link (withtype) on Catalogs and Collections. - Examples for a root catalog, a single-file vector collection, and a partitioned vector collection with an item.
- Optimized GeoTIFF conformance for rasters: a COG must meet OGC 21-026's
Optimized GeoTIFF requirements class (
/req/optimized_geotiff), covering square viewport-sized internal tiles, internal reduced-resolution overviews reducing by a factor of 2 to 10 until the coarsest level spans one tile, and GeoTIFF keys on the full-resolution IFD. The Raster section now also defines a valid COG by reference to OGC 21-026, the baselinerio cogeo validateand rasterio enforce. - Partition binding: a collection carrying any
partition:*field, or declaring the partition extension, must declarehttps://schemas.portolan-sdi.org/incubating/partition/v1.0.0/schema.jsoninstac_extensionsand carrypartition:scheme,partition:keys, andpartition:glob.partition:globis the normative bulk-access path. portolan-extensions.json: pins which portolan-sdi extension schema versions are published underschemas.portolan-sdi.org/<name>/<version>/. The publish workflow fetches pinned versions from their source repos at build time; the test suite fetches them into.schema-cache/and applies them to examples that declare them.
Changed¶
- No
portolan:-prefixed fields are defined: the versioned schema URI instac_extensionsis the single signal of specification version, declared on catalogs and collections only (items inherit conformance).