Skip to content

Commit e9f1c7e

Browse files
authored
feat(stac)!: enable multi-tenancy using stac auth proxy configure_app (#531)
### Issue #532 ### What? - Experimenting using https://developmentseed.org/stac-auth-proxy/reference/stac_auth_proxy/#stac_auth_proxy.configure_app and custom middleware that uses cql2 filtering on `dashboard:tenant` fields. - Tenant property is on `dashboard:tenant` ### Testing? STAC Browser: https://test.openveda.cloud/ collections: https://test.openveda.cloud/api/stac/collections Test-Tenant Collections: https://test.openveda.cloud/api/stac/test-tenant/collections Customized landing page: https://test.openveda.cloud/api/stac/test-tenant/ and https://test.openveda.cloud/api/stac/test-tenant both work Test-Tenant on Items: https://test.openveda.cloud/api/stac/test-tenant/collections/barc-thomasfire/items Test-Tenant on SIT: https://sit.openveda.cloud/api/stac/test-tenant/collections
2 parents f752d5a + 6a5556a commit e9f1c7e

29 files changed

+1218
-133
lines changed

.github/actions/cdk-deploy/action.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,14 @@ runs:
6666
working-directory: ${{ inputs.dir }}
6767
run: docker compose up --build -d
6868

69-
- name: Sleep for 10 seconds
69+
- name: Wait for STAC API to be ready
7070
if: ${{ inputs.skip_tests == false }}
7171
shell: bash
7272
working-directory: ${{ inputs.dir }}
73-
run: sleep 10s
73+
run: |
74+
echo "Waiting for STAC API to be available at localhost:8081..."
75+
timeout 120 bash -c 'until curl -f http://localhost:8081/api/stac/_mgmt/ping 2>/dev/null; do sleep 0.25; done'
76+
echo "STAC API is ready!"
7477
7578
- name: Integrations tests
7679
if: ${{ inputs.skip_tests == false }}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{"id": "CMIP6ensembleMedian_diff_winter_pr_ssp245_20850214.cog", "bbox": [-126.0, 30.0, -104.0, 51.0], "type": "Feature", "assets": {"cog_default": {"href": "s3://veda-data-store/CMIP245-winter-median-pr/CMIP6ensembleMedian_diff_winter_pr_ssp245_20850214.cog.tif", "type": "image/tiff; application=geotiff", "roles": ["data", "layer"], "title": "Default COG Layer", "proj:bbox": [-126.0, 51.0, -104.0, 30.0], "proj:epsg": 4326, "proj:wkt2": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]", "proj:shape": [84, 88], "description": "Cloud optimized default layer to display on map", "raster:bands": [{"scale": 1.0, "nodata": "nan", "offset": 0.0, "sampling": "area", "data_type": "float32", "histogram": {"max": 34.99339294433594, "min": -19.078174591064453, "count": 11, "buckets": [53, 120, 205, 611, 1170, 1659, 1357, 885, 156, 16]}, "statistics": {"mean": 10.601603869143132, "stddev": 8.277524687036419, "maximum": 34.99339294433594, "minimum": -19.078174591064453, "valid_percent": 84.3073593073593}}], "proj:geometry": {"type": "Polygon", "coordinates": [[[-126.0, 51.0], [-104.0, 51.0], [-104.0, 30.0], [-126.0, 30.0], [-126.0, 51.0]]]}, "proj:projjson": {"id": {"code": 4326, "authority": "EPSG"}, "name": "WGS 84", "type": "GeographicCRS", "datum": {"name": "World Geodetic System 1984", "type": "GeodeticReferenceFrame", "ellipsoid": {"name": "WGS 84", "semi_major_axis": 6378137, "inverse_flattening": 298.257223563}}, "$schema": "https://proj.org/schemas/v0.4/projjson.schema.json", "coordinate_system": {"axis": [{"name": "Geodetic latitude", "unit": "degree", "direction": "north", "abbreviation": "Lat"}, {"name": "Geodetic longitude", "unit": "degree", "direction": "east", "abbreviation": "Lon"}], "subtype": "ellipsoidal"}}, "proj:transform": [0.25, 0.0, -126.0, 0.0, 0.25, 30.0, 0.0, 0.0, 1.0]}, "rendered_preview": {"title": "Rendered preview", "href": "https://test.openveda.cloud/api/raster/collections/CMIP245-winter-median-pr/items/CMIP6ensembleMedian_diff_winter_pr_ssp245_20850214.cog/preview.png?bidx=1&assets=cog_default&nodata=nan&rescale=-60%2C60&resampling=bilinear&colormap_name=rdbu", "rel": "preview", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-126, 30], [-104, 30], [-104, 51], [-126, 51], [-126, 30]]]}, "collection": "CMIP245-winter-median-pr", "properties": {"end_datetime": "2085-03-31T12:00:00+00:00", "start_datetime": "2085-01-01T00:00:00+00:00"}, "stac_version": "1.0.0", "stac_extensions": ["https://stac-extensions.github.io/raster/v1.1.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"]}
2+
{"id": "CMIP6ensembleMedian_diff_winter_pr_ssp245_20650214.cog", "bbox": [-126.0, 30.0, -104.0, 51.0], "type": "Feature", "assets": {"cog_default": {"href": "s3://veda-data-store/CMIP245-winter-median-pr/CMIP6ensembleMedian_diff_winter_pr_ssp245_20650214.cog.tif", "type": "image/tiff; application=geotiff", "roles": ["data", "layer"], "title": "Default COG Layer", "proj:bbox": [-126.0, 51.0, -104.0, 30.0], "proj:epsg": 4326, "proj:wkt2": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]", "proj:shape": [84, 88], "description": "Cloud optimized default layer to display on map", "raster:bands": [{"scale": 1.0, "nodata": "nan", "offset": 0.0, "sampling": "area", "data_type": "float32", "histogram": {"max": 29.58148956298828, "min": -47.315879821777344, "count": 11, "buckets": [2, 1, 6, 25, 68, 320, 992, 2507, 1996, 315]}, "statistics": {"mean": 11.100733863526958, "stddev": 7.5786284393107595, "maximum": 29.58148956298828, "minimum": -47.315879821777344, "valid_percent": 84.3073593073593}}], "proj:geometry": {"type": "Polygon", "coordinates": [[[-126.0, 51.0], [-104.0, 51.0], [-104.0, 30.0], [-126.0, 30.0], [-126.0, 51.0]]]}, "proj:projjson": {"id": {"code": 4326, "authority": "EPSG"}, "name": "WGS 84", "type": "GeographicCRS", "datum": {"name": "World Geodetic System 1984", "type": "GeodeticReferenceFrame", "ellipsoid": {"name": "WGS 84", "semi_major_axis": 6378137, "inverse_flattening": 298.257223563}}, "$schema": "https://proj.org/schemas/v0.4/projjson.schema.json", "coordinate_system": {"axis": [{"name": "Geodetic latitude", "unit": "degree", "direction": "north", "abbreviation": "Lat"}, {"name": "Geodetic longitude", "unit": "degree", "direction": "east", "abbreviation": "Lon"}], "subtype": "ellipsoidal"}}, "proj:transform": [0.25, 0.0, -126.0, 0.0, 0.25, 30.0, 0.0, 0.0, 1.0]}, "rendered_preview": {"title": "Rendered preview", "href": "https://test.openveda.cloud/api/raster/collections/CMIP245-winter-median-pr/items/CMIP6ensembleMedian_diff_winter_pr_ssp245_20650214.cog/preview.png?bidx=1&assets=cog_default&nodata=nan&rescale=-60%2C60&resampling=bilinear&colormap_name=rdbu", "rel": "preview", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-126, 30], [-104, 30], [-104, 51], [-126, 51], [-126, 30]]]}, "collection": "CMIP245-winter-median-pr", "properties": {"end_datetime": "2065-03-31T12:00:00+00:00", "start_datetime": "2065-01-01T00:00:00+00:00"}, "stac_version": "1.0.0", "stac_extensions": ["https://stac-extensions.github.io/raster/v1.1.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"]}
3+
{"id": "CMIP6ensembleMedian_diff_winter_pr_ssp245_20450214.cog", "bbox": [-126.0, 30.0, -104.0, 51.0], "type": "Feature", "assets": {"cog_default": {"href": "s3://veda-data-store/CMIP245-winter-median-pr/CMIP6ensembleMedian_diff_winter_pr_ssp245_20450214.cog.tif", "type": "image/tiff; application=geotiff", "roles": ["data", "layer"], "title": "Default COG Layer", "proj:bbox": [-126.0, 51.0, -104.0, 30.0], "proj:epsg": 4326, "proj:wkt2": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]", "proj:shape": [84, 88], "description": "Cloud optimized default layer to display on map", "raster:bands": [{"scale": 1.0, "nodata": "nan", "offset": 0.0, "sampling": "area", "data_type": "float32", "histogram": {"max": 25.966957092285156, "min": -68.7627182006836, "count": 11, "buckets": [2, 1, 0, 5, 7, 39, 671, 2575, 2843, 89]}, "statistics": {"mean": 5.419395985438062, "stddev": 6.422355859077124, "maximum": 25.966957092285156, "minimum": -68.7627182006836, "valid_percent": 84.3073593073593}}], "proj:geometry": {"type": "Polygon", "coordinates": [[[-126.0, 51.0], [-104.0, 51.0], [-104.0, 30.0], [-126.0, 30.0], [-126.0, 51.0]]]}, "proj:projjson": {"id": {"code": 4326, "authority": "EPSG"}, "name": "WGS 84", "type": "GeographicCRS", "datum": {"name": "World Geodetic System 1984", "type": "GeodeticReferenceFrame", "ellipsoid": {"name": "WGS 84", "semi_major_axis": 6378137, "inverse_flattening": 298.257223563}}, "$schema": "https://proj.org/schemas/v0.4/projjson.schema.json", "coordinate_system": {"axis": [{"name": "Geodetic latitude", "unit": "degree", "direction": "north", "abbreviation": "Lat"}, {"name": "Geodetic longitude", "unit": "degree", "direction": "east", "abbreviation": "Lon"}], "subtype": "ellipsoidal"}}, "proj:transform": [0.25, 0.0, -126.0, 0.0, 0.25, 30.0, 0.0, 0.0, 1.0]}, "rendered_preview": {"title": "Rendered preview", "href": "https://test.openveda.cloud/api/raster/collections/CMIP245-winter-median-pr/items/CMIP6ensembleMedian_diff_winter_pr_ssp245_20450214.cog/preview.png?bidx=1&assets=cog_default&nodata=nan&rescale=-60%2C60&resampling=bilinear&colormap_name=rdbu", "rel": "preview", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-126, 30], [-104, 30], [-104, 51], [-126, 51], [-126, 30]]]}, "collection": "CMIP245-winter-median-pr", "properties": {"end_datetime": "2045-03-31T12:00:00+00:00", "start_datetime": "2045-01-01T00:00:00+00:00"}, "stac_version": "1.0.0", "stac_extensions": ["https://stac-extensions.github.io/raster/v1.1.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"]}
4+
{"id": "CMIP6ensembleMedian_diff_winter_pr_ssp245_20250214.cog", "bbox": [-126.0, 30.0, -104.0, 51.0], "type": "Feature", "assets": {"cog_default": {"href": "s3://veda-data-store/CMIP245-winter-median-pr/CMIP6ensembleMedian_diff_winter_pr_ssp245_20250214.cog.tif", "type": "image/tiff; application=geotiff", "roles": ["data", "layer"], "title": "Default COG Layer", "proj:bbox": [-126.0, 51.0, -104.0, 30.0], "proj:epsg": 4326, "proj:wkt2": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]", "proj:shape": [84, 88], "description": "Cloud optimized default layer to display on map", "raster:bands": [{"scale": 1.0, "nodata": "nan", "offset": 0.0, "sampling": "area", "data_type": "float32", "histogram": {"max": 21.338512420654297, "min": -45.57268524169922, "count": 11, "buckets": [1, 2, 0, 3, 5, 149, 1538, 3207, 1270, 57]}, "statistics": {"mean": 4.095137119905328, "stddev": 4.791830768422549, "maximum": 21.338512420654297, "minimum": -45.57268524169922, "valid_percent": 84.3073593073593}}], "proj:geometry": {"type": "Polygon", "coordinates": [[[-126.0, 51.0], [-104.0, 51.0], [-104.0, 30.0], [-126.0, 30.0], [-126.0, 51.0]]]}, "proj:projjson": {"id": {"code": 4326, "authority": "EPSG"}, "name": "WGS 84", "type": "GeographicCRS", "datum": {"name": "World Geodetic System 1984", "type": "GeodeticReferenceFrame", "ellipsoid": {"name": "WGS 84", "semi_major_axis": 6378137, "inverse_flattening": 298.257223563}}, "$schema": "https://proj.org/schemas/v0.4/projjson.schema.json", "coordinate_system": {"axis": [{"name": "Geodetic latitude", "unit": "degree", "direction": "north", "abbreviation": "Lat"}, {"name": "Geodetic longitude", "unit": "degree", "direction": "east", "abbreviation": "Lon"}], "subtype": "ellipsoidal"}}, "proj:transform": [0.25, 0.0, -126.0, 0.0, 0.25, 30.0, 0.0, 0.0, 1.0]}, "rendered_preview": {"title": "Rendered preview", "href": "https://test.openveda.cloud/api/raster/collections/CMIP245-winter-median-pr/items/CMIP6ensembleMedian_diff_winter_pr_ssp245_20250214.cog/preview.png?bidx=1&assets=cog_default&nodata=nan&rescale=-60%2C60&resampling=bilinear&colormap_name=rdbu", "rel": "preview", "roles": ["overview"], "type": "image/png"}}, "geometry": {"type": "Polygon", "coordinates": [[[-126, 30], [-104, 30], [-104, 51], [-126, 51], [-126, 30]]]}, "collection": "CMIP245-winter-median-pr", "properties": {"end_datetime": "2025-03-31T12:00:00+00:00", "start_datetime": "2025-01-01T00:00:00+00:00"}, "stac_version": "1.0.0", "stac_extensions": ["https://stac-extensions.github.io/raster/v1.1.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json"]}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
{
2+
"id": "CMIP245-winter-median-pr",
3+
"type": "Collection",
4+
"links": [],
5+
"title": "Projected changes to winter (January, February, and March) cumulative daily precipitation",
6+
"assets": {
7+
"thumbnail": {
8+
"href": "https://thumbnails.openveda.cloud/CMIP-winter-median.jpeg",
9+
"type": "image/jpeg",
10+
"roles": ["thumbnail"],
11+
"title": "Thumbnail",
12+
"description": "Photo by Justin Pflug (Photo of Nisqually glacier)"
13+
}
14+
},
15+
"extent": {
16+
"spatial": { "bbox": [[-126.0, 30.0, -104.0, 51.0]] },
17+
"temporal": {
18+
"interval": [["2025-01-01T00:00:00+00:00", "2085-03-31T12:00:00+00:00"]]
19+
}
20+
},
21+
"license": "MIT",
22+
"renders": {
23+
"dashboard": {
24+
"bidx": [1],
25+
"title": "VEDA Dashboard Render Parameters",
26+
"assets": ["cog_default"],
27+
"nodata": "nan",
28+
"rescale": [[-60, 60]],
29+
"resampling": "bilinear",
30+
"colormap_name": "rdbu"
31+
}
32+
},
33+
"providers": [
34+
{
35+
"url": "https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6",
36+
"name": "NASA Center for Climate Simulation (NCCS)",
37+
"roles": ["producer", "processor", "licensor"]
38+
},
39+
{
40+
"url": "https://www.earthdata.nasa.gov/dashboard/",
41+
"name": "NASA VEDA",
42+
"roles": ["host"]
43+
}
44+
],
45+
"summaries": {
46+
"datetime": [
47+
"2025-01-01T00:00:00Z",
48+
"2045-01-01T00:00:00Z",
49+
"2065-01-01T00:00:00Z",
50+
"2085-01-01T00:00:00Z"
51+
]
52+
},
53+
"description": "Differences in winter (January, February, and March) cumulative daily precipitation between a historical period (1995 - 2014) and multiple 20-year periods from an ensemble of CMIP6 climate projections (SSP2-4.5) downscaled by NASA Earth Exchange (NEX-GDDP-CMIP6)",
54+
"item_assets": {
55+
"cog_default": {
56+
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
57+
"roles": ["data", "layer"],
58+
"title": "Default COG Layer",
59+
"description": "Cloud optimized default layer to display on map"
60+
}
61+
},
62+
"stac_version": "1.0.0",
63+
"stac_extensions": [
64+
"https://stac-extensions.github.io/render/v1.0.0/schema.json",
65+
"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json",
66+
"https://stac-extensions.github.io/authentication/v1.1.0/schema.json"
67+
],
68+
"dashboard:is_periodic": false,
69+
"dashboard:time_density": "year"
70+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "id": "thomas_fire_barc_201712", "bbox": [ -119.7279834250452, 34.19572604525683, -118.88724142537933, 34.72668711929945 ], "type": "Feature", "links": [ { "rel": "collection", "type": "application/json", "href": "https://test.openveda.cloud/api/stac/collections/barc-thomasfire" }, { "rel": "parent", "type": "application/json", "href": "https://test.openveda.cloud/api/stac/collections/barc-thomasfire" }, { "rel": "root", "type": "application/json", "href": "https://test.openveda.cloud/api/stac/" }, { "rel": "self", "type": "application/geo+json", "href": "https://test.openveda.cloud/api/stac/collections/barc-thomasfire/items/thomas_fire_barc_201712" }, { "title": "Map of Item", "href": "https://test.openveda.cloud/api/raster/collections/barc-thomasfire/items/thomas_fire_barc_201712/WebMercatorQuad/map?assets=cog_default&nodata=nan&rescale=1%2C4&colormap_name=rdylgn_r", "rel": "preview", "type": "text/html" } ], "assets": { "cog_default": { "href": "s3://veda-data-store/barc-thomasfire/thomas_fire_barc_201712.cog.tiff", "type": "image/tiff; application=geotiff", "roles": ["data", "layer"], "title": "Default COG Layer", "proj:bbox": [ -119.7279834250452, 34.19572604525683, -118.88724142537933, 34.72668711929945 ], "proj:epsg": 4326, "proj:wkt2": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]", "proj:shape": [2475, 3919], "description": "Cloud optimized default layer to display on map", "raster:bands": [ { "scale": 1.0, "nodata": 255.0, "offset": 0.0, "sampling": "area", "data_type": "float64", "histogram": { "max": 4.0, "min": 1.0, "count": 11, "buckets": [18444, 0, 0, 50305, 0, 0, 90606, 0, 0, 1620] }, "statistics": { "mean": 2.468408137909613, "stddev": 0.7058915628449338, "maximum": 4.0, "minimum": 1.0, "valid_percent": 24.2970863118238 } } ], "proj:geometry": { "type": "Polygon", "coordinates": [ [ [-119.7279834250452, 34.19572604525683], [-118.88724142537933, 34.19572604525683], [-118.88724142537933, 34.72668711929945], [-119.7279834250452, 34.72668711929945], [-119.7279834250452, 34.19572604525683] ] ] }, "proj:projjson": { "id": { "code": 4326, "authority": "EPSG" }, "name": "WGS 84", "type": "GeographicCRS", "datum": { "name": "World Geodetic System 1984", "type": "GeodeticReferenceFrame", "ellipsoid": { "name": "WGS 84", "semi_major_axis": 6378137, "inverse_flattening": 298.257223563 } }, "$schema": "https://proj.org/schemas/v0.4/projjson.schema.json", "coordinate_system": { "axis": [ { "name": "Geodetic latitude", "unit": "degree", "direction": "north", "abbreviation": "Lat" }, { "name": "Geodetic longitude", "unit": "degree", "direction": "east", "abbreviation": "Lon" } ], "subtype": "ellipsoidal" } }, "proj:transform": [ 0.00021452972688590515, 0.0, -119.7279834250452, 0.0, -0.00021452972688590648, 34.72668711929945, 0.0, 0.0, 1.0 ] }, "rendered_preview": { "title": "Rendered preview", "href": "https://test.openveda.cloud/api/raster/collections/barc-thomasfire/items/thomas_fire_barc_201712/preview.png?assets=cog_default&nodata=nan&rescale=1%2C4&colormap_name=rdylgn_r", "rel": "preview", "roles": ["overview"], "type": "image/png" } }, "geometry": { "type": "Polygon", "coordinates": [ [ [-119.7279834250452, 34.19572604525683], [-118.88724142537933, 34.19572604525683], [-118.88724142537933, 34.72668711929945], [-119.7279834250452, 34.72668711929945], [-119.7279834250452, 34.19572604525683] ] ] }, "collection": "barc-thomasfire", "properties": { "datetime": "2017-12-01T00:00:00+00:00" }, "stac_version": "1.0.0", "stac_extensions": [ "https://stac-extensions.github.io/raster/v1.1.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ] }

0 commit comments

Comments
 (0)