Skip to content

Commit 7611903

Browse files
committed
Merge branch 'main' of github.com:stac-utils/stac-fastapi into patch_endpoints
2 parents fefd493 + 20ae9cf commit 7611903

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1543
-466
lines changed

.github/workflows/cicd.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
strategy:
1212
matrix:
13-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
13+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
1414
timeout-minutes: 20
1515

1616
steps:
@@ -24,7 +24,7 @@ jobs:
2424
python-version: ${{ matrix.python-version }}
2525

2626
- name: Lint code
27-
if: ${{ matrix.python-version == 3.8 }}
27+
if: ${{ matrix.python-version == 3.13 }}
2828
run: |
2929
python -m pip install pre-commit
3030
pre-commit run --all-files
@@ -63,7 +63,7 @@ jobs:
6363
- name: Setup Python
6464
uses: actions/setup-python@v5
6565
with:
66-
python-version: "3.11"
66+
python-version: "3.13"
6767

6868
- name: Install types
6969
run: |

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ jobs:
2727
TWINE_USERNAME: ${{ secrets.PYPI_STACUTILS_USERNAME }}
2828
TWINE_PASSWORD: ${{ secrets.PYPI_STACUTILS_PASSWORD }}
2929
run: |
30-
scripts/publish
30+
scripts/publish

CHANGES.md

Lines changed: 139 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,134 @@
44

