- Title: MAAP DPS Metadata and Provenance Extension
- Identifier: https://maap-project.github.io/maap-dps-stac-extension/v0.1.0/schema.json
- Field Name Prefix:
maap-dps - Scope: Item
- Extension Maturity Classification: Proposal
- Owner: @hrodmn
This extension defines metadata and provenance from the MAAP Data Processing Service (DPS). Version 0.1.0 applies these fields to generated STAC Items. It uses flat, namespaced Item Properties so the fields can be filtered through a STAC API.
These fields are available in STAC Item properties objects:
| Field Name | Type | Required | Description |
|---|---|---|---|
maap-dps:algorithm_name |
string | Yes | Name of the algorithm that produced the Item. |
maap-dps:username |
string | Yes | Username associated with the DPS submission. |
maap-dps:tag |
string or null | Yes | Tag associated with the DPS submission. |
When the extension is declared in stac_extensions, all three extension fields
are required. No optional extension fields are defined in version 0.1.0.
Items must include processing:version from the
Processing extension
to record the version of the algorithm that produced the Item. This field is
required in addition to the three MAAP DPS fields above. Its definition and
validation belong to the Processing extension.
Items must also declare
https://stac-extensions.github.io/processing/v1.2.0/schema.json in
stac_extensions, as shown in the Item example.
Each released schema is published at:
https://maap-project.github.io/maap-dps-stac-extension/v{version}/schema.json
For example, the v0.1.0 schema is available at https://maap-project.github.io/maap-dps-stac-extension/v0.1.0/schema.json.
Install this package with a PySTAC version that supports external extension entry points:
uv add "pystac-ext-maap-dps @ git+https://github.com/MAAP-Project/maap-dps-stac-extension.git@v0.1.0"The wrapper writes processing:version and declares both required schemas:
from pystac.extensions.maap_dps import MaapDpsExtension
MaapDpsExtension.ext(item, add_if_missing=True).apply(
algorithm_name="example-algorithm",
processing_version="1.0.0",
username="example-user",
tag=None,
)The algorithm_name, processing_version, and username properties are typed
as str; reading a missing or null value raises RequiredPropertyMissing.
Only tag accepts and returns None.
The installed package registers itself through PySTAC's pystac.extensions
entry-point group.
All contributions are subject to the STAC Specification Code of Conduct.
Install the Node.js and Python dependencies once with:
npm install
uv syncThen run the schema tests, Markdown checks, example validation, and PySTAC extension checks with:
npm test
uv run pytest