Skip to content

Configuration

Application Extension

The default stac-fastapi-pgstac application comes will all extensions enabled (except transaction). Users can use ENABLED_EXTENSIONS environment variable to limit the supported extensions.

Available values for ENABLED_EXTENSIONS:

  • query
  • sort
  • fields
  • filter
  • free_text (only for collection-search)
  • pagination
  • collection_search

Example: ENABLED_EXTENSIONS="pagination,sort"

Since 6.0.0, the transaction extension is not enabled by default. To add the transaction endpoints, users can set ENABLE_TRANSACTIONS_EXTENSIONS=TRUE/YES/1.

Database config

  • PGUSER: postgres username
  • PGPASSWORD: postgres password
  • PGHOST: hostname for the connection
  • PGPORT: database port
  • PGDATABASE: database name
  • DB_MIN_CONN_SIZE: Number of connection the pool will be initialized with. Defaults to 1
  • DB_MAX_CONN_SIZE Max number of connections in the pool. Defaults to 10
  • DB_MAX_QUERIES: Number of queries after a connection is closed and replaced with a new connection. Defaults to 50000
  • DB_MAX_INACTIVE_CONN_LIFETIME: Number of seconds after which inactive connections in the pool will be closed. Defaults to 300
  • SEARCH_PATH: Postgres search path. Defaults to "pgstac,public"
  • APPLICATION_NAME: PgSTAC Application name. Defaults to "pgstac"
Deprecated

In version 6.0.0 we've renamed the PG configuration variable to match the official naming convention:

  • POSTGRES_USER -> PGUSER
  • POSTGRES_PASS -> PGPASSWORD
  • POSTGRES_HOST_READER -> PGHOST
  • POSTGRES_HOST_WRITER -> PGHOST*
  • POSTGRES_PORT -> PGPORT
  • POSTGRES_DBNAME -> PGDATABASE

* Since version 6.0, users cannot set a different host for writer and reader database but will need to customize the application and pass a specific stac_fastapi.pgstac.config.PostgresSettings instance to the connect_to_db function.

Validation/Serialization

  • ENABLE_RESPONSE_MODELS: use pydantic models to validate endpoint responses. Defaults to False
  • ENABLE_DIRECT_RESPONSE: by-pass the default FastAPI serialization by wrapping the endpoint responses into starlette.Response classes. Defaults to False

Misc

  • STAC_FASTAPI_VERSION (string) is the version number of your API instance (this is not the STAC version)
  • STAC FASTAPI_TITLE (string) should be a self-explanatory title for your API
  • STAC FASTAPI_DESCRIPTION (string) should be a good description for your API. It can contain CommonMark
  • STAC_FASTAPI_LANDING_ID (string) is a unique identifier for your Landing page
  • ROOT_PATH: set application root-path (when using proxy)
  • CORS_ORIGINS: A list of origins that should be permitted to make cross-origin requests. Defaults to *
  • CORS_METHODS: A list of HTTP methods that should be allowed for cross-origin requests. Defaults to "GET,POST,OPTIONS"
  • USE_API_HYDRATE: perform hydration of stac items within stac-fastapi
  • INVALID_ID_CHARS: list of characters that are not allowed in item or collection ids (used in Transaction endpoints)