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
0.8.0 - 2024-10-17
- update
starlette-cramjam
dependency and set compression-level default to 6 - update
morecantile
dependency requirement to allow6.x
0.7.3 - 2024-09-16
- add
TIPG_SORT_COLUMNS
settings to enable/disable columns sorting (default toTrue
) (author @mattdiez-at, #187) - fix
protomaps-leaflet
version in HTML template (co-author @bmcandr, #190)
0.7.2 - 2024-08-27
- move back to
fastapi
dependency
0.7.1 - 2024-05-07
- move to
fastapi-slim
to avoid unwanted dependencies
0.7.0 - 2024-04-01
- update leaflet version
- add
templated=True
in template URL links - add
(Template URL)
in template URL links title - remove deserialization in
tipg.factory.create_html_response
function - add
title
option tocreate_html_response
method, in order to set the web page title - add
**kwargs
tocreate_html_response
method 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
maplibre
withleaflet+protomaps-leaflet
to 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
Field
usage to avoid 3.0 deprecation - update starlette's `TemplateResponse' usage to avoid deprecation
0.6.2 - 2024-01-19
- add
root_path
API settings - fix invalid
url
parsing in HTML responses
0.6.1 - 2024-01-11
- use
spatial_extent
anddatetime_extent
configuration options inCatalogUpdateMiddleware
and/refresh
endpoint (author @hrodmn, #164)
0.6.0 - 2024-01-09
- update FastAPI version lower limit to
>0.107.0
and adapt for new starlette version - fix invalid streaming response formatting
- refactor internal table properties handling
- fix sub-model Table settings (#154)
0.5.8 - 2024-01-10
- fix invalid streaming response formatting [backported from 0.6.0]
0.5.7 - 2024-01-08
- add
tags
to all routes - fix
collections
anditems
HTML templates to keep query-parameters when changing thepage size
- update FastAPI version upper limit to
<0.107.0
to avoid starlette breaking change (0.28)
0.5.6 - 2023-12-19
- Fix collections
prev
links and collections html templates
0.5.5 - 2023-12-19
- Fix
prev
offset value
0.5.4 - 2023-12-19
- Fix decimal error for streaming responses (author @RemcoMeeuwissen, #148)
0.5.3 - 2023-11-29
- add Postgres
date
type as valid datetime column type
0.5.2 - 2023-11-28
- add
TIPG_DB_SPATIAL_EXTENT
andTIPG_DB_DATETIME_EXTENT
environment options to control iftipg
will scan the tables for spatio-temporal extents (author @hrodmn, #143)
0.5.1 - 2023-11-15
- fix for using
is null
in CQL2 filter (#140)
0.5.0 - 2023-11-02
-
add
py.typed
file -
add
tipg.collections.ItemList
andtipg.collections.CollectionList
TypedDictclass 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 (#132)
-
exclude/include tables and functions (#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 anItemList
dict#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_dependency
attribute tocollections_dependency
-
move the
collections_dependency
attribute from theEndpointsFactory
toOGCFeaturesFactory
class -
move
/collections
QueryParameters in theCollectionsParams
dependency -
rename
CatalogParams
toCollectionsParams
-
the
CollectionsParams
now returns aCollectionList
object -
move
s_intersects
andt_intersects
functions fromtipg.factory
totipg.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_dependency
inOGCFeaturesFactory
andOGCTilesFactory
when usingEndpoints
factory - allow Factory's prefix with path parameter
- changed
database_url
type inPostgresSettings
to always be ofpydantic.PostgresDsn
type postgres_port
type inPostgresSettings
to be ofinteger
type- remove additional
/
prefix for dbname when constructing the database url from individual parameters
- changed
function_parameters_query
andproperties_filter_query
from dependencies to simple callabe
0.4.2 - 2023-08-24
- replace stamen basemap by OSM in tiles viewer
limit
option isless than or equal to
to theMAX_FEATURES_PER_QUERY
configuration (instead ofless than
)
0.4.1 - 2023-08-04
- set
custom_sql_directory
inCustomSQLSettings
toNone
to 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
,VectorType
andFilterLang
fromtipg.enums
totipg.dependencies
and useLiteral
instead ofEnum
-
add
func
attribute toCatalogUpdateMiddleware
to 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
/items
and/items/{itemId}
endpoints to increase performance
0.3.1 - 2023-07-28
- fixed wrong media type option for
/queryables
endpoint (json
instead of `schemajson``)
- more endpoints in performance benchmarks
0.3.0 - 2023-07-27
- added
python-dotenv
dependency viapydantic[dotenv]
type
query parameter to filter collections based on their type (Function
orTable
)- fixed a small bug in the
tipg_properties
SQL function where the bounds property was not properly transformed to 4326 (author @RemcoMeeuwissen, #87) - handling functions that are interpreted as collections but lack parameters (author @jackharrhy, #96)
- fixed a bug where Numeric/Decimal postgres datatype could not get serialized by orjson. They will now be encoded as string (author @RemcoMeeuwissen, #89)
- added popups to leaflet maps on
items
anditem
page. (author @krishnaglodha & @jackharrhy, #91, #94) catalog_dependency
to retrieve the list of collections (defaults totipg.dependencies.CatalogParams
)
- pin
geojson-pydantic
to>=0.4.3,<1.0
to avoid geojson-pydantic breaking changes - pin
pydantic
to~=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_catalog
fromtipg.dbmodel
totipg.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