|  | 
| 1 | 1 | """FastAPI application.""" | 
| 2 | 2 | 
 | 
|  | 3 | +import logging | 
| 3 | 4 | import os | 
| 4 | 5 | from contextlib import asynccontextmanager | 
| 5 | 6 | 
 | 
|  | 
| 23 | 24 | from stac_fastapi.core.rate_limit import setup_rate_limit | 
| 24 | 25 | from stac_fastapi.core.route_dependencies import get_route_dependencies | 
| 25 | 26 | from stac_fastapi.core.session import Session | 
|  | 27 | +from stac_fastapi.core.utilities import get_bool_env | 
| 26 | 28 | from stac_fastapi.elasticsearch.config import ElasticsearchSettings | 
| 27 | 29 | from stac_fastapi.elasticsearch.database_logic import ( | 
| 28 | 30 |     DatabaseLogic, | 
|  | 
| 39 | 41 | ) | 
| 40 | 42 | from stac_fastapi.extensions.third_party import BulkTransactionExtension | 
| 41 | 43 | 
 | 
|  | 44 | +logging.basicConfig(level=logging.INFO) | 
|  | 45 | +logger = logging.getLogger(__name__) | 
|  | 46 | + | 
|  | 47 | +TRANSACTIONS_EXTENSIONS = get_bool_env("ENABLE_TRANSACTIONS_EXTENSIONS", default=True) | 
|  | 48 | +logger.info("TRANSACTIONS_EXTENSIONS is set to %s", TRANSACTIONS_EXTENSIONS) | 
|  | 49 | + | 
| 42 | 50 | settings = ElasticsearchSettings() | 
| 43 | 51 | session = Session.create_from_settings(settings) | 
| 44 | 52 | 
 | 
|  | 
| 60 | 68 | aggregation_extension.GET = EsAggregationExtensionGetRequest | 
| 61 | 69 | 
 | 
| 62 | 70 | search_extensions = [ | 
| 63 |  | -    TransactionExtension( | 
| 64 |  | -        client=TransactionsClient( | 
| 65 |  | -            database=database_logic, session=session, settings=settings | 
| 66 |  | -        ), | 
| 67 |  | -        settings=settings, | 
| 68 |  | -    ), | 
| 69 |  | -    BulkTransactionExtension( | 
| 70 |  | -        client=BulkTransactionsClient( | 
| 71 |  | -            database=database_logic, | 
| 72 |  | -            session=session, | 
| 73 |  | -            settings=settings, | 
| 74 |  | -        ) | 
| 75 |  | -    ), | 
| 76 | 71 |     FieldsExtension(), | 
| 77 | 72 |     QueryExtension(), | 
| 78 | 73 |     SortExtension(), | 
|  | 
| 81 | 76 |     FreeTextExtension(), | 
| 82 | 77 | ] | 
| 83 | 78 | 
 | 
|  | 79 | +if TRANSACTIONS_EXTENSIONS: | 
|  | 80 | +    search_extensions.insert( | 
|  | 81 | +        0, | 
|  | 82 | +        TransactionExtension( | 
|  | 83 | +            client=TransactionsClient( | 
|  | 84 | +                database=database_logic, session=session, settings=settings | 
|  | 85 | +            ), | 
|  | 86 | +            settings=settings, | 
|  | 87 | +        ), | 
|  | 88 | +    ) | 
|  | 89 | +    search_extensions.insert( | 
|  | 90 | +        1, | 
|  | 91 | +        BulkTransactionExtension( | 
|  | 92 | +            client=BulkTransactionsClient( | 
|  | 93 | +                database=database_logic, | 
|  | 94 | +                session=session, | 
|  | 95 | +                settings=settings, | 
|  | 96 | +            ) | 
|  | 97 | +        ), | 
|  | 98 | +    ) | 
|  | 99 | + | 
| 84 | 100 | extensions = [aggregation_extension] + search_extensions | 
| 85 | 101 | 
 | 
| 86 | 102 | database_logic.extensions = [type(ext).__name__ for ext in extensions] | 
|  | 
0 commit comments