stac-fastapi-elasticsearch 6.2.0__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.
Files changed (16) hide show
  1. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/PKG-INFO +41 -21
  2. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/README.md +40 -20
  3. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/setup.py +2 -2
  4. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/app.py +32 -3
  5. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/database_logic.py +8 -4
  6. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/version.py +1 -1
  7. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/PKG-INFO +41 -21
  8. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/requires.txt +2 -2
  9. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/setup.cfg +0 -0
  10. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/__init__.py +0 -0
  11. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi/elasticsearch/config.py +0 -0
  12. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/SOURCES.txt +0 -0
  13. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/dependency_links.txt +0 -0
  14. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/entry_points.txt +0 -0
  15. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/not-zip-safe +0 -0
  16. {stac_fastapi_elasticsearch-6.2.0 → stac_fastapi_elasticsearch-6.3.0}/stac_fastapi_elasticsearch.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stac_fastapi_elasticsearch
3
- Version: 6.2.0
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
@@ -87,26 +87,43 @@ This project is built on the following technologies: STAC, stac-fastapi, FastAPI
87
87
 
88
88
  ## Table of Contents
89
89
 
90
- - [Documentation & Resources](#documentation--resources)
91
- - [Package Structure](#package-structure)
92
- - [Examples](#examples)
93
- - [Performance](#performance)
94
- - [Quick Start](#quick-start)
95
- - [Installation](#installation)
96
- - [Running Locally](#running-locally)
97
- - [Configuration reference](#configuration-reference)
98
- - [Interacting with the API](#interacting-with-the-api)
99
- - [Configure the API](#configure-the-api)
100
- - [Collection pagination](#collection-pagination)
101
- - [Ingesting Sample Data CLI Tool](#ingesting-sample-data-cli-tool)
102
- - [Elasticsearch Mappings](#elasticsearch-mappings)
103
- - [Managing Elasticsearch Indices](#managing-elasticsearch-indices)
104
- - [Snapshots](#snapshots)
105
- - [Reindexing](#reindexing)
106
- - [Auth](#auth)
107
- - [Aggregation](#aggregation)
108
- - [Rate Limiting](#rate-limiting)
109
- - [Datetime-Based Index Management](#datetime-based-index-management)
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)
110
127
 
111
128
  ## Documentation & Resources
112
129
 
@@ -248,6 +265,9 @@ You can customize additional settings in your `.env` file:
248
265
  | `RAISE_ON_BULK_ERROR` | Controls whether bulk insert operations raise exceptions on errors. If set to `true`, the operation will stop and raise an exception when an error occurs. If set to `false`, errors will be logged, and the operation will continue. **Note:** STAC Item and ItemCollection validation errors will always raise, regardless of this flag. | `false` | Optional |
249
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 |
250
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 |
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 |
251
271
 
252
272
  > [!NOTE]
253
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
- - [Documentation & Resources](#documentation--resources)
70
- - [Package Structure](#package-structure)
71
- - [Examples](#examples)
72
- - [Performance](#performance)
73
- - [Quick Start](#quick-start)
74
- - [Installation](#installation)
75
- - [Running Locally](#running-locally)
76
- - [Configuration reference](#configuration-reference)
77
- - [Interacting with the API](#interacting-with-the-api)
78
- - [Configure the API](#configure-the-api)
79
- - [Collection pagination](#collection-pagination)
80
- - [Ingesting Sample Data CLI Tool](#ingesting-sample-data-cli-tool)
81
- - [Elasticsearch Mappings](#elasticsearch-mappings)
82
- - [Managing Elasticsearch Indices](#managing-elasticsearch-indices)
83
- - [Snapshots](#snapshots)
84
- - [Reindexing](#reindexing)
85
- - [Auth](#auth)
86
- - [Aggregation](#aggregation)
87
- - [Rate Limiting](#rate-limiting)
88
- - [Datetime-Based Index Management](#datetime-based-index-management)
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
 
@@ -227,6 +244,9 @@ You can customize additional settings in your `.env` file:
227
244
  | `RAISE_ON_BULK_ERROR` | Controls whether bulk insert operations raise exceptions on errors. If set to `true`, the operation will stop and raise an exception when an error occurs. If set to `false`, errors will be logged, and the operation will continue. **Note:** STAC Item and ItemCollection validation errors will always raise, regardless of this flag. | `false` | Optional |
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 |
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 |
230
250
 
231
251
  > [!NOTE]
232
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.2.0",
10
- "sfeos-helpers==6.2.0",
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 create_get_request_model, create_post_request_model
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
- FieldsExtension(),
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.2.0"),
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 MAX_LIMIT, bbox2polygon
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 = MAX_LIMIT
546
+ max_result_window = get_max_limit()
547
547
 
548
548
  size_limit = min(limit + 1, max_result_window)
549
549
 
@@ -886,6 +886,7 @@ class DatabaseLogic(BaseDatabaseLogic):
886
886
  item_id=item_id,
887
887
  operations=operations,
888
888
  base_url=base_url,
889
+ create_nest=True,
889
890
  refresh=refresh,
890
891
  )
891
892
 
@@ -895,6 +896,7 @@ class DatabaseLogic(BaseDatabaseLogic):
895
896
  item_id: str,
896
897
  operations: List[PatchOperation],
897
898
  base_url: str,
899
+ create_nest: bool = False,
898
900
  refresh: bool = True,
899
901
  ) -> Item:
900
902
  """Database logic for json patching an item following RF6902.
@@ -929,7 +931,7 @@ class DatabaseLogic(BaseDatabaseLogic):
929
931
  else:
930
932
  script_operations.append(operation)
931
933
 
932
- script = operations_to_script(script_operations)
934
+ script = operations_to_script(script_operations, create_nest=create_nest)
933
935
 
934
936
  try:
935
937
  search_response = await self.client.search(
@@ -1265,6 +1267,7 @@ class DatabaseLogic(BaseDatabaseLogic):
1265
1267
  collection_id=collection_id,
1266
1268
  operations=operations,
1267
1269
  base_url=base_url,
1270
+ create_nest=True,
1268
1271
  refresh=refresh,
1269
1272
  )
1270
1273
 
@@ -1273,6 +1276,7 @@ class DatabaseLogic(BaseDatabaseLogic):
1273
1276
  collection_id: str,
1274
1277
  operations: List[PatchOperation],
1275
1278
  base_url: str,
1279
+ create_nest: bool = False,
1276
1280
  refresh: bool = True,
1277
1281
  ) -> Collection:
1278
1282
  """Database logic for json patching a collection following RF6902.
@@ -1300,7 +1304,7 @@ class DatabaseLogic(BaseDatabaseLogic):
1300
1304
  else:
1301
1305
  script_operations.append(operation)
1302
1306
 
1303
- script = operations_to_script(script_operations)
1307
+ script = operations_to_script(script_operations, create_nest=create_nest)
1304
1308
 
1305
1309
  try:
1306
1310
  await self.client.update(
@@ -1,2 +1,2 @@
1
1
  """library version."""
2
- __version__ = "6.2.0"
2
+ __version__ = "6.3.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stac-fastapi-elasticsearch
3
- Version: 6.2.0
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
@@ -87,26 +87,43 @@ This project is built on the following technologies: STAC, stac-fastapi, FastAPI
87
87
 
88
88
  ## Table of Contents
89
89
 
90
- - [Documentation & Resources](#documentation--resources)
91
- - [Package Structure](#package-structure)
92
- - [Examples](#examples)
93
- - [Performance](#performance)
94
- - [Quick Start](#quick-start)
95
- - [Installation](#installation)
96
- - [Running Locally](#running-locally)
97
- - [Configuration reference](#configuration-reference)
98
- - [Interacting with the API](#interacting-with-the-api)
99
- - [Configure the API](#configure-the-api)
100
- - [Collection pagination](#collection-pagination)
101
- - [Ingesting Sample Data CLI Tool](#ingesting-sample-data-cli-tool)
102
- - [Elasticsearch Mappings](#elasticsearch-mappings)
103
- - [Managing Elasticsearch Indices](#managing-elasticsearch-indices)
104
- - [Snapshots](#snapshots)
105
- - [Reindexing](#reindexing)
106
- - [Auth](#auth)
107
- - [Aggregation](#aggregation)
108
- - [Rate Limiting](#rate-limiting)
109
- - [Datetime-Based Index Management](#datetime-based-index-management)
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)
110
127
 
111
128
  ## Documentation & Resources
112
129
 
@@ -248,6 +265,9 @@ You can customize additional settings in your `.env` file:
248
265
  | `RAISE_ON_BULK_ERROR` | Controls whether bulk insert operations raise exceptions on errors. If set to `true`, the operation will stop and raise an exception when an error occurs. If set to `false`, errors will be logged, and the operation will continue. **Note:** STAC Item and ItemCollection validation errors will always raise, regardless of this flag. | `false` | Optional |
249
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 |
250
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 |
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 |
251
271
 
252
272
  > [!NOTE]
253
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.
@@ -1,5 +1,5 @@
1
- stac-fastapi-core==6.2.0
2
- sfeos-helpers==6.2.0
1
+ stac-fastapi-core==6.3.0
2
+ sfeos-helpers==6.3.0
3
3
  elasticsearch[async]~=8.18.0
4
4
  uvicorn~=0.23.0
5
5
  starlette<0.36.0,>=0.35.0