All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Note: Minor version 0.X.0 update might break the API, It's recommended to pin tipg to minor version: tipg>=0.1,<0.2
- move back to
fastapidependency
0.7.1 - 2024-05-07
- move to
fastapi-slimto avoid unwanted dependencies
0.7.0 - 2024-04-01
- update leaflet version
- add
templated=Truein template URL links - add
(Template URL)in template URL links title - remove deserialization in
tipg.factory.create_html_responsefunction - add
titleoption tocreate_html_responsemethod, in order to set the web page title - add
**kwargstocreate_html_responsemethod to allow custom object to be passed to the template - fix url/path passed to the HTML template
- fix HTML templates when passing Query Parameters
- replace
maplibrewithleaflet+protomaps-leafletto support other TMS in the HTMLviewer - deprecate non-tilematrixset prefixed endpoints for tiles/tilejson/stylejson/viewer to better match with the OGC Spec breaking
- re-order endpoints
- remove Z limit to support negative values
0.6.3 - 2024-02-02
- update pydantic's
Fieldusage to avoid 3.0 deprecation - update starlette's `TemplateResponse' usage to avoid deprecation
0.6.2 - 2024-01-19
- add
root_pathAPI settings - fix invalid
urlparsing in HTML responses
0.6.1 - 2024-01-11
- use
spatial_extentanddatetime_extentconfiguration options inCatalogUpdateMiddlewareand/refreshendpoint (author @hrodmn, developmentseed#164)
0.6.0 - 2024-01-09
- update FastAPI version lower limit to
>0.107.0and adapt for new starlette version - fix invalid streaming response formatting
- refactor internal table properties handling
- fix sub-model Table settings (developmentseed#154)
0.5.8 - 2024-01-10
- fix invalid streaming response formatting [backported from 0.6.0]
0.5.7 - 2024-01-08
- add
tagsto all routes - fix
collectionsanditemsHTML templates to keep query-parameters when changing thepage size - update FastAPI version upper limit to
<0.107.0to avoid starlette breaking change (0.28)
0.5.6 - 2023-12-19
- Fix collections
prevlinks and collections html templates
0.5.5 - 2023-12-19
- Fix
prevoffset value
0.5.4 - 2023-12-19
- Fix decimal error for streaming responses (author @RemcoMeeuwissen, developmentseed#148)
0.5.3 - 2023-11-29
- add Postgres
datetype as valid datetime column type
0.5.2 - 2023-11-28
- add
TIPG_DB_SPATIAL_EXTENTandTIPG_DB_DATETIME_EXTENTenvironment options to control iftipgwill scan the tables for spatio-temporal extents (author @hrodmn, developmentseed#143)
0.5.1 - 2023-11-15
- fix for using
is nullin CQL2 filter (developmentseed#140)
0.5.0 - 2023-11-02
-
add
py.typedfile -
add
tipg.collections.ItemListandtipg.collections.CollectionListTypedDictclass ItemList(TypedDict): """Items.""" items: List[Feature] matched: Optional[int] next: Optional[int] prev: Optional[int] class CollectionList(TypedDict): """Collections.""" collections: List[Collection] matched: Optional[int] next: Optional[int] prev: Optional[int]
-
hide map element in HTML pages when collections/items do not have spatial component (developmentseed#132)
-
exclude/include tables and functions (developmentseed#130)
-
split endpoints registration for more customization
# before class OGCFeaturesFactory(EndpointsFactory): def register_routes(self): @self.router.get("/collections", ...) @self.router.get("/collections/{collectionId}", ...) ... # now class OGCFeaturesFactory(EndpointsFactory): def register_routes(self): self._collections_route() self._collection_route() self._queryables_route() self._items_route() self._item_route() def _collections_route(self): @self.router.get("/collections", ...) ...
-
Collection.features()method now returns anItemListdict#before collection = Collection() features_collection, matched = collection.features(...) #now collection = Collection() items_list = collection.features(...) print(items_list["matched"]) # Number of matched items for the query print(items_list["next"]) # Next Offset print(items_list["prev"]) # Previous Offset
-
rename
catalog_dependencyattribute tocollections_dependency -
move the
collections_dependencyattribute from theEndpointsFactorytoOGCFeaturesFactoryclass -
move
/collectionsQueryParameters in theCollectionsParamsdependency -
rename
CatalogParamstoCollectionsParams -
the
CollectionsParamsnow returns aCollectionListobject -
move
s_intersectsandt_intersectsfunctions fromtipg.factorytotipg.dependencies
0.4.4 - 2023-10-03
- replace
string_to_table(...)byunnest(string_to_array(...))to support Postgres<14
- update pydantic minimum version to >=2.4
0.4.3 - 2023-08-28
- forward
catalog_dependencyinOGCFeaturesFactoryandOGCTilesFactorywhen usingEndpointsfactory - allow Factory's prefix with path parameter
- changed
database_urltype inPostgresSettingsto always be ofpydantic.PostgresDsntype postgres_porttype inPostgresSettingsto be ofintegertype- remove additional
/prefix for dbname when constructing the database url from individual parameters
- changed
function_parameters_queryandproperties_filter_queryfrom dependencies to simple callabe
0.4.2 - 2023-08-24
- replace stamen basemap by OSM in tiles viewer
limitoption isless than or equal toto theMAX_FEATURES_PER_QUERYconfiguration (instead ofless than)
0.4.1 - 2023-08-04
- set
custom_sql_directoryinCustomSQLSettingstoNoneto ensure it can be properly optional
0.4.0 - 2023-08-01
-
update requirement to switch to pydantic~=2.0
- morecantile>=5.0,<6.0
- pydantic~=2.0
- pydantic-settings~=2.0
- geojson-pydantic>=1.0,<2.0
- fastapi>=0.100
-
move
ResponseType,QueryablesResponseType,ItemsResponseType,ItemResponseType,VectorResponseType,VectorTypeandFilterLangfromtipg.enumstotipg.dependenciesand useLiteralinstead ofEnum -
add
funcattribute toCatalogUpdateMiddlewareto allow custom Catalog Update function# Before app.add_middleware( CatalogUpdateMiddleware, ttl=300, ) # Now app.add_middleware( CatalogUpdateMiddleware, func=register_collection_catalog, ttl=300, )
-
add global variables for conformance classes
- remove usage of pydantic models in
/itemsand/items/{itemId}endpoints to increase performance
0.3.1 - 2023-07-28
- fixed wrong media type option for
/queryablesendpoint (jsoninstead of `schemajson``)
- more endpoints in performance benchmarks
0.3.0 - 2023-07-27
- added
python-dotenvdependency viapydantic[dotenv] typequery parameter to filter collections based on their type (FunctionorTable)- fixed a small bug in the
tipg_propertiesSQL function where the bounds property was not properly transformed to 4326 (author @RemcoMeeuwissen, developmentseed#87) - handling functions that are interpreted as collections but lack parameters (author @jackharrhy, developmentseed#96)
- fixed a bug where Numeric/Decimal postgres datatype could not get serialized by orjson. They will now be encoded as string (author @RemcoMeeuwissen, developmentseed#89)
- added popups to leaflet maps on
itemsanditempage. (author @krishnaglodha & @jackharrhy, developmentseed#91, developmentseed#94) catalog_dependencyto retrieve the list of collections (defaults totipg.dependencies.CatalogParams)
- pin
geojson-pydanticto>=0.4.3,<1.0to avoid geojson-pydantic breaking changes - pin
pydanticto~=1.0
0.2.0 - 2023-06-22
-
rename
tipg.db->tipg.database -
rename
tipg.dbmodel->tipg.collections -
rename
tipg.dbmodel.Database->tipg.collections.Catalog -
move
register_collection_catalogfromtipg.dbmodeltotipg.collections# before from tipg.db import close_db_connection, connect_to_db from tipg.db import register_collection_catalog from tipg.dbmodel import Database, Collection # now from tipg.collections import Catalog, Collection from tipg.collections import register_collection_catalog from tipg.database import close_db_connection, connect_to_db
- remove useless
app.state.db_settings
0.1.0 - 2023-06-15
- Initial release