55
* Add Item and Collection `PATCH` endpoints with support for [RFC 6902](https://tools.ietf.org/html/rfc6902) and [RFC 7396](https://tools.ietf.org/html/rfc7386)
66

7+
## [5.1.1] - 2025-03-17
8+
9+
### Fixed
10+
11+
- allow bbox with 6 coordinates (3D) in `GET` requests
12+
13+
## [5.1.0] - 2025-03-07
14+
15+
### Added
16+
17+
- titles in `Landing` page links
18+
19+
### Changed
20+
21+
- remove `child` links (`collections`) in landing page response
22+
23+
## [5.0.3] - 2025-03-03
24+
25+
### Added
26+
27+
- added descriptive message to `types.search.str2bbox` length assert
28+
29+
### Fixed
30+
31+
- fix collection-search POST request model:
32+
- fix pydantic model to make sure class variables `_start_date` and `_end_date` not edited (ported from stac-pydantic)
33+
- fix bbox validation to allow anti-meridian crossing (ported from stac-pydantic)
34+
35+
## [5.0.2] - 2025-01-30
36+
37+
### Fixed
38+
39+
- forward `prefix` to `ItemCollectionFilterExtension.router`
40+
41+
## [5.0.1] - 2025-01-30
42+
43+
### Fixed
44+
45+
- add `Queryables` links when `SearchFilterExtension` is enabled
46+
47+
## [5.0.0] - 2025-01-30
48+
49+
### Changed
50+
51+
- refactored conformance classes for extensions
52+
53+
- renamed `collection_search.ConformanceClasses` -> `collection_search.CollectionSearchConformanceClasses`
54+
- removed `FREETEXT`, `FILTER`, `QUERY`, `SORT` and `FIELDS` entries from the `CollectionSearchConformanceClasses` Enum (and moved to each extension's Enum)
55+
- changed `collection_search.CollectionSearchPostExtension.from_extension(ext)` to use the conformance classes from the input extensions to derive the output conformance classes.
56+
- added `fields.FieldsConformanceClasses` Enum
57+
- renamed `filter.FilterConformanceClasses.FEATURES_FILTER` -> `filter.FilterConformanceClasses.ITEMS`
58+
- renamed `filter.FilterConformanceClasses.ITEM_SEARCH_FILTER` -> `filter.FilterConformanceClasses.SEARCH`
59+
- added `filter.FilterConformanceClasses.COLLECTIONS`
60+
- added `filter.SearchFilterExtension`, `filter.ItemCollectionFilterExtension` and `filter.CollectionSearchFilterExtension` endpoint specific extensions
61+
- removed `FreeTextConformanceClasses.COLLECTIONS` and `FreeTextConformanceClasses.ITEMS` in `FreeTextExtension` and `FreeTextAdvancedExtension` default conformances classes
62+
- added `query.QueryConformanceClasses` Enum
63+
- added `SortConformanceClasses` Enum
64+
65+
- removed `StacApi.customize_openapi` method
66+
- reordered `StacApi` attributes (moved `title`, `api_version` and `description` before `app`)
67+
68+
### Added
69+
70+
* forward `StacApi.title`, `StacApi.api_version` and `Stac.Api.description` to the FastAPI application
71+
72+
## [4.0.1] - 2025-01-23
73+
74+
### Changed
75+
76+
- sort conformance classes
77+
78+
### Fixed
79+
80+
* support `forwarded` headers in `ProxyHeaderMiddleware` that do not contain a host key ([#788](https://github.com/stac-utils/stac-fastapi/pull/788))
81+
82+
## [4.0.0] - 2025-01-17
83+
84+
### Changed
85+
86+
* use `string` type instead of python `datetime.datetime` for datetime parameter in `BaseSearchGetRequest`, `ItemCollectionUri` and `BaseCollectionSearchGetRequest` GET models
87+
* rename `filter` to `filter_expr` for `FilterExtensionGetRequest` and `FilterExtensionPostRequest` attributes to avoid conflict with python filter method
88+
* remove deprecated `post_request_model` attribute in `BaseCoreClient` and `AsyncBaseCoreClient`
89+
* remove `python3.8` support
90+
91+
### Fixed
92+
93+
* Support multiple proxy servers in the `forwarded` header in `ProxyHeaderMiddleware` ([#782](https://github.com/stac-utils/stac-fastapi/pull/782))
94+
95+
## [3.0.5] - 2025-01-10
96+
97+
### Removed
98+
99+
* Remove `warnings` in `CollectionSearchExtension.from_extensions()` methods when passing `unknown` extensions
100+
101+
## [3.0.4] - 2025-01-08
102+
103+
### Removed
104+
105+
* Remove deprecated `context` property in `types.stac.ItemCollection` model
106+
107+
### Added
108+
109+
* Add `numberMatched` and `numberReturned` properties in `types.stac.ItemCollection` model
110+
* Add `numberMatched` and `numberReturned` properties in `types.stac.Collections` model
111+
* Add `root_path` to `stac_fastapi.types.config.ApiSettings` and use it in the default FastAPI application
112+
* Add `python3.13` support
113+
114+
## Changed
115+
116+
* Use `stac_pydantic.version.STAC_VERSION` instead of `stac_pydantic.api.version.STAC_API_VERSION` as application `stac_version`
117+
* Return more informations from pydantic validation errors
118+
* Add deprecation notice for `post_request_model` attribute in `BaseCoreClient` and `AsyncBaseCoreClient`
119+
120+
## [3.0.3] - 2024-10-09
121+
122+
### Removed
123+
124+
* Removed `cql2-text` in supported `filter-lang` for `FilterExtensionPostRequest` model (as per specification)
125+
126+
### Added
127+
128+
* Add `OffsetPaginationExtension` extension to add `offset` query/body parameter to endpoints
129+
130+
## [3.0.2] - 2024-09-20
131+
7132
### Added
8133

9-
* Add `from_extensions()` method to `CollectionSearchExtension` and `CollectionSearchPostExtension` extensions to build the class based on a list of available extensions.
134+
* Add `from_extensions()` method to `CollectionSearchExtension` and `CollectionSearchPostExtension` extensions to build the class based on a list of available extensions ([#745](https://github.com/stac-utils/stac-fastapi/pull/745))
10135

11136
## [3.0.1] - 2024-08-27
12137

@@ -479,7 +604,19 @@ Full changelog: https://stac-utils.github.io/stac-fastapi/migrations/v3.0.0/#cha
479604

480605
* First PyPi release!
481606

482-
[Unreleased]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.1..main>
607+
[Unreleased]: <https://github.com/stac-utils/stac-fastapi/compare/5.1.1..main>
608+
[5.1.1]: <https://github.com/stac-utils/stac-fastapi/compare/5.1.0..5.1.1>
609+
[5.1.0]: <https://github.com/stac-utils/stac-fastapi/compare/5.0.3..5.1.0>
610+
[5.0.3]: <https://github.com/stac-utils/stac-fastapi/compare/5.0.2..5.0.3>
611+
[5.0.2]: <https://github.com/stac-utils/stac-fastapi/compare/5.0.1..5.0.2>
612+
[5.0.1]: <https://github.com/stac-utils/stac-fastapi/compare/5.0.0..5.0.1>
613+
[5.0.0]: <https://github.com/stac-utils/stac-fastapi/compare/4.0.1..5.0.0>
614+
[4.0.1]: <https://github.com/stac-utils/stac-fastapi/compare/4.0.0..4.0.1>
615+
[4.0.0]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.5..4.0.0>
616+
[3.0.5]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.4..3.0.5>
617+
[3.0.4]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.3..3.0.4>
618+
[3.0.3]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.2..3.0.3>
619+
[3.0.2]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.1..3.0.2>
483620
[3.0.1]: <https://github.com/stac-utils/stac-fastapi/compare/3.0.0..3.0.1>
484621
[3.0.0]: <https://github.com/stac-utils/stac-fastapi/compare/2.5.5.post1..3.0.0>
485622
[2.5.5.post1]: <https://github.com/stac-utils/stac-fastapi/compare/2.5.5..2.5.5.post1>

README.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
<a href="https://github.com/stac-utils/stac-fastapi/actions?query=workflow%3Acicd" target="_blank">
99
<img src="https://github.com/stac-utils/stac-fastapi/workflows/stac-fastapi/badge.svg" alt="Test">
1010
</a>
11-
<a href="https://pypi.org/project/stac-fastapi" target="_blank">
12-
<img src="https://img.shields.io/pypi/v/stac-fastapi.api?color=%2334D058&label=pypi%20package" alt="Package version">
13-
</a>
1411
<a href="https://github.com/stac-utils/stac-fastapi/blob/main/LICENSE" target="_blank">
1512
<img src="https://img.shields.io/github/license/stac-utils/stac-fastapi.svg" alt="License">
1613
</a>
@@ -27,17 +24,19 @@
2724
Python library for building a STAC compliant FastAPI application. The project is split up into several namespace
2825
packages:
2926

30-
- **stac_fastapi.api**: An API layer which enforces the [stac-api-spec](https://github.com/radiantearth/stac-api-spec).
31-
- **stac_fastapi.extensions**: Abstract base classes for [STAC API extensions](https://github.com/radiantearth/stac-api-spec/blob/master/extensions.md) and third-party extensions.
32-
- **stac_fastapi.types**: Shared types and abstract base classes used by the library.
27+
| Package | Description | Version
28+
| ------- |------------- | -------
29+
[**stac_fastapi.api**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/api) | An API layer which enforces the [stac-api-spec](https://github.com/radiantearth/stac-api-spec). | [![stac-fastapi.api](https://img.shields.io/pypi/v/stac-fastapi.api?color=%2334D058&label=pypi)](https://pypi.org/project/stac-fastapi.api)
30+
[**stac_fastapi.extensions**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/extensions) | Abstract base classes for [STAC API extensions](https://github.com/radiantearth/stac-api-spec/blob/master/extensions.md) and third-party extensions. | [![stac-fastapi.extensions](https://img.shields.io/pypi/v/stac-fastapi.extensions?color=%2334D058&label=pypi)](https://pypi.org/project/stac-fastapi.extensions)
31+
[**stac_fastapi.types**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/types) | Shared types and abstract base classes used by the library. | [![stac-fastapi.types](https://img.shields.io/pypi/v/stac-fastapi.types?color=%2334D058&label=pypi)](https://pypi.org/project/stac-fastapi.types)
3332

3433
#### Backends
3534

3635
Backends are hosted in their own repositories:
3736

3837
- [stac-fastapi-pgstac](https://github.com/stac-utils/stac-fastapi-pgstac): Postgres backend implementation with [PgSTAC](https://github.com/stac-utils/pgstac).
38+
- [stac-fastapi-elasticsearch](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch): Backend implementation with [Elasticsearch](https://github.com/elastic/elasticsearch).
3939
- [stac-fastapi-sqlalchemy](https://github.com/stac-utils/stac-fastapi-sqlalchemy): Postgres backend implementation with [sqlalchemy](https://www.sqlalchemy.org/).
40-
- [stac-fastapi-elasticsearch](https://github.com/stac-utils/stac-fastapi-elasticsearch): Backend implementation with [Elasticsearch](https://github.com/elastic/elasticsearch).
4140

4241
`stac-fastapi` was initially developed by [arturo-ai](https://github.com/arturo-ai).
4342

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0.1
1+
5.1.1

docs/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ nav:
8080
- version: api/stac_fastapi/types/version.md
8181
- Migration Guides:
8282
- v2.5 -> v3.0: migrations/v3.0.0.md
83+
- v3.0 -> v4.0: migrations/v4.0.0.md
8384
- Performance Benchmarks: benchmarks.html
8485
- Development - Contributing: "contributing.md"
8586
- Release Notes: "release-notes.md"

0 commit comments

Comments
 (0)