-
2.6.0b81f78ae · ·
Version 2.6.0 ⚠️ Important Note: This version add several quite long migrations. After the migration are run, you should run as a database administrator: ```sql VACUUM FULL pictures, sequences; ``` or use a tool like [pg_repack](https://github.com/reorg/pg_repack) to remove dead tuples and save lot's of space. Note that the vacuum will hold an exclusive lock whereas pg_repack will not. ⚠️ Important Note ⚠️ : This new versions uses postgres [`session_replication_role`](https://www.postgresql.org/docs/current/runtime-config-client.html) for non blocking migrations. This means that the users used to connect to the database must either have superuser privilege, or if postgres version is >= 15, you can grant the permission to the user with: ```psql GRANT SET ON PARAMETER session_replication_role TO you_user; ``` ### Added - API routes returning items embed original datetime with timezone information in a new property `datetimetz`. - New routes offering [MapLibre Style JSON files](https://maplibre.org/maplibre-style-spec/) for each vector tile endpoint (`/api/map/style.json`, `/api/users/me/map/style.json` and `/api/users/:userId/map/style.json`). This will allow more flexibility in offered vector tiles zoom levels and features against clients. These routes are advertised in API landing page with `xyz-style` and `user-xyz-style` links. - A new configuration `DB_CHECK_SCHEMA` to tell GeoVisio not to check the database schema on startup, use only if you know you'll not use GeoVisio before updating its schema. - Pictures metadata now embed pitch & roll information (`pers:pitch` and `pers:roll` fields). - A new configuration `PICTURE_PROCESS_REFRESH_CRON` tell the background workers when to refresh the database stats (they execute the `flask db refresh` command). ### Changed - All sequences geometries have been updated to be split if pictures were too far apart (linked to change done in [this MR](https://gitlab.com/panoramax/server/api/-/merge_requests/244)). - Vector tiles from zoom 0 to 5 now offers a grid of available pictures (instead of simplified sequences). They are computed on-demand, so you may want to run `flask db refresh` once a day to keep them up-to-date. - Doc and links to match the Gitlab organization rename from GeoVisio to Panoramax. ### Fixed - Migration to change LineString sequence geometry into MultiLinestring was not compatible with older PostGIS version, making Docker image not able to migrate populated sequences tables from 2.4 to 2.5. - Route `/api/collections/:cid/geovisio_status` was returning non-empty list of items when no pictures was yet associated to the sequence. - Improve `/api/collections/:cid/geovisio_status` performance for big sequences. - Improve performance of big sequences deletion in database. ### Removed - All binary exif fields are removed from the database. This should save quite a lot of database storage.
-
2.5.0ae750186 · ·
Release 2.5.0 ### Added - Picture search route (`/api/search`) now allows to look for a place that should be visible in pictures. This allows to find pictures for illustrating a POI page. This is done using `place_position`, `place_distance` and `place_fov_tolerance` parameters. - Route `PATCH /api/collections/:id` has new parameters for editing in a single shot all pictures in a sequence: - `relative_heading`: to change all picture headings based on sequence movement track - `sortby`: to change the property used to sort pictures in the sequence (GPS date, file date or file name, either ascending or descending order). - Route `PATCH /api/collections/:col_id/items/:id` has a new parameter for editing a picture's heading. - Add 2 new tables `pictures_changes` and `sequences_changes` to track updates on `pictures` and `sequences`. Those tables are not yet exposed via an http API. ### Changed - Updated Geopic Tag Reader to version 1.0.5 - Variable `DB_URL` is not set by default on the Dockerfile anymore, a real value must be given. - Do not persist binary exif fields. The most notable one is `MakerNote` that took ~15% of the database storage. - Pictures's are now displayed from zoom level 15 in the tiles to lower the tile's size. - Collection geometries are now stored as multilinestrings, and split if pictures are too far apart. ### Fixed - Pytest path in CI for Docker image release. - When searching collections with a bounding box (in `/api/collections` or `/api/users/:id/collection`), a real intersection is done in the search (before, only the bounding box of the collection was considered). - Permission problems in Dockerfile when writing to `/data/geovisio`
-
-
2.3.1573b28e8 · ·
# Release 2.3.1 ### Added - Basic `Cache-Control` headers, only setting `public` or `private` for the moment. - `original_file:size` and `original_file:name` in an item's response's `properties` - User collection list (`/api/users/:id/collection`) now also supports search with `bbox`, as proposed in [STAC _Collection Search_ extension](https://github.com/stac-api-extensions/collection-search). ### Changed - Docker container work directory is now `/opt/geovisio`. - Docker compose file with blurring is lighter, to for easier maintenance. - Update [geo-picture-tag-reader](https://gitlab.com/geovisio/geo-picture-tag-reader) to [1.0.3 version](https://gitlab.com/geovisio/geo-picture-tag-reader/-/tags/1.0.3). ### Removed - Tests in Docker are removed, tests can be run locally and are automatically run through repository CI. - `docker-compose-auth.yml` file, as it is now redundant with `docker-compose-full.yml` (as blurring is separated in a lighter compose file).
-
2.3.0cafce6af · ·
Release 2.3.0 +++ Added - Performance and crash metrics can be sent now to a Sentry server. - (Almost) full list of picture EXIF tags are shown in `properties.exif` field in API routes returning STAC items. Some keys are skipped because of their low added-value and wide size (maker notes, long binary fields). - On route `POST /api/collections/:cid/items`, new `override_Exif.*` and `override_Xmp.*` parameters are available to manually define EXIF or XMP tags to override in picture metadata. You can pass any valid [Exiv2](https://exiv2.org/metadata.html) EXIF/XMP tag in query parameters. - A documentation about [STAC API and GeoVisio API differences](./docs/80_STAC_Compatibility.md). - Sequences can be filtered by their last update time with `GET /api/collections?filter=...` parameter (uses _Common Query Language_ expression). Deleted sequences can also be show using the `filter` `status` (`filter=status='deleted'`). - Picture processing will now be retried (10 times) in case the blurring API fails. - Sequence title can be updated through `PATCH /api/collections/:id` route. +++ Changed - Picture EXIF tags are now stored in database following the [Exiv2](https://exiv2.org/metadata.html) naming scheme. A database migration that could take some time (up to half an hour) is offered to update existing metadata in running instances. - Upgrade Swagger to 5.9 - Fix a deadlock in the database when a picture is deleted while a worker is preparing it. - Sequences last updated date corresponds to either last edit of sequence itself or any pictures it embeds. - Surrounding pictures are listed in details of a single picture (`GET /api/collections/:collectionId/items/:itemId`), as `rel=related` links. - User detailed catalog (`/api/users/:userId/collection`) now offers paginated and filterable results for its `child` links. Query parameter are `filter, limit, sortby`. - Tag reader library update to 1.0.2 to fix various fractions value issues. - `API_MAIN_PAGE` and `API_VIEWER_PAGE` environment variables can now also take a full URL to use instead of default API front-end pages. Useful if you're using a third-party front-end to keep RSS links consistent. +++ Fixed - Tag reader dependency was incorrectly evaluated in pyproject. +++ Deprecated - Parameters `created_before` and `created_after` in `GET /api/collections` route, in favor of `filter` parameter.
-
2.2.002e4bae6 · ·
Release 2.2.0 +++ Changed - [GeoPic Tag Reader](https://gitlab.com/geovisio/geo-picture-tag-reader) updated to 0.4.1 to embed stronger checks on picture coordinates. +++ Fixed - If a picture was having invalid coordinates in its EXIF tags, geometry in database was landing outside of WGS84 bounding box, and `GET /api` returned an invalid spatial extent. API now limits returned bounding box to maximum authorized value for WGS84 projection. +++ Added - a new route: `/api/users/:id/collection` that returns a collection of all the users's collections (can also be accessed with `/api/users/me/collection` with authentication). It's similar to `/api/users/:id/catalog` but with more metadata since a STAC collection is an enhanced STAC catalog.
-
2.1.12952b3b6 · ·
Release 2.1.1 +++ Added - On picture upload, some metadata can be passed through HTTP request parameters instead of being read from picture file EXIF tags. Available metadata overrides are: GPS coordinates, capture time and picture type. This allows API clients to handle a wider set of input files (for example GeoPackage, CSV, Shapefile...) without needing to insert all information into picture file. - To make API compatible with a broader range of clients, the `GET /api/collections/{collectionId}/items` route has new metadata in its `properties` field (`geovisio:producer`, `geovisio:image`, `geovisio:thumbnail`). These properties are duplicated regarding STAC standard (which puts them directly at _Feature_ level) to allow compatibility with clients which only reads metadata from `properties` field (like uMap or QGIS). - A favicon is shown in default API pages. - A RSS feed is now offered to list recently uploaded collections, it can be accessed through `GET /api/collections?format=rss` (or with `Accept: application/rss+xml` HTTP request header). - Collections list (`/api/collections`) now also supports search with `bbox` and `datetime` parameters, as proposed in [STAC _Collection Search_ extension](https://github.com/stac-api-extensions/collection-search). +++ Changed - The Docker compose file `docker-compose-full.yml` now embeds [GeoVisio Website](https://gitlab.com/geovisio/website), available on `localhost:3000`. +++ Fixed - Database migration `20230720_01_EyQ0e-sequences-summary` was having a failing SQL request, causing invalid computed sequence metadata being present in database. - Search parameters `collections` and `ids` for `/api/search` route where not correctly handled when passed through `POST` JSON body.
-
2.1.0278818b4 · ·
Release 2.1.0 +++ Added - A way to customize the picture's license. If none is set, the pictures's license is considered to be proprietary. - A new route `PATCH /api/collections/:cid` is offered to change visibility of a sequence - A way to call the vector tiles as an authenticated user. It is mainly used to be able to see objects only visible for this user. - A `hidden` property in the vector tiles, to mark a sequence or picture as only visible for the owner of this sequence or picture. If the property is not set, the object is visible by all - A new route `DELETE /api/collections/:cid` is offered to delete a collection. The deletion is done asynchronously. - A new route `DELETE /api/collections/:cid/items/:id` is offered to delete a picture - [OpenAPI](https://swagger.io/specification/) conformance tests are now automatically run through `tests/test_api_conformance.sh` script - [Support of pagination](https://github.com/radiantearth/stac-api-spec/tree/main/ogcapi-features#item-pagination) for `GET /api/collections/:cid/items` API route (`first, last, prev, next` relation types) * also support a `?withPicture=:picture_id` query paramater to ask for a page with a specific picture in it - Add a `flask sequences reorder` subcommand to reorder all or some sequences using the picture's datetime. - [Support of pagination](https://github.com/radiantearth/stac-api-spec/blob/master/ogcapi-features/README.md#collection-pagination) for `GET /api/collections` API route (`first, last, prev, next` relation types), with a default limit to 100 sequences retrieved per call - Add 2 optional parameters to the `GET /api/collections` api: `created_after`/`created_before` used to filter the collection by their creation date. +++ Changed - Docker compose files now use `latest` API image instead of `develop` - In default pages (`/` and `/viewer.html`), web viewer version is now synced to current API version instead of develop - Algorithm used for generating smaller versions of pictures changed from _NEAREST_ to _HAMMING_ for better results - API documentation and specifications moved to `/api/docs/swagger` and `/api/docs/specs.json`, and with improved readability of their content - Now heading are recomputed if set to 0 because some camera use this value by default - Hidden pictures will now always be served through the API to be able to check permissions. +++ Fixed - Raw picture bytes are sent to blurring API instead of Pillow-based version, avoiding various issues (too large files, missing EXIF) - Docker-compose files are now compatible with MacOS (replaced `network_mode: host` to use a more classic approach) - Some CORS HTTP headers were missing in API responses to allow client send credentials
-
-
-
-
-
-
-
-
-
-
-