Skip to content

Commit b00370e

Browse files
Add environment variable to disable Transaction extension in provided pgstac app (#495)
* Add environment variable to disable Transaction ext in pgstac app * revert disable transactions env var * Add ENABLED_EXTENSIONS env var for pgstac app * fix quotes
1 parent b94704f commit b00370e

File tree

1 file changed

+27
-11
lines changed
  • stac_fastapi/pgstac/stac_fastapi/pgstac

1 file changed

+27
-11
lines changed

stac_fastapi/pgstac/stac_fastapi/pgstac/app.py

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
"""FastAPI application using PGStac."""
1+
"""FastAPI application using PGStac.
2+
3+
Enables the extensions specified as a comma-delimited list in
4+
the ENABLED_EXTENSIONS environment variable (e.g. `transactions,sort,query`).
5+
If the variable is not set, enables all extensions.
6+
"""
7+
8+
import os
9+
210
from fastapi.responses import ORJSONResponse
311

412
from stac_fastapi.api.app import StacApi
@@ -21,20 +29,28 @@
2129
from stac_fastapi.pgstac.types.search import PgstacSearch
2230

2331
settings = Settings()
24-
extensions = [
25-
TransactionExtension(
32+
extensions_map = {
33+
"transaction": TransactionExtension(
2634
client=TransactionsClient(),
2735
settings=settings,
2836
response_class=ORJSONResponse,
2937
),
30-
QueryExtension(),
31-
SortExtension(),
32-
FieldsExtension(),
33-
TokenPaginationExtension(),
34-
ContextExtension(),
35-
FilterExtension(client=FiltersClient()),
36-
BulkTransactionExtension(client=BulkTransactionsClient()),
37-
]
38+
"query": QueryExtension(),
39+
"sort": SortExtension(),
40+
"fields": FieldsExtension(),
41+
"pagination": TokenPaginationExtension(),
42+
"context": ContextExtension(),
43+
"filter": FilterExtension(client=FiltersClient()),
44+
"bulk_transactions": BulkTransactionExtension(client=BulkTransactionsClient()),
45+
}
46+
47+
if enabled_extensions := os.getenv("ENABLED_EXTENSIONS"):
48+
extensions = [
49+
extensions_map[extension_name]
50+
for extension_name in enabled_extensions.split(",")
51+
]
52+
else:
53+
extensions = list(extensions_map.values())
3854

3955
post_request_model = create_post_request_model(extensions, base_model=PgstacSearch)
4056

0 commit comments

Comments
 (0)