Skip to content

Module stac_fastapi.core.catalogs_client

Catalogs client implementation for multi-tenant catalogs extension.

Variables

logger

Classes

CatalogsClient

class CatalogsClient(
    database: stac_fastapi.core.base_database_logic.BaseDatabaseLogic,
    catalog_serializer: stac_fastapi.core.serializers.CatalogSerializer = <class 'stac_fastapi.core.serializers.CatalogSerializer'>,
    collection_serializer: stac_fastapi.core.serializers.CollectionSerializer = <class 'stac_fastapi.core.serializers.CollectionSerializer'>,
    item_serializer: stac_fastapi.core.serializers.ItemSerializer = <class 'stac_fastapi.core.serializers.ItemSerializer'>
)

Catalogs client implementation for the multi-tenant catalogs extension.

This client implements the AsyncBaseCatalogsClient interface and delegates to the database layer for all catalog operations.

Ancestors (in MRO)

  • stac_fastapi_catalogs_extension.client.AsyncBaseCatalogsClient
  • abc.ABC

Methods

create_catalog

def create_catalog(
    self,
    catalog: stac_pydantic.catalog.Catalog,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.catalog.Catalog | starlette.responses.Response

Create a new catalog.

create_catalog_collection

def create_catalog_collection(
    self,
    catalog_id: str,
    collection: stac_pydantic.collection.Collection | stac_fastapi_catalogs_extension.types.ObjectUri,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.collection.Collection | starlette.responses.Response

Create a new collection or link an existing collection to catalog.

create_sub_catalog

def create_sub_catalog(
    self,
    catalog_id: str,
    catalog: stac_pydantic.catalog.Catalog | stac_fastapi_catalogs_extension.types.ObjectUri,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.catalog.Catalog | starlette.responses.Response

Create a new catalog or link an existing catalog as a sub-catalog.

delete_catalog

def delete_catalog(
    self,
    catalog_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> None

Delete a catalog.

get_catalog

def get_catalog(
    self,
    catalog_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.catalog.Catalog | starlette.responses.Response

Get a specific catalog by ID.

get_catalog_children

def get_catalog_children(
    self,
    catalog_id: str,
    limit: int | None = None,
    token: str | None = None,
    type: Optional[Literal['Catalog', 'Collection']] = None,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_fastapi_catalogs_extension.types.Children | starlette.responses.Response

Get all children (Catalogs and Collections) of a specific catalog.

get_catalog_collection

def get_catalog_collection(
    self,
    catalog_id: str,
    collection_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.collection.Collection | starlette.responses.Response

Get a specific collection from a catalog (Scoped Route).

get_catalog_collection_item

def get_catalog_collection_item(
    self,
    catalog_id: str,
    collection_id: str,
    item_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.item.Item | starlette.responses.Response

Get a specific item from a collection in a catalog.

get_catalog_collection_items

def get_catalog_collection_items(
    self,
    catalog_id: str,
    collection_id: str,
    bbox: list[float] | None = None,
    datetime: str | datetime.datetime | None = None,
    limit: int | None = 10,
    token: str | None = None,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.item_collection.ItemCollection | starlette.responses.Response

Get items from a collection in a catalog with search support.

get_catalog_collections

def get_catalog_collections(
    self,
    catalog_id: str,
    limit: int | None = None,
    token: str | None = None,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.api.collections.Collections | starlette.responses.Response

Get collections linked from a specific catalog.

get_catalog_conformance

def get_catalog_conformance(
    self,
    catalog_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> dict | starlette.responses.Response

Get conformance classes specific to this sub-catalog.

get_catalog_queryables

def get_catalog_queryables(
    self,
    catalog_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> dict | starlette.responses.Response

Get queryable fields available for filtering in this sub-catalog.

get_catalogs

def get_catalogs(
    self,
    limit: int | None = None,
    token: str | None = None,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_fastapi_catalogs_extension.types.Catalogs | starlette.responses.Response

Get all catalogs with pagination support.

get_sub_catalogs

def get_sub_catalogs(
    self,
    catalog_id: str,
    limit: int | None = None,
    token: str | None = None,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_fastapi_catalogs_extension.types.Catalogs | starlette.responses.Response

Get all sub-catalogs of a specific catalog with pagination.

def unlink_catalog_collection(
    self,
    catalog_id: str,
    collection_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> None

Unlink a collection from a catalog.

def unlink_sub_catalog(
    self,
    catalog_id: str,
    sub_catalog_id: str,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> None

Unlink a sub-catalog from its parent.

update_catalog

def update_catalog(
    self,
    catalog_id: str,
    catalog: stac_pydantic.catalog.Catalog,
    request: starlette.requests.Request | None = None,
    **kwargs
) -> stac_pydantic.catalog.Catalog | starlette.responses.Response

Update an existing catalog.