stac-fastapi-elasticsearch 6.2.1__tar.gz → 6.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/PKG-INFO +41 -46
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/README.md +39 -20
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/setup.py +2 -2
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/app.py +32 -3
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/database_logic.py +2 -2
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/version.py +1 -1
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/PKG-INFO +42 -47
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/requires.txt +2 -2
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/top_level.txt +0 -1
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/setup.cfg +0 -0
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/__init__.py +0 -0
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/config.py +0 -0
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/SOURCES.txt +0 -0
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/dependency_links.txt +0 -0
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/entry_points.txt +0 -0
- {stac_fastapi_elasticsearch-6.2.1 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/not-zip-safe +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: stac_fastapi_elasticsearch
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.3.0
|
|
4
4
|
Summary: An implementation of STAC API based on the FastAPI framework with both Elasticsearch and Opensearch.
|
|
5
5
|
Home-page: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch
|
|
6
6
|
License: MIT
|
|
@@ -15,33 +15,9 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
15
15
|
Classifier: License :: OSI Approved :: MIT License
|
|
16
16
|
Requires-Python: >=3.9
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
|
-
Requires-Dist: stac-fastapi-core==6.2.1
|
|
19
|
-
Requires-Dist: sfeos-helpers==6.2.1
|
|
20
|
-
Requires-Dist: elasticsearch[async]~=8.18.0
|
|
21
|
-
Requires-Dist: uvicorn~=0.23.0
|
|
22
|
-
Requires-Dist: starlette<0.36.0,>=0.35.0
|
|
23
18
|
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: pytest~=7.0.0; extra == "dev"
|
|
25
|
-
Requires-Dist: pytest-cov~=4.0.0; extra == "dev"
|
|
26
|
-
Requires-Dist: pytest-asyncio~=0.21.0; extra == "dev"
|
|
27
|
-
Requires-Dist: pre-commit~=3.0.0; extra == "dev"
|
|
28
|
-
Requires-Dist: ciso8601~=2.3.0; extra == "dev"
|
|
29
|
-
Requires-Dist: httpx<0.28.0,>=0.24.0; extra == "dev"
|
|
30
19
|
Provides-Extra: docs
|
|
31
|
-
Requires-Dist: mkdocs~=1.4.0; extra == "docs"
|
|
32
|
-
Requires-Dist: mkdocs-material~=9.0.0; extra == "docs"
|
|
33
|
-
Requires-Dist: pdocs~=1.2.0; extra == "docs"
|
|
34
20
|
Provides-Extra: server
|
|
35
|
-
Requires-Dist: uvicorn[standard]~=0.23.0; extra == "server"
|
|
36
|
-
Dynamic: classifier
|
|
37
|
-
Dynamic: description
|
|
38
|
-
Dynamic: description-content-type
|
|
39
|
-
Dynamic: home-page
|
|
40
|
-
Dynamic: license
|
|
41
|
-
Dynamic: provides-extra
|
|
42
|
-
Dynamic: requires-dist
|
|
43
|
-
Dynamic: requires-python
|
|
44
|
-
Dynamic: summary
|
|
45
21
|
|
|
46
22
|
# stac-fastapi-elasticsearch-opensearch
|
|
47
23
|
|
|
@@ -111,26 +87,43 @@ This project is built on the following technologies: STAC, stac-fastapi, FastAPI
|
|
|
111
87
|
|
|
112
88
|
## Table of Contents
|
|
113
89
|
|
|
114
|
-
- [
|
|
115
|
-
- [
|
|
116
|
-
- [
|
|
117
|
-
- [
|
|
118
|
-
- [
|
|
119
|
-
- [
|
|
120
|
-
- [
|
|
121
|
-
- [
|
|
122
|
-
- [
|
|
123
|
-
- [
|
|
124
|
-
- [
|
|
125
|
-
- [
|
|
126
|
-
- [
|
|
127
|
-
- [
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- [
|
|
131
|
-
- [
|
|
132
|
-
- [
|
|
133
|
-
- [
|
|
90
|
+
- [stac-fastapi-elasticsearch-opensearch](#stac-fastapi-elasticsearch-opensearch)
|
|
91
|
+
- [Sponsors \& Supporters](#sponsors--supporters)
|
|
92
|
+
- [Project Introduction - What is SFEOS?](#project-introduction---what-is-sfeos)
|
|
93
|
+
- [Common Deployment Patterns](#common-deployment-patterns)
|
|
94
|
+
- [Technologies](#technologies)
|
|
95
|
+
- [Table of Contents](#table-of-contents)
|
|
96
|
+
- [Documentation \& Resources](#documentation--resources)
|
|
97
|
+
- [Package Structure](#package-structure)
|
|
98
|
+
- [Examples](#examples)
|
|
99
|
+
- [Performance](#performance)
|
|
100
|
+
- [Direct Response Mode](#direct-response-mode)
|
|
101
|
+
- [Quick Start](#quick-start)
|
|
102
|
+
- [Installation](#installation)
|
|
103
|
+
- [Running Locally](#running-locally)
|
|
104
|
+
- [Using Pre-built Docker Images](#using-pre-built-docker-images)
|
|
105
|
+
- [Using Docker Compose](#using-docker-compose)
|
|
106
|
+
- [Configuration Reference](#configuration-reference)
|
|
107
|
+
- [Datetime-Based Index Management](#datetime-based-index-management)
|
|
108
|
+
- [Overview](#overview)
|
|
109
|
+
- [When to Use](#when-to-use)
|
|
110
|
+
- [Configuration](#configuration)
|
|
111
|
+
- [Enabling Datetime-Based Indexing](#enabling-datetime-based-indexing)
|
|
112
|
+
- [Related Configuration Variables](#related-configuration-variables)
|
|
113
|
+
- [How Datetime-Based Indexing Works](#how-datetime-based-indexing-works)
|
|
114
|
+
- [Index and Alias Naming Convention](#index-and-alias-naming-convention)
|
|
115
|
+
- [Index Size Management](#index-size-management)
|
|
116
|
+
- [Interacting with the API](#interacting-with-the-api)
|
|
117
|
+
- [Configure the API](#configure-the-api)
|
|
118
|
+
- [Collection Pagination](#collection-pagination)
|
|
119
|
+
- [Ingesting Sample Data CLI Tool](#ingesting-sample-data-cli-tool)
|
|
120
|
+
- [Elasticsearch Mappings](#elasticsearch-mappings)
|
|
121
|
+
- [Managing Elasticsearch Indices](#managing-elasticsearch-indices)
|
|
122
|
+
- [Snapshots](#snapshots)
|
|
123
|
+
- [Reindexing](#reindexing)
|
|
124
|
+
- [Auth](#auth)
|
|
125
|
+
- [Aggregation](#aggregation)
|
|
126
|
+
- [Rate Limiting](#rate-limiting)
|
|
134
127
|
|
|
135
128
|
## Documentation & Resources
|
|
136
129
|
|
|
@@ -273,6 +266,8 @@ You can customize additional settings in your `.env` file:
|
|
|
273
266
|
| `DATABASE_REFRESH` | Controls whether database operations refresh the index immediately after changes. If set to `true`, changes will be immediately searchable. If set to `false`, changes may not be immediately visible but can improve performance for bulk operations. If set to `wait_for`, changes will wait for the next refresh cycle to become visible. | `false` | Optional |
|
|
274
267
|
| `ENABLE_TRANSACTIONS_EXTENSIONS` | Enables or disables the Transactions and Bulk Transactions API extensions. If set to `false`, the POST `/collections` route and related transaction endpoints (including bulk transaction operations) will be unavailable in the API. This is useful for deployments where mutating the catalog via the API should be prevented. | `true` | Optional |
|
|
275
268
|
| `STAC_ITEM_LIMIT` | Sets the environment variable for result limiting to SFEOS for the number of returned items and STAC collections. | `10` | Optional |
|
|
269
|
+
| `STAC_INDEX_ASSETS` | Controls if Assets are indexed when added to Elasticsearch/Opensearch. This allows asset fields to be included in search queries. | `false` | Optional |
|
|
270
|
+
| `ENV_MAX_LIMIT` | Configures the environment variable in SFEOS to override the default `MAX_LIMIT`, which controls the limit parameter for returned items and STAC collections. | `10,000` | Optional |
|
|
276
271
|
|
|
277
272
|
> [!NOTE]
|
|
278
273
|
> The variables `ES_HOST`, `ES_PORT`, `ES_USE_SSL`, `ES_VERIFY_CERTS` and `ES_TIMEOUT` apply to both Elasticsearch and OpenSearch backends, so there is no need to rename the key names to `OS_` even if you're using OpenSearch.
|
|
@@ -66,26 +66,43 @@ This project is built on the following technologies: STAC, stac-fastapi, FastAPI
|
|
|
66
66
|
|
|
67
67
|
## Table of Contents
|
|
68
68
|
|
|
69
|
-
- [
|
|
70
|
-
- [
|
|
71
|
-
- [
|
|
72
|
-
- [
|
|
73
|
-
- [
|
|
74
|
-
- [
|
|
75
|
-
- [
|
|
76
|
-
- [
|
|
77
|
-
- [
|
|
78
|
-
- [
|
|
79
|
-
- [
|
|
80
|
-
- [
|
|
81
|
-
- [
|
|
82
|
-
- [
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
- [
|
|
86
|
-
- [
|
|
87
|
-
- [
|
|
88
|
-
- [
|
|
69
|
+
- [stac-fastapi-elasticsearch-opensearch](#stac-fastapi-elasticsearch-opensearch)
|
|
70
|
+
- [Sponsors \& Supporters](#sponsors--supporters)
|
|
71
|
+
- [Project Introduction - What is SFEOS?](#project-introduction---what-is-sfeos)
|
|
72
|
+
- [Common Deployment Patterns](#common-deployment-patterns)
|
|
73
|
+
- [Technologies](#technologies)
|
|
74
|
+
- [Table of Contents](#table-of-contents)
|
|
75
|
+
- [Documentation \& Resources](#documentation--resources)
|
|
76
|
+
- [Package Structure](#package-structure)
|
|
77
|
+
- [Examples](#examples)
|
|
78
|
+
- [Performance](#performance)
|
|
79
|
+
- [Direct Response Mode](#direct-response-mode)
|
|
80
|
+
- [Quick Start](#quick-start)
|
|
81
|
+
- [Installation](#installation)
|
|
82
|
+
- [Running Locally](#running-locally)
|
|
83
|
+
- [Using Pre-built Docker Images](#using-pre-built-docker-images)
|
|
84
|
+
- [Using Docker Compose](#using-docker-compose)
|
|
85
|
+
- [Configuration Reference](#configuration-reference)
|
|
86
|
+
- [Datetime-Based Index Management](#datetime-based-index-management)
|
|
87
|
+
- [Overview](#overview)
|
|
88
|
+
- [When to Use](#when-to-use)
|
|
89
|
+
- [Configuration](#configuration)
|
|
90
|
+
- [Enabling Datetime-Based Indexing](#enabling-datetime-based-indexing)
|
|
91
|
+
- [Related Configuration Variables](#related-configuration-variables)
|
|
92
|
+
- [How Datetime-Based Indexing Works](#how-datetime-based-indexing-works)
|
|
93
|
+
- [Index and Alias Naming Convention](#index-and-alias-naming-convention)
|
|
94
|
+
- [Index Size Management](#index-size-management)
|
|
95
|
+
- [Interacting with the API](#interacting-with-the-api)
|
|
96
|
+
- [Configure the API](#configure-the-api)
|
|
97
|
+
- [Collection Pagination](#collection-pagination)
|
|
98
|
+
- [Ingesting Sample Data CLI Tool](#ingesting-sample-data-cli-tool)
|
|
99
|
+
- [Elasticsearch Mappings](#elasticsearch-mappings)
|
|
100
|
+
- [Managing Elasticsearch Indices](#managing-elasticsearch-indices)
|
|
101
|
+
- [Snapshots](#snapshots)
|
|
102
|
+
- [Reindexing](#reindexing)
|
|
103
|
+
- [Auth](#auth)
|
|
104
|
+
- [Aggregation](#aggregation)
|
|
105
|
+
- [Rate Limiting](#rate-limiting)
|
|
89
106
|
|
|
90
107
|
## Documentation & Resources
|
|
91
108
|
|
|
@@ -228,6 +245,8 @@ You can customize additional settings in your `.env` file:
|
|
|
228
245
|
| `DATABASE_REFRESH` | Controls whether database operations refresh the index immediately after changes. If set to `true`, changes will be immediately searchable. If set to `false`, changes may not be immediately visible but can improve performance for bulk operations. If set to `wait_for`, changes will wait for the next refresh cycle to become visible. | `false` | Optional |
|
|
229
246
|
| `ENABLE_TRANSACTIONS_EXTENSIONS` | Enables or disables the Transactions and Bulk Transactions API extensions. If set to `false`, the POST `/collections` route and related transaction endpoints (including bulk transaction operations) will be unavailable in the API. This is useful for deployments where mutating the catalog via the API should be prevented. | `true` | Optional |
|
|
230
247
|
| `STAC_ITEM_LIMIT` | Sets the environment variable for result limiting to SFEOS for the number of returned items and STAC collections. | `10` | Optional |
|
|
248
|
+
| `STAC_INDEX_ASSETS` | Controls if Assets are indexed when added to Elasticsearch/Opensearch. This allows asset fields to be included in search queries. | `false` | Optional |
|
|
249
|
+
| `ENV_MAX_LIMIT` | Configures the environment variable in SFEOS to override the default `MAX_LIMIT`, which controls the limit parameter for returned items and STAC collections. | `10,000` | Optional |
|
|
231
250
|
|
|
232
251
|
> [!NOTE]
|
|
233
252
|
> The variables `ES_HOST`, `ES_PORT`, `ES_USE_SSL`, `ES_VERIFY_CERTS` and `ES_TIMEOUT` apply to both Elasticsearch and OpenSearch backends, so there is no need to rename the key names to `OS_` even if you're using OpenSearch.
|
|
@@ -6,8 +6,8 @@ with open("README.md") as f:
|
|
|
6
6
|
desc = f.read()
|
|
7
7
|
|
|
8
8
|
install_requires = [
|
|
9
|
-
"stac-fastapi-core==6.
|
|
10
|
-
"sfeos-helpers==6.
|
|
9
|
+
"stac-fastapi-core==6.3.0",
|
|
10
|
+
"sfeos-helpers==6.3.0",
|
|
11
11
|
"elasticsearch[async]~=8.18.0",
|
|
12
12
|
"uvicorn~=0.23.0",
|
|
13
13
|
"starlette>=0.35.0,<0.36.0",
|
|
@@ -7,7 +7,12 @@ from contextlib import asynccontextmanager
|
|
|
7
7
|
from fastapi import FastAPI
|
|
8
8
|
|
|
9
9
|
from stac_fastapi.api.app import StacApi
|
|
10
|
-
from stac_fastapi.api.models import
|
|
10
|
+
from stac_fastapi.api.models import (
|
|
11
|
+
ItemCollectionUri,
|
|
12
|
+
create_get_request_model,
|
|
13
|
+
create_post_request_model,
|
|
14
|
+
create_request_model,
|
|
15
|
+
)
|
|
11
16
|
from stac_fastapi.core.core import (
|
|
12
17
|
BulkTransactionsClient,
|
|
13
18
|
CoreClient,
|
|
@@ -38,7 +43,10 @@ from stac_fastapi.extensions.core import (
|
|
|
38
43
|
TokenPaginationExtension,
|
|
39
44
|
TransactionExtension,
|
|
40
45
|
)
|
|
46
|
+
from stac_fastapi.extensions.core.fields import FieldsConformanceClasses
|
|
41
47
|
from stac_fastapi.extensions.core.filter import FilterConformanceClasses
|
|
48
|
+
from stac_fastapi.extensions.core.query import QueryConformanceClasses
|
|
49
|
+
from stac_fastapi.extensions.core.sort import SortConformanceClasses
|
|
42
50
|
from stac_fastapi.extensions.third_party import BulkTransactionExtension
|
|
43
51
|
from stac_fastapi.sfeos_helpers.aggregation import EsAsyncBaseAggregationClient
|
|
44
52
|
from stac_fastapi.sfeos_helpers.filter import EsAsyncBaseFiltersClient
|
|
@@ -54,6 +62,7 @@ session = Session.create_from_settings(settings)
|
|
|
54
62
|
|
|
55
63
|
database_logic = DatabaseLogic()
|
|
56
64
|
|
|
65
|
+
|
|
57
66
|
filter_extension = FilterExtension(
|
|
58
67
|
client=EsAsyncBaseFiltersClient(database=database_logic)
|
|
59
68
|
)
|
|
@@ -77,8 +86,11 @@ aggregation_extension = AggregationExtension(
|
|
|
77
86
|
aggregation_extension.POST = EsAggregationExtensionPostRequest
|
|
78
87
|
aggregation_extension.GET = EsAggregationExtensionGetRequest
|
|
79
88
|
|
|
89
|
+
fields_extension = FieldsExtension()
|
|
90
|
+
fields_extension.conformance_classes.append(FieldsConformanceClasses.ITEMS)
|
|
91
|
+
|
|
80
92
|
search_extensions = [
|
|
81
|
-
|
|
93
|
+
fields_extension,
|
|
82
94
|
QueryExtension(),
|
|
83
95
|
SortExtension(),
|
|
84
96
|
TokenPaginationExtension(),
|
|
@@ -114,10 +126,26 @@ database_logic.extensions = [type(ext).__name__ for ext in extensions]
|
|
|
114
126
|
|
|
115
127
|
post_request_model = create_post_request_model(search_extensions)
|
|
116
128
|
|
|
129
|
+
items_get_request_model = create_request_model(
|
|
130
|
+
model_name="ItemCollectionUri",
|
|
131
|
+
base_model=ItemCollectionUri,
|
|
132
|
+
extensions=[
|
|
133
|
+
SortExtension(
|
|
134
|
+
conformance_classes=[SortConformanceClasses.ITEMS],
|
|
135
|
+
),
|
|
136
|
+
QueryExtension(
|
|
137
|
+
conformance_classes=[QueryConformanceClasses.ITEMS],
|
|
138
|
+
),
|
|
139
|
+
filter_extension,
|
|
140
|
+
FieldsExtension(conformance_classes=[FieldsConformanceClasses.ITEMS]),
|
|
141
|
+
],
|
|
142
|
+
request_type="GET",
|
|
143
|
+
)
|
|
144
|
+
|
|
117
145
|
app_config = {
|
|
118
146
|
"title": os.getenv("STAC_FASTAPI_TITLE", "stac-fastapi-elasticsearch"),
|
|
119
147
|
"description": os.getenv("STAC_FASTAPI_DESCRIPTION", "stac-fastapi-elasticsearch"),
|
|
120
|
-
"api_version": os.getenv("STAC_FASTAPI_VERSION", "6.
|
|
148
|
+
"api_version": os.getenv("STAC_FASTAPI_VERSION", "6.0.0"),
|
|
121
149
|
"settings": settings,
|
|
122
150
|
"extensions": extensions,
|
|
123
151
|
"client": CoreClient(
|
|
@@ -128,6 +156,7 @@ app_config = {
|
|
|
128
156
|
),
|
|
129
157
|
"search_get_request_model": create_get_request_model(search_extensions),
|
|
130
158
|
"search_post_request_model": post_request_model,
|
|
159
|
+
"items_get_request_model": items_get_request_model,
|
|
131
160
|
"route_dependencies": get_route_dependencies(),
|
|
132
161
|
}
|
|
133
162
|
|
|
@@ -17,7 +17,7 @@ from starlette.requests import Request
|
|
|
17
17
|
|
|
18
18
|
from stac_fastapi.core.base_database_logic import BaseDatabaseLogic
|
|
19
19
|
from stac_fastapi.core.serializers import CollectionSerializer, ItemSerializer
|
|
20
|
-
from stac_fastapi.core.utilities import
|
|
20
|
+
from stac_fastapi.core.utilities import bbox2polygon, get_max_limit
|
|
21
21
|
from stac_fastapi.elasticsearch.config import AsyncElasticsearchSettings
|
|
22
22
|
from stac_fastapi.elasticsearch.config import (
|
|
23
23
|
ElasticsearchSettings as SyncElasticsearchSettings,
|
|
@@ -543,7 +543,7 @@ class DatabaseLogic(BaseDatabaseLogic):
|
|
|
543
543
|
index_param = ITEM_INDICES
|
|
544
544
|
query = add_collections_to_body(collection_ids, query)
|
|
545
545
|
|
|
546
|
-
max_result_window =
|
|
546
|
+
max_result_window = get_max_limit()
|
|
547
547
|
|
|
548
548
|
size_limit = min(limit + 1, max_result_window)
|
|
549
549
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""library version."""
|
|
2
|
-
__version__ = "6.
|
|
2
|
+
__version__ = "6.3.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
2
|
-
Name:
|
|
3
|
-
Version: 6.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: stac-fastapi-elasticsearch
|
|
3
|
+
Version: 6.3.0
|
|
4
4
|
Summary: An implementation of STAC API based on the FastAPI framework with both Elasticsearch and Opensearch.
|
|
5
5
|
Home-page: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch
|
|
6
6
|
License: MIT
|
|
@@ -15,33 +15,9 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
15
15
|
Classifier: License :: OSI Approved :: MIT License
|
|
16
16
|
Requires-Python: >=3.9
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
|
-
Requires-Dist: stac-fastapi-core==6.2.1
|
|
19
|
-
Requires-Dist: sfeos-helpers==6.2.1
|
|
20
|
-
Requires-Dist: elasticsearch[async]~=8.18.0
|
|
21
|
-
Requires-Dist: uvicorn~=0.23.0
|
|
22
|
-
Requires-Dist: starlette<0.36.0,>=0.35.0
|
|
23
18
|
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: pytest~=7.0.0; extra == "dev"
|
|
25
|
-
Requires-Dist: pytest-cov~=4.0.0; extra == "dev"
|
|
26
|
-
Requires-Dist: pytest-asyncio~=0.21.0; extra == "dev"
|
|
27
|
-
Requires-Dist: pre-commit~=3.0.0; extra == "dev"
|
|
28
|
-
Requires-Dist: ciso8601~=2.3.0; extra == "dev"
|
|
29
|
-
Requires-Dist: httpx<0.28.0,>=0.24.0; extra == "dev"
|
|
30
19
|
Provides-Extra: docs
|
|
31
|
-
Requires-Dist: mkdocs~=1.4.0; extra == "docs"
|
|
32
|
-
Requires-Dist: mkdocs-material~=9.0.0; extra == "docs"
|
|
33
|
-
Requires-Dist: pdocs~=1.2.0; extra == "docs"
|
|
34
20
|
Provides-Extra: server
|
|
35
|
-
Requires-Dist: uvicorn[standard]~=0.23.0; extra == "server"
|
|
36
|
-
Dynamic: classifier
|
|
37
|
-
Dynamic: description
|
|
38
|
-
Dynamic: description-content-type
|
|
39
|
-
Dynamic: home-page
|
|
40
|
-
Dynamic: license
|
|
41
|
-
Dynamic: provides-extra
|
|
42
|
-
Dynamic: requires-dist
|
|
43
|
-
Dynamic: requires-python
|
|
44
|
-
Dynamic: summary
|
|
45
21
|
|
|
46
22
|
# stac-fastapi-elasticsearch-opensearch
|
|
47
23
|
|
|
@@ -111,26 +87,43 @@ This project is built on the following technologies: STAC, stac-fastapi, FastAPI
|
|
|
111
87
|
|
|
112
88
|
## Table of Contents
|
|
113
89
|
|
|
114
|
-
- [
|
|
115
|
-
- [
|
|
116
|
-
- [
|
|
117
|
-
- [
|
|
118
|
-
- [
|
|
119
|
-
- [
|
|
120
|
-
- [
|
|
121
|
-
- [
|
|
122
|
-
- [
|
|
123
|
-
- [
|
|
124
|
-
- [
|
|
125
|
-
- [
|
|
126
|
-
- [
|
|
127
|
-
- [
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- [
|
|
131
|
-
- [
|
|
132
|
-
- [
|
|
133
|
-
- [
|
|
90
|
+
- [stac-fastapi-elasticsearch-opensearch](#stac-fastapi-elasticsearch-opensearch)
|
|
91
|
+
- [Sponsors \& Supporters](#sponsors--supporters)
|
|
92
|
+
- [Project Introduction - What is SFEOS?](#project-introduction---what-is-sfeos)
|
|
93
|
+
- [Common Deployment Patterns](#common-deployment-patterns)
|
|
94
|
+
- [Technologies](#technologies)
|
|
95
|
+
- [Table of Contents](#table-of-contents)
|
|
96
|
+
- [Documentation \& Resources](#documentation--resources)
|
|
97
|
+
- [Package Structure](#package-structure)
|
|
98
|
+
- [Examples](#examples)
|
|
99
|
+
- [Performance](#performance)
|
|
100
|
+
- [Direct Response Mode](#direct-response-mode)
|
|
101
|
+
- [Quick Start](#quick-start)
|
|
102
|
+
- [Installation](#installation)
|
|
103
|
+
- [Running Locally](#running-locally)
|
|
104
|
+
- [Using Pre-built Docker Images](#using-pre-built-docker-images)
|
|
105
|
+
- [Using Docker Compose](#using-docker-compose)
|
|
106
|
+
- [Configuration Reference](#configuration-reference)
|
|
107
|
+
- [Datetime-Based Index Management](#datetime-based-index-management)
|
|
108
|
+
- [Overview](#overview)
|
|
109
|
+
- [When to Use](#when-to-use)
|
|
110
|
+
- [Configuration](#configuration)
|
|
111
|
+
- [Enabling Datetime-Based Indexing](#enabling-datetime-based-indexing)
|
|
112
|
+
- [Related Configuration Variables](#related-configuration-variables)
|
|
113
|
+
- [How Datetime-Based Indexing Works](#how-datetime-based-indexing-works)
|
|
114
|
+
- [Index and Alias Naming Convention](#index-and-alias-naming-convention)
|
|
115
|
+
- [Index Size Management](#index-size-management)
|
|
116
|
+
- [Interacting with the API](#interacting-with-the-api)
|
|
117
|
+
- [Configure the API](#configure-the-api)
|
|
118
|
+
- [Collection Pagination](#collection-pagination)
|
|
119
|
+
- [Ingesting Sample Data CLI Tool](#ingesting-sample-data-cli-tool)
|
|
120
|
+
- [Elasticsearch Mappings](#elasticsearch-mappings)
|
|
121
|
+
- [Managing Elasticsearch Indices](#managing-elasticsearch-indices)
|
|
122
|
+
- [Snapshots](#snapshots)
|
|
123
|
+
- [Reindexing](#reindexing)
|
|
124
|
+
- [Auth](#auth)
|
|
125
|
+
- [Aggregation](#aggregation)
|
|
126
|
+
- [Rate Limiting](#rate-limiting)
|
|
134
127
|
|
|
135
128
|
## Documentation & Resources
|
|
136
129
|
|
|
@@ -273,6 +266,8 @@ You can customize additional settings in your `.env` file:
|
|
|
273
266
|
| `DATABASE_REFRESH` | Controls whether database operations refresh the index immediately after changes. If set to `true`, changes will be immediately searchable. If set to `false`, changes may not be immediately visible but can improve performance for bulk operations. If set to `wait_for`, changes will wait for the next refresh cycle to become visible. | `false` | Optional |
|
|
274
267
|
| `ENABLE_TRANSACTIONS_EXTENSIONS` | Enables or disables the Transactions and Bulk Transactions API extensions. If set to `false`, the POST `/collections` route and related transaction endpoints (including bulk transaction operations) will be unavailable in the API. This is useful for deployments where mutating the catalog via the API should be prevented. | `true` | Optional |
|
|
275
268
|
| `STAC_ITEM_LIMIT` | Sets the environment variable for result limiting to SFEOS for the number of returned items and STAC collections. | `10` | Optional |
|
|
269
|
+
| `STAC_INDEX_ASSETS` | Controls if Assets are indexed when added to Elasticsearch/Opensearch. This allows asset fields to be included in search queries. | `false` | Optional |
|
|
270
|
+
| `ENV_MAX_LIMIT` | Configures the environment variable in SFEOS to override the default `MAX_LIMIT`, which controls the limit parameter for returned items and STAC collections. | `10,000` | Optional |
|
|
276
271
|
|
|
277
272
|
> [!NOTE]
|
|
278
273
|
> The variables `ES_HOST`, `ES_PORT`, `ES_USE_SSL`, `ES_VERIFY_CERTS` and `ES_TIMEOUT` apply to both Elasticsearch and OpenSearch backends, so there is no need to rename the key names to `OS_` even if you're using OpenSearch.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|