Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased¶
v1.0.2¶
Changed¶
- Switched to BatchSpanProcessor for exporting OTEL traces to XRay
v1.0.1¶
Changed¶
- Migrated build backend from
pdm-pep517tohatchling+uv-dynamic-versioningfor SCM-based versioning.
Fixed¶
- Fixed /docs redirect for root path scenario
- Fixed /timeseries logging bug
v1.0.0¶
Added¶
- Restructure API into two separate backends with distinct route prefixes:
/xarrayfor NetCDF/HDF5 datasets (via xarray) and/rasteriofor multi-band raster files (via rio-tiler/GDAL) orbit_numberquery parameter for filtering granules by orbit number- Multi-variable visualization support in xarray backend
- Legacy route redirects (
titiler/cmr/legacy.py) for backwards compatibility with old API paths and parameter names - Architecture documentation (
docs/architecture.md) - Earthdata Login (EDL) based S3 direct access: bearer token fetched from the
EDL token endpoint and auto-refreshed before expiry; temporary per-DAAC S3
credentials cached for 50 minutes; falls back to HTTPS with
Authorization: Bearerwhen S3 direct access is unavailable (#112) - Update deployment application to add EARTHDATA_USERNAME and EARTHDATA_PASSWORD to Lambda environment (#120)
- Multiple additional CMR Granule Search parameters:
skipcovered: skip granules whose footprint is already fully covered by previously-selected granulescoverage_tolerance: spatial buffer (degrees) for coverage checks; defaults differ by backend (xarray: 0.0, rasterio: 0.01)exitwhenfull: stop fetching granules once the requested area is fully covered (default: true)f(on/granulesendpoints): response format —json(default list) orgeojson(FeatureCollection with footprints)cloud_cover: filter granules by cloud cover percentage rangeattribute: filter by additional CMR granule attributessort_key: control CMR result ordering- Multi-variable xarray support:
variablesparameter (plural) accepts repeated values (e.g.,variables=sst&variables=precip) - GeoJSON output format for
/granulesendpoints viaf=geojson, returning granule spatial footprints as a FeatureCollection - Automatic expression translation: expressions using named assets or xarray variables (e.g.,
B04/B03,sst/error) are automatically rewritten to positional band references (b1/b2) required by rio-tiler ≥ 9 - Xarray backend uses obstore and obspec-utils for cloud-native dataset loading, replacing fsspec
- Migration guide (
docs/migration.md) documenting breaking changes and upgrade paths from pre-1.0 API
Fixed¶
- Fix the missing parameter error message "
indexesmust be provided if not providingbands_regexandbands". The alias for theindexesparameter isbidx, so thebidxparameter is what is missing from the parameter string. (#101) - Fix rasterio/GDAL environment inheritence when using multithreaded reads (#91)
- Fix
get_concept_id_ummfunction to raise 404, not 400, when there is no concept found for the given concept ID (#113) - Fix response when
temporalparameter is not supplied for datetime interpolation, such that the response status is 400, not 500 (#122)
Changed¶
- Backend selection moved from
?backend=query parameter to URL prefix (/xarray/or/rasterio/); the old?backend=parameter is accepted by legacy redirects for backwards compatibility, defaulting to rasterio when absent variable(singular) renamed tovariables(plural) for xarray backend; old name still accepted via redirect- S3 authentication is now exclusively via Earthdata Login bearer tokens and per-DAAC temporary S3 credentials; AWS IAM / role-based access is no longer used
- Full backwards compatibility with pre-1.0 API: old root-level paths
automatically redirect (301/308) to the appropriate backend prefix, with
parameter renames (
concept_id,datetime,bands_regex,variable) applied transparently during redirect concept_idquery parameter renamed tocollection_concept_idto align with CMR naming; old name still accepted via redirectdatetimequery parameter renamed totemporalto align with CMR standard; old name still accepted via redirectbands_regexquery parameter renamed toassets_regex; old name still accepted via redirect- CMR granule search now uses
granules.umm_jsonformat instead ofgranules.json - Timeseries logic extracted from
factory.pyintotitiler/cmr/timeseries.py - Simplify function
get_geojson_boundsand add illustrative examples to its docstring (#115) - Upgraded to titiler>=2.0,<3 and rio-tiler>=9.0,<10
- Refactored all settings for the API and deployment into titiler/cmr/settings.py
v0.3.1¶
Added¶
- feat: support custom bootstrap qualifier by @ividito in #99
- feat: add permission boundary support by @ividito in #100
v0.3.0¶
Added¶
- interpolate {datetime} in if sel includes {dim}={datetime} (#78)
- /compatibility and /concept_metadata endpoints (#80)
-
add dataset statistics to /compatibility endpoint output for xarray datasets (#80)
-
export traces to X-Ray from AWS Lambda (#81)
Fixed¶
Changed¶
- Switch from a zip package to a containerized Lambda function (#81)
v0.2.0¶
Fixed¶
- Upgrade to Python 3.12 runtime to avoid dependency build errors
Added¶
- Add OTEL traces
- Upgrade to titiler v0.23. and add more logging statements to help track performance (#71)
v0.1.5¶
Fixed¶
-
Allow POST requests from cross-origin clients (#60)
-
Handle case where
ResolutionAndCoordinateSystemis not available for calculating time series request size (#62) -
Pin geojson-pydantic to >=2.0.0,<3.0 (previously was >=1.1.1) and fixed iteration of
FeatureCollection(#68)
Changed¶
- Add
s3_auth_strategyandaws_request_payertoAppSettings: developmentseed/titiler-cmr!58
v0.1.4¶
Added¶
- Added support for
selandsel_methodparameters: developmentseed/titiler-cmr!52 - Add HLS tile configuration documentation: developmentseed/titiler-cmr!45
Fixed¶
Changed¶
- Added github workflow for deploying to a dev stack: developmentseed/titiler-cmr!51
- Modifications to github workflow to support deployment via github.com/NASA-IMPACT/veda-deploy: developmentseed/titiler-cmr!47, developmentseed/titiler-cmr!48
- Modifications to deployment environment variables
STAGEandAWS_REQUEST_PAYERviaadditional_envinStackSettings: developmentseed/titiler-cmr!55
v0.1.3¶
Added¶
- Time series API limits
0.1.2¶
Added¶
- Support for
/timeseriesendpoints (#33)
0.1.1¶
Added¶
- Add
/bbox,/feature, and/statisticsendpoints (#30)
0.1.1¶
Added¶
- Ability to run locally with Earthdata authentication (#28)