geovisio 2.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- geovisio-2.1.0/.dockerignore +11 -0
- geovisio-2.1.0/.flaskenv +1 -0
- geovisio-2.1.0/.gitignore +10 -0
- geovisio-2.1.0/.gitlab-ci.yml +231 -0
- geovisio-2.1.0/.pre-commit-config.yaml +5 -0
- geovisio-2.1.0/CHANGELOG.md +317 -0
- geovisio-2.1.0/CODE_OF_CONDUCT.md +134 -0
- geovisio-2.1.0/Dockerfile +36 -0
- geovisio-2.1.0/LICENSE +21 -0
- geovisio-2.1.0/Makefile +12 -0
- geovisio-2.1.0/PKG-INFO +111 -0
- geovisio-2.1.0/Procfile +1 -0
- geovisio-2.1.0/README.md +68 -0
- geovisio-2.1.0/bin/post_compile +4 -0
- geovisio-2.1.0/docker/docker-compose-auth.yml +80 -0
- geovisio-2.1.0/docker/docker-compose-blurring.yml +18 -0
- geovisio-2.1.0/docker/docker-compose-full.yml +130 -0
- geovisio-2.1.0/docker/docker-compose-keycloak.yml +22 -0
- geovisio-2.1.0/docker/docker-compose-minio.yml +35 -0
- geovisio-2.1.0/docker/docker-entrypoint.sh +50 -0
- geovisio-2.1.0/docker/keycloak-realm.json +2005 -0
- geovisio-2.1.0/docker-compose.yml +35 -0
- geovisio-2.1.0/docs/01_Start.md +28 -0
- geovisio-2.1.0/docs/07_Database_setup.md +53 -0
- geovisio-2.1.0/docs/10_Install_Classic.md +32 -0
- geovisio-2.1.0/docs/10_Install_Scalingo.md +9 -0
- geovisio-2.1.0/docs/11_Server_settings.md +108 -0
- geovisio-2.1.0/docs/12_External_Identity_Providers.md +82 -0
- geovisio-2.1.0/docs/13_Pictures_processing.md +52 -0
- geovisio-2.1.0/docs/14_Running_Classic.md +114 -0
- geovisio-2.1.0/docs/14_Running_Docker.md +118 -0
- geovisio-2.1.0/docs/15_Pictures_requirements.md +27 -0
- geovisio-2.1.0/docs/16_Using_API.md +205 -0
- geovisio-2.1.0/docs/17_Blur_API.md +25 -0
- geovisio-2.1.0/docs/19_Develop_server.md +131 -0
- geovisio-2.1.0/docs/90_Releases.md +26 -0
- geovisio-2.1.0/geovisio/__init__.py +276 -0
- geovisio-2.1.0/geovisio/auth.py +471 -0
- geovisio-2.1.0/geovisio/config_app.py +170 -0
- geovisio-2.1.0/geovisio/configuration.py +44 -0
- geovisio-2.1.0/geovisio/db_migrations.py +87 -0
- geovisio-2.1.0/geovisio/docs.py +323 -0
- geovisio-2.1.0/geovisio/errors.py +52 -0
- geovisio-2.1.0/geovisio/filesystems.py +122 -0
- geovisio-2.1.0/geovisio/map.py +196 -0
- geovisio-2.1.0/geovisio/pictures.py +687 -0
- geovisio-2.1.0/geovisio/runner_pictures.py +735 -0
- geovisio-2.1.0/geovisio/setup.cfg +34 -0
- geovisio-2.1.0/geovisio/stac.py +2190 -0
- geovisio-2.1.0/geovisio/tasks/__init__.py +1 -0
- geovisio-2.1.0/geovisio/tasks/reorder_sequences.py +94 -0
- geovisio-2.1.0/geovisio/templates/main.html +91 -0
- geovisio-2.1.0/geovisio/templates/viewer.html +32 -0
- geovisio-2.1.0/geovisio/tokens.py +377 -0
- geovisio-2.1.0/geovisio/users.py +46 -0
- geovisio-2.1.0/geovisio/utils.py +35 -0
- geovisio-2.1.0/images/big_picture.png +0 -0
- geovisio-2.1.0/images/big_picture.svg +436 -0
- geovisio-2.1.0/images/geovisio_authentication_flow.svg +16 -0
- geovisio-2.1.0/images/logo.png +0 -0
- geovisio-2.1.0/images/logo.svg +156 -0
- geovisio-2.1.0/images/logo_full.png +0 -0
- geovisio-2.1.0/images/logo_full.svg +191 -0
- geovisio-2.1.0/images/screenshot.jpg +0 -0
- geovisio-2.1.0/images/sponsors.png +0 -0
- geovisio-2.1.0/migrations/20221201_01_wpCGc-initial-schema.rollback.sql +9 -0
- geovisio-2.1.0/migrations/20221201_01_wpCGc-initial-schema.sql +71 -0
- geovisio-2.1.0/migrations/20221201_02_ZG8AR-camera-information.py +40 -0
- geovisio-2.1.0/migrations/20221222_01_fsB6f-add-account.rollback.sql +7 -0
- geovisio-2.1.0/migrations/20221222_01_fsB6f-add-account.sql +33 -0
- geovisio-2.1.0/migrations/20230113_01_0co97-rm-metadata-duplicates.rollback.sql +5 -0
- geovisio-2.1.0/migrations/20230113_01_0co97-rm-metadata-duplicates.sql +5 -0
- geovisio-2.1.0/migrations/20230116_01_9PkjZ-add-oauth-provider.rollback.sql +12 -0
- geovisio-2.1.0/migrations/20230116_01_9PkjZ-add-oauth-provider.sql +10 -0
- geovisio-2.1.0/migrations/20230117_01_K71Pd-pictures-ts-index.rollback.sql +4 -0
- geovisio-2.1.0/migrations/20230117_01_K71Pd-pictures-ts-index.sql +4 -0
- geovisio-2.1.0/migrations/20230130_01_VRIv2-sequences-account.rollback.sql +5 -0
- geovisio-2.1.0/migrations/20230130_01_VRIv2-sequences-account.sql +25 -0
- geovisio-2.1.0/migrations/20230324_01_ba9WA-status.rollback.sql +35 -0
- geovisio-2.1.0/migrations/20230324_01_ba9WA-status.sql +11 -0
- geovisio-2.1.0/migrations/20230324_02_efgI6-picture-process.rollback.sql +20 -0
- geovisio-2.1.0/migrations/20230324_02_efgI6-picture-process.sql +44 -0
- geovisio-2.1.0/migrations/20230407_01_wofh1-computed-headings.rollback.sql +6 -0
- geovisio-2.1.0/migrations/20230407_01_wofh1-computed-headings.sql +6 -0
- geovisio-2.1.0/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.rollback.sql +4 -0
- geovisio-2.1.0/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.sql +4 -0
- geovisio-2.1.0/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.rollback.sql +5 -0
- geovisio-2.1.0/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.sql +5 -0
- geovisio-2.1.0/migrations/20230425_01_gYP77-pictures-edits-triggers.rollback.sql +5 -0
- geovisio-2.1.0/migrations/20230425_01_gYP77-pictures-edits-triggers.sql +64 -0
- geovisio-2.1.0/migrations/20230427_01_k5e5w-timestamps.rollback.sql +10 -0
- geovisio-2.1.0/migrations/20230427_01_k5e5w-timestamps.sql +19 -0
- geovisio-2.1.0/migrations/20230511_01_TdpKo-tokens.rollback.sql +7 -0
- geovisio-2.1.0/migrations/20230511_01_TdpKo-tokens.sql +34 -0
- geovisio-2.1.0/migrations/20230615_01_u7aRf-pic-delete-cascade.rollback.sql +10 -0
- geovisio-2.1.0/migrations/20230615_01_u7aRf-pic-delete-cascade.sql +12 -0
- geovisio-2.1.0/migrations/20230623_01_y1SiQ-pic-deletion-task.rollback.sql +39 -0
- geovisio-2.1.0/migrations/20230623_01_y1SiQ-pic-deletion-task.sql +36 -0
- geovisio-2.1.0/migrations/20230629_01_ZdB3i-compute-heading-0.sql +27 -0
- geovisio-2.1.0/migrations/20230711_01_JGSPB-inserted-at-index.rollback.sql +4 -0
- geovisio-2.1.0/migrations/20230711_01_JGSPB-inserted-at-index.sql +4 -0
- geovisio-2.1.0/pyproject.toml +55 -0
- geovisio-2.1.0/pytest.ini +4 -0
- geovisio-2.1.0/runtime.txt +1 -0
- geovisio-2.1.0/tests/__init__.py +0 -0
- geovisio-2.1.0/tests/conftest.py +361 -0
- geovisio-2.1.0/tests/data/1.jpg +0 -0
- geovisio-2.1.0/tests/data/1_blurred.jpg +0 -0
- geovisio-2.1.0/tests/data/2.jpg +0 -0
- geovisio-2.1.0/tests/data/3.jpg +0 -0
- geovisio-2.1.0/tests/data/4.jpg +0 -0
- geovisio-2.1.0/tests/data/5.jpg +0 -0
- geovisio-2.1.0/tests/data/b1.jpg +0 -0
- geovisio-2.1.0/tests/data/b2.jpg +0 -0
- geovisio-2.1.0/tests/data/c1.jpg +0 -0
- geovisio-2.1.0/tests/data/d1.jpg +0 -0
- geovisio-2.1.0/tests/data/e1.jpg +0 -0
- geovisio-2.1.0/tests/data/e2.jpg +0 -0
- geovisio-2.1.0/tests/data/e3.jpg +0 -0
- geovisio-2.1.0/tests/data/e4.jpg +0 -0
- geovisio-2.1.0/tests/data/e5.jpg +0 -0
- geovisio-2.1.0/tests/data/invalid_exif.jpg +0 -0
- geovisio-2.1.0/tests/integration/__init__.py +0 -0
- geovisio-2.1.0/tests/integration/conftest.py +171 -0
- geovisio-2.1.0/tests/integration/docker-compose-auth-test.yml +6 -0
- geovisio-2.1.0/tests/integration/test_auth.py +313 -0
- geovisio-2.1.0/tests/integration/test_s3.py +357 -0
- geovisio-2.1.0/tests/integration/test_tokens.py +383 -0
- geovisio-2.1.0/tests/test_api_conformance.sh +110 -0
- geovisio-2.1.0/tests/test_configuration.py +10 -0
- geovisio-2.1.0/tests/test_db_migrations.py +108 -0
- geovisio-2.1.0/tests/test_factory.py +89 -0
- geovisio-2.1.0/tests/test_filesystems.py +63 -0
- geovisio-2.1.0/tests/test_map.py +148 -0
- geovisio-2.1.0/tests/test_pictures.py +485 -0
- geovisio-2.1.0/tests/test_runner_pictures.py +589 -0
- geovisio-2.1.0/tests/test_stac.py +2867 -0
- geovisio-2.1.0/tests/test_users.py +4 -0
- geovisio-2.1.0/yoyo.ini +5 -0
geovisio-2.1.0/.flaskenv
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
FLASK_APP=geovisio
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
variables:
|
|
2
|
+
DOCKER_BUILDKIT: 1 # use buildkit for better performance
|
|
3
|
+
DOCKER_DRIVER: overlay2 # better docker driver to avoid copying too many files on each run
|
|
4
|
+
GITLAB_REGISTRY: registry.gitlab.com # We use docker.io for official images and gitlab's registry to store temporary images
|
|
5
|
+
IMAGE_NAME: geovisio/api
|
|
6
|
+
CI_IMAGE_CACHE: $GITLAB_REGISTRY/$IMAGE_NAME:build_cache
|
|
7
|
+
DOCKER_TLS_CERTDIR: ""
|
|
8
|
+
|
|
9
|
+
# Pipelines will run only for MR, tag and develop/main commits
|
|
10
|
+
workflow:
|
|
11
|
+
rules:
|
|
12
|
+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
13
|
+
- if: $CI_COMMIT_TAG
|
|
14
|
+
- if: $CI_COMMIT_BRANCH == "develop"
|
|
15
|
+
- if: $CI_COMMIT_BRANCH == "main"
|
|
16
|
+
|
|
17
|
+
code-fmt:
|
|
18
|
+
stage: test
|
|
19
|
+
only:
|
|
20
|
+
- merge_requests
|
|
21
|
+
image: python:3.9-alpine
|
|
22
|
+
script:
|
|
23
|
+
- pip install black
|
|
24
|
+
- black --fast --check .
|
|
25
|
+
|
|
26
|
+
test-in-docker:
|
|
27
|
+
# run tests inside a docker only when the dockerfile changes since this test can be a bit slow
|
|
28
|
+
rules:
|
|
29
|
+
- if: $CI_DEPLOY_PASSWORD && $CI_DEPLOY_USER
|
|
30
|
+
changes:
|
|
31
|
+
- Dockerfile
|
|
32
|
+
- .dockerignore
|
|
33
|
+
stage: test
|
|
34
|
+
image: docker:latest
|
|
35
|
+
services:
|
|
36
|
+
- docker:dind
|
|
37
|
+
- postgis/postgis:latest
|
|
38
|
+
variables:
|
|
39
|
+
POSTGRES_DB: geovisio_test
|
|
40
|
+
POSTGRES_USER: geovisio
|
|
41
|
+
POSTGRES_PASSWORD: geovisiopass
|
|
42
|
+
POSTGRES_HOST_AUTH_METHOD: trust
|
|
43
|
+
TMP_CI_IMAGE: $GITLAB_REGISTRY/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA
|
|
44
|
+
FF_NETWORK_PER_BUILD: 1 # we ask gitlab to create a custom docker network, to be able to use the services inside the docker
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
before_script:
|
|
48
|
+
# login to the gitlab docker registry
|
|
49
|
+
- echo $CI_DEPLOY_PASSWORD | docker login -u $CI_DEPLOY_USER --password-stdin $GITLAB_REGISTRY
|
|
50
|
+
- docker buildx create --use --name "geovisio-image-builder" --driver=docker-container # use docker-container driver to be able to publish a full cache
|
|
51
|
+
script:
|
|
52
|
+
# create a docker image using the build_cache
|
|
53
|
+
# push the cache in the gitlab registry for the other steps
|
|
54
|
+
# Note: the cache mode is set to 'max' to cache the multi stage layers too
|
|
55
|
+
- docker buildx build
|
|
56
|
+
--cache-from "type=registry,ref=$CI_IMAGE_CACHE"
|
|
57
|
+
--cache-to "type=registry,mode=max,ref=$CI_IMAGE_CACHE"
|
|
58
|
+
--tag "$TMP_CI_IMAGE"
|
|
59
|
+
--load
|
|
60
|
+
--progress=plain
|
|
61
|
+
.
|
|
62
|
+
# run tests in docker container
|
|
63
|
+
- docker run --rm
|
|
64
|
+
--env DB_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgis-postgis/${POSTGRES_DB}"
|
|
65
|
+
--entrypoint "bash"
|
|
66
|
+
--network=host
|
|
67
|
+
$TMP_CI_IMAGE
|
|
68
|
+
-c 'pip install -e .[dev] && pytest -m "not skipci"'
|
|
69
|
+
after_script:
|
|
70
|
+
- docker rmi $TMP_CI_IMAGE || true # accept failure, as image creation can fail
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
test:
|
|
74
|
+
rules:
|
|
75
|
+
- if: $CI_COMMIT_TAG
|
|
76
|
+
when: never
|
|
77
|
+
- when: on_success
|
|
78
|
+
|
|
79
|
+
stage: test
|
|
80
|
+
image: python:3.9
|
|
81
|
+
services:
|
|
82
|
+
- postgis/postgis:latest
|
|
83
|
+
variables:
|
|
84
|
+
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
|
85
|
+
POSTGRES_DB: geovisio_test
|
|
86
|
+
POSTGRES_USER: geovisio
|
|
87
|
+
POSTGRES_PASSWORD: geovisiopass
|
|
88
|
+
POSTGRES_HOST_AUTH_METHOD: trust
|
|
89
|
+
DB_URL: "postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgis-postgis/$POSTGRES_DB"
|
|
90
|
+
FS_TMP_URL: "/tmp/geovisio_test/tmp/"
|
|
91
|
+
FS_PERMANENT_URL: "/tmp/geovisio_test/permanent/"
|
|
92
|
+
FS_DERIVATES_URL: "/tmp/geovisio_test/derivates/"
|
|
93
|
+
script:
|
|
94
|
+
- mkdir -p /tmp/geovisio_test/tmp /tmp/geovisio_test/derivates /tmp/geovisio_test/permanent
|
|
95
|
+
- pip install -e .
|
|
96
|
+
- pip install -e .[dev]
|
|
97
|
+
- pytest -m "not skipci"
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
test-api-conformance:
|
|
101
|
+
rules:
|
|
102
|
+
- if: $CI_COMMIT_TAG
|
|
103
|
+
when: never
|
|
104
|
+
- when: on_success
|
|
105
|
+
|
|
106
|
+
stage: test
|
|
107
|
+
image: python:3.10
|
|
108
|
+
services:
|
|
109
|
+
- postgis/postgis:latest
|
|
110
|
+
variables:
|
|
111
|
+
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
|
112
|
+
POSTGRES_DB: geovisio_test
|
|
113
|
+
POSTGRES_USER: geovisio
|
|
114
|
+
POSTGRES_PASSWORD: geovisiopass
|
|
115
|
+
POSTGRES_HOST_AUTH_METHOD: trust
|
|
116
|
+
DB_URL: "postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgis-postgis/$POSTGRES_DB"
|
|
117
|
+
FS_TMP_URL: "/tmp/geovisio_test/tmp/"
|
|
118
|
+
FS_PERMANENT_URL: "/tmp/geovisio_test/permanent/"
|
|
119
|
+
FS_DERIVATES_URL: "/tmp/geovisio_test/derivates/"
|
|
120
|
+
script:
|
|
121
|
+
- apt update && apt install -y wget jq
|
|
122
|
+
- mkdir -p /tmp/geovisio_test/tmp /tmp/geovisio_test/derivates /tmp/geovisio_test/permanent
|
|
123
|
+
- pip install -e .
|
|
124
|
+
- pip install -e .[dev]
|
|
125
|
+
- ./tests/test_api_conformance.sh
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
publish-develop:
|
|
129
|
+
rules:
|
|
130
|
+
# run job only for fork that have the credentials to pull images from the gitlab-registry
|
|
131
|
+
# and only for merge on 'develop' branch
|
|
132
|
+
- if: $CI_DEPLOY_PASSWORD == null || $CI_DEPLOY_USER == null
|
|
133
|
+
when: never
|
|
134
|
+
- if: $CI_COMMIT_REF_SLUG == "develop"
|
|
135
|
+
stage: deploy
|
|
136
|
+
image: docker:latest
|
|
137
|
+
services:
|
|
138
|
+
- docker:dind
|
|
139
|
+
- postgis/postgis:latest
|
|
140
|
+
variables:
|
|
141
|
+
POSTGRES_DB: geovisio_test
|
|
142
|
+
POSTGRES_USER: geovisio
|
|
143
|
+
POSTGRES_PASSWORD: geovisiopass
|
|
144
|
+
POSTGRES_HOST_AUTH_METHOD: trust
|
|
145
|
+
FF_NETWORK_PER_BUILD: 1 # we ask gitlab to create a custom docker network, to be able to use the services inside the docker
|
|
146
|
+
before_script:
|
|
147
|
+
# login to the gitlab docker registry to use the cache and to publish
|
|
148
|
+
- echo $CI_DEPLOY_PASSWORD | docker login -u $CI_DEPLOY_USER --password-stdin $GITLAB_REGISTRY
|
|
149
|
+
- docker buildx create --use --name "geovisio-image-builder" --driver=docker-container # use docker-container driver to be able to publish a full cache
|
|
150
|
+
# login to dockerhub
|
|
151
|
+
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
152
|
+
script:
|
|
153
|
+
# build image using repository as cache
|
|
154
|
+
- docker buildx build
|
|
155
|
+
--cache-from "type=registry,ref=$CI_IMAGE_CACHE"
|
|
156
|
+
--cache-to "type=registry,mode=max,ref=$CI_IMAGE_CACHE"
|
|
157
|
+
--tag "$CI_REGISTRY_IMAGE:develop"
|
|
158
|
+
--label "org.opencontainers.image.title=$CI_PROJECT_TITLE"
|
|
159
|
+
--label "org.opencontainers.image.url=$CI_PROJECT_URL"
|
|
160
|
+
--label "org.opencontainers.image.created=$CI_JOB_STARTED_AT"
|
|
161
|
+
--label "org.opencontainers.image.revision=$CI_COMMIT_SHORT_SHA"
|
|
162
|
+
--load
|
|
163
|
+
--progress=plain
|
|
164
|
+
.
|
|
165
|
+
# run tests in docker container
|
|
166
|
+
- docker run --rm
|
|
167
|
+
--env DB_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgis-postgis/${POSTGRES_DB}"
|
|
168
|
+
--entrypoint "bash"
|
|
169
|
+
--network=host
|
|
170
|
+
"$CI_REGISTRY_IMAGE:develop"
|
|
171
|
+
-c 'pip install -e .[dev] && pytest -m "not skipci"'
|
|
172
|
+
|
|
173
|
+
# publish image to dockerhub with the develop tag
|
|
174
|
+
- docker push "$CI_REGISTRY_IMAGE:develop"
|
|
175
|
+
|
|
176
|
+
publish-tag-and-latest:
|
|
177
|
+
# we consider that tag always land on main
|
|
178
|
+
# and they always should publish a tagged image and the `latest` docker image
|
|
179
|
+
only:
|
|
180
|
+
- tags
|
|
181
|
+
stage: deploy
|
|
182
|
+
image: docker:latest
|
|
183
|
+
services:
|
|
184
|
+
- docker:dind
|
|
185
|
+
- postgis/postgis:latest
|
|
186
|
+
variables:
|
|
187
|
+
POSTGRES_DB: geovisio_test
|
|
188
|
+
POSTGRES_USER: geovisio
|
|
189
|
+
POSTGRES_PASSWORD: geovisiopass
|
|
190
|
+
POSTGRES_HOST_AUTH_METHOD: trust
|
|
191
|
+
FF_NETWORK_PER_BUILD: 1 # we ask gitlab to create a custom docker network, to be able to use the services inside the docker
|
|
192
|
+
before_script:
|
|
193
|
+
# login to the gitlab docker registry to use the cache and to publish
|
|
194
|
+
- echo $CI_DEPLOY_PASSWORD | docker login -u $CI_DEPLOY_USER --password-stdin $GITLAB_REGISTRY
|
|
195
|
+
- docker buildx create --use --name "geovisio-image-builder" --driver=docker-container # use docker-container driver to be able to publish a full cache
|
|
196
|
+
# login to dockerhub
|
|
197
|
+
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
198
|
+
script:
|
|
199
|
+
# build image using repository as cache
|
|
200
|
+
- docker buildx build
|
|
201
|
+
--cache-from "type=registry,ref=$CI_IMAGE_CACHE"
|
|
202
|
+
--cache-to "type=registry,mode=max,ref=$CI_IMAGE_CACHE"
|
|
203
|
+
--tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"
|
|
204
|
+
--tag "$CI_REGISTRY_IMAGE:latest"
|
|
205
|
+
--label "org.opencontainers.image.title=$CI_PROJECT_TITLE"
|
|
206
|
+
--label "org.opencontainers.image.url=$CI_PROJECT_URL"
|
|
207
|
+
--label "org.opencontainers.image.created=$CI_JOB_STARTED_AT"
|
|
208
|
+
--label "org.opencontainers.image.revision=$GIT_DESCRIBE"
|
|
209
|
+
--load
|
|
210
|
+
--progress=plain
|
|
211
|
+
.
|
|
212
|
+
# run tests in docker container
|
|
213
|
+
- docker run --rm
|
|
214
|
+
--env DB_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgis-postgis/${POSTGRES_DB}"
|
|
215
|
+
--entrypoint "bash"
|
|
216
|
+
--network=host
|
|
217
|
+
"$CI_REGISTRY_IMAGE:latest"
|
|
218
|
+
-c 'pip install -e .[dev] && pytest -m "not skipci"'
|
|
219
|
+
|
|
220
|
+
# publish image to dockerhub
|
|
221
|
+
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
|
|
222
|
+
- docker push $CI_REGISTRY_IMAGE:latest
|
|
223
|
+
|
|
224
|
+
publish-on-pypi:
|
|
225
|
+
only:
|
|
226
|
+
- tags
|
|
227
|
+
stage: deploy
|
|
228
|
+
image: python:3.9
|
|
229
|
+
script:
|
|
230
|
+
- pip install .[build]
|
|
231
|
+
- flit publish # use [flit](https://flit.pypa.io/) and FLIT_USERNAME/FLIT_PASSWORD env var
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
All notable changes to this project will be documented in this file.
|
|
3
|
+
|
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in this repository, so this changelog also includes Viewer features until the split.
|
|
8
|
+
|
|
9
|
+
## [Unreleased]
|
|
10
|
+
|
|
11
|
+
## [2.1.0] - 2023-07-20
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- A way to customize the picture's license. If none is set, the pictures's license is considered to be proprietary.
|
|
15
|
+
- A new route `PATCH /api/collections/:cid` is offered to change visibility of a sequence
|
|
16
|
+
- 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.
|
|
17
|
+
- 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
|
|
18
|
+
- A new route `DELETE /api/collections/:cid` is offered to delete a collection. The deletion is done asynchronously.
|
|
19
|
+
- A new route `DELETE /api/collections/:cid/items/:id` is offered to delete a picture
|
|
20
|
+
- [OpenAPI](https://swagger.io/specification/) conformance tests are now automatically run through `tests/test_api_conformance.sh` script
|
|
21
|
+
- [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)
|
|
22
|
+
* also support a `?withPicture=:picture_id` query paramater to ask for a page with a specific picture in it
|
|
23
|
+
- Add a `flask sequences reorder` subcommand to reorder all or some sequences using the picture's datetime.
|
|
24
|
+
- [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
|
|
25
|
+
- Add 2 optional parameters to the `GET /api/collections` api: `created_after`/`created_before` used to filter the collection by their creation date.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- Docker compose files now use `latest` API image instead of `develop`
|
|
29
|
+
- In default pages (`/` and `/viewer.html`), web viewer version is now synced to current API version instead of develop
|
|
30
|
+
- Algorithm used for generating smaller versions of pictures changed from _NEAREST_ to _HAMMING_ for better results
|
|
31
|
+
- API documentation and specifications moved to `/api/docs/swagger` and `/api/docs/specs.json`, and with improved readability of their content
|
|
32
|
+
- Now heading are recomputed if set to 0 because some camera use this value by default
|
|
33
|
+
- Hidden pictures will now always be served through the API to be able to check permissions.
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
- Raw picture bytes are sent to blurring API instead of Pillow-based version, avoiding various issues (too large files, missing EXIF)
|
|
37
|
+
- Docker-compose files are now compatible with MacOS (replaced `network_mode: host` to use a more classic approach)
|
|
38
|
+
- Some CORS HTTP headers were missing in API responses to allow client send credentials
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## [2.0.2] - 2023-06-08
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
- [STAC extension "stats"](https://github.com/stac-extensions/stats) is used on routes `/collections` and `/collections/:id` to add number of items contained in given collection (property `stats:items.count`).
|
|
45
|
+
- A new route `PATCH /api/collections/:cid/items/:id` is offered to change visibility of a picture
|
|
46
|
+
- A new route `GET /api/collections/:cid/thumbnail.jpg` is offered to get the thumbnail of the first visible picture of a collection
|
|
47
|
+
- API landing page (`/api`) better advertises its capabilities:
|
|
48
|
+
- [Web Map Links](https://github.com/stac-extensions/web-map-links) STAC extension is used for vector tiles availability.
|
|
49
|
+
- Custom-defined links `item-preview` and `collection-preview` offer a template URL to have direct access to a thumbnail for either a sequence or a single picture.
|
|
50
|
+
- A `geovisio:status` field is added in various API responses (mainly in `/api/collections/:col_id/items` and `/api/collections/:col_id/items/:item_id`) to know if a picture is visible or not. This is mainly useful when retrieving your own sequences and pictures as an authenticated user.
|
|
51
|
+
- In vector tiles, in pictures layer, list of sequences associated to a picture is made available in its properties as `sequences` array.
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
- Improved deployment docs
|
|
55
|
+
- API route `/users/:userId/catalog/` changes:
|
|
56
|
+
- It sends different results according if you're looking for your own catalog as an authenticated user, or if you're looking to another user catalog. Your own catalog embeds all sequences, others catalogs only display publicly-available sequences.
|
|
57
|
+
- It embeds more properties in a link to child sequence: title, ID, items count, start/end date
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
- Even if not necessary anymore (with the introduction of user tokens), API was checking if `OAUTH_PROVIDER` was set if you wanted to enable `API_FORCE_AUTH_ON_UPLOAD`.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## [2.0.1] - 2023-05-24
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
- Added a `/api/configuration` endpoint with the API configuration. This endpoint is meant to provided easy frontend configuration.
|
|
67
|
+
- Support of Bearer token authorization. This should improve API authentication when a browser is not available, for example in usage with the [CLI](https://gitlab.com/geovisio/cli).
|
|
68
|
+
- The HTTP response header `Access-Control-Expose-Headers` is added to STAC response to allow web browser using the `Location` header.
|
|
69
|
+
- Add API routes to generate a claimable token. By default, it's not associated to any account (created by a `POST` on `/api/auth/tokens/generate`). To be usable, this token needs to be associated to an account via a authenticated call on `/api/auth/tokens/<uuid:token_id>/claim`. This offers a nicer authentication flow on the CLI.
|
|
70
|
+
- Add an API route to revoke a token, a `DELETE` on `/api/users/me/tokens/<uuid:token_id>`
|
|
71
|
+
|
|
72
|
+
### Changed
|
|
73
|
+
- Blur picture is called with a `keep=1` URL query parameter (for a coming migration to [SGBlur](https://github.com/cquest/sgblur)) to keep original unblurred parts on blur API side.
|
|
74
|
+
- [GeoPic Tag Reader](https://gitlab.com/geovisio/geo-picture-tag-reader) updated to 0.1.0 : more EXIF tags are supported for date, heading, GPS coordinates. Also, warnings issued by reader are stored in GeoVisio API database.
|
|
75
|
+
- All sources have been moved from `./server/src` to `./geovisio` (thanks to [Nick Whitelegg](https://gitlab.com/nickw1)). Thus, sources are now imported as `import geovisio` instead of `import src`.
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
- Standard-definition pictures now embeds full EXIF tags from original picture
|
|
79
|
+
- Docker compose files were failing if some services were just a bit too long to start
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## [2.0.0] - 2023-04-28
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- Add [Providers](https://github.com/radiantearth/stac-api-spec/blob/main/stac-spec/item-spec/common-metadata.md#provider-object) to stac items and collections to have information about the account owning the collection/item
|
|
86
|
+
- Add the capability to require a login before creating a sequence and uploading pictures to it
|
|
87
|
+
- Add a `/api/users/me` route to get logged in user information, and a `/api/users/me/catalog` to get the catalog of the logged in user.
|
|
88
|
+
- Some background picture processes can be run using `flask picture-worker`. Those workers can run on a different server than the API
|
|
89
|
+
- Server settings to limit maximum threads: `PICTURE_PROCESS_THREADS_LIMIT`. Set to -1 to use all available threads, 0 to have no background threads at all (use this is you want another server running `flask picture-worker`)
|
|
90
|
+
- Added the collection's status in the `/geovisio_status` route.
|
|
91
|
+
- Use the python logger instead of print. The logging level can be changed with the `LOG_LEVEL` environment variable.
|
|
92
|
+
- The picture upload API route offers a `isBlurred=true` form parameter to skip blurring picture (if it is already blurred by author)
|
|
93
|
+
- All read EXIF metadata from pictures is stored in `pictures` tables in a `exif` column
|
|
94
|
+
- Filesystem storage can be also configured into 3 different variables for a more flexible storage: `FS_TMP_URL`, `FS_PERMANENT_URL`, `FS_DERIVATES_URL`
|
|
95
|
+
- STAC API responses gives `created` time for sequences and pictures (when it was imported), and `updated` time for sequences (last edit time)
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
- Move auth apis from `/auth` to `/api/auth`.
|
|
99
|
+
- Docker image moved to [`geovisio/api`](https://hub.docker.com/r/geovisio/api) (was previously `panieravide/geovisio`)
|
|
100
|
+
- After the OAuth process launched by `/api/auth/login`, we are redirected to the home page
|
|
101
|
+
- Pictures blurring is now __externalized__ : GeoVisio API calls a third-party _blurring API_ (which is [available as a part of the whole GeoVisio stack](https://gitlab.com/geovisio/blurring)) instead of relying on internal scripts. This allows more flexible deployments. This changes settings like `BLUR_STRATEGY` which becomes `BLUR_URL`.
|
|
102
|
+
- Reading of EXIF tags from pictures is now done by a separated library called [Geopic Tag Reader](https://gitlab.com/geovisio/geo-picture-tag-reader).
|
|
103
|
+
- Pictures derivates are now (again) stored in JPEG format. API still can serve images in both JPEG or WebP formats, but with improved performance if using JPEG
|
|
104
|
+
- Thumbnail image is always generated, no matter of `DERIVATES_STRATEGY` value, for better performance on viewer side
|
|
105
|
+
- When picture blurring is enabled, original uploaded image is not stored, only blurred version is kept
|
|
106
|
+
- Change several environement variables to ensure coherence (but the retrocompatibility has been maintained)
|
|
107
|
+
* `BLUR_URL` => `API_BLUR_URL`
|
|
108
|
+
* `VIEWER_PAGE` => `API_VIEWER_PAGE`
|
|
109
|
+
* `MAIN_PAGE` => `API_MAIN_PAGE`
|
|
110
|
+
* `LOG_LEVEL` => `API_LOG_LEVEL`
|
|
111
|
+
* `FORCE_AUTH_ON_UPLOAD` => `API_FORCE_AUTH_ON_UPLOAD`
|
|
112
|
+
* `DERIVATES_STRATEGY` => `PICTURE_PROCESS_DERIVATES_STRATEGY`
|
|
113
|
+
* `OIDC_URL` => `OAUTH_OIDC_URL`
|
|
114
|
+
* `CLIENT_ID` => `OAUTH_CLIENT_ID`
|
|
115
|
+
* `CLIENT_SECRET` => `OAUTH_CLIENT_SECRET`
|
|
116
|
+
* `NB_PROXIES` => `INFRA_NB_PROXIES`
|
|
117
|
+
- Commands `flask set-sequences-heading` and `flask cleanup` now takes in input sequences IDs instead of sequences folder names
|
|
118
|
+
- Command `flask cleanup` offers to delete original images, and can't delete blur masks anymore (as they are not used anymore)
|
|
119
|
+
- The python files are now directly in the working directory of the docker image, no longer in a `./server` sub directory. It should be transparent for most users though.
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
- Tests were failing when using PySTAC 1.7.0 due to unavaible `extra_fields['id']` on links
|
|
123
|
+
- EXIF tags filled with blank spaces or similar characters were not handled as null, causing unnecessary errors on pictures processing (issues [#65](https://gitlab.com/geovisio/api/-/issues/65) and [#66](https://gitlab.com/geovisio/api/-/issues/66))
|
|
124
|
+
- Make sure picture EXIF orientation is always used and applied ([#71](https://gitlab.com/geovisio/api/-/issues/71))
|
|
125
|
+
- Updates on DB table `pictures` and deletes on DB table `sequences_pictures` now updates `sequences.geom` column automatically
|
|
126
|
+
|
|
127
|
+
### Removed
|
|
128
|
+
- Removed `SERVER_NAME` from configuration. This parameter was used for url generation, but was causing problems in some cases (cf. [related issue](https://gitlab.com/geovisio/geovisio/-/issues/48))
|
|
129
|
+
- Removed `BACKEND_MODE` from configuration. This parameter was only used in docker/kubernetes context and can be changed from a environment variable to an argument.
|
|
130
|
+
- Removed the `process-sequences` and `redo-sequences` flask's targets. All pictures upload now pass through the API, and the easiest way to do this is to use [geovisio cli](https://gitlab.com/geovisio/cli).
|
|
131
|
+
- Removed the `fill-with-mock-data` Flask command
|
|
132
|
+
- Pictures and sequences file paths are removed from database (all storage is based on picture ID)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
## [1.5.0] - 2023-02-10
|
|
136
|
+
|
|
137
|
+
### Added
|
|
138
|
+
- Viewer sets [various hash URL parameters](./docs/22_Client_URL_settings.md) to save map position, picture ID, focused element and viewer position
|
|
139
|
+
- The pictures and sequences are now linked to an account. When importing the sequence, pictures and sequences are either associated to the instance's default account or to the provided `account-name` in the metadata.txt file (cf [documentation](./docs/12_Pictures_storage.md#metadatatxt-configuration-file))
|
|
140
|
+
- New index in database for pictures timestamps (to speed up temporal queries)
|
|
141
|
+
- API offers an `extent` property in its landing page (`/api/` route), defining spatio-temporal extent of available data (in the same format as [STAC Collection extent](https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#extent-object)). Note that this is __not STAC-standard__, it may evolve following [ongoing discussions](https://github.com/radiantearth/stac-spec/issues/1210).
|
|
142
|
+
- Documentation to [deploy GeoVisio API on Scalingo](./docs/10_Install_Scalingo.md)
|
|
143
|
+
- Authentication handling using an external OAuth2 provider. See the [external identity provider documentation](./docs/12_External_Identity_Providers.md) and [Api usage documentation](./docs/16_Using_API.md#authentication)
|
|
144
|
+
- Refactor docker-compose files. Removal of the docker-compose-dev.yaml (integrated in the main docker-compose.yml file), and add of several other docker-compose files in the [docker/](./docker/) directory.
|
|
145
|
+
|
|
146
|
+
### Changed
|
|
147
|
+
- Viewer displays picture date when picture is focused instead of static text "GeoVisio"
|
|
148
|
+
- Conformance of API against STAC specifications is improved:
|
|
149
|
+
- List of conformance URLs is more complete
|
|
150
|
+
- Collection temporal extent is always returned in UTC timezone
|
|
151
|
+
- Summaries of some fields are provided in collections
|
|
152
|
+
- Links in collections have now titles
|
|
153
|
+
- Empty fields are now not returned at all, instead of returned with `null` values
|
|
154
|
+
- Content types for GeoJSON routes are now set precisely
|
|
155
|
+
- Providers list is set to an empty array for collections
|
|
156
|
+
- Listing of all users catalogs in main catalog (landing)
|
|
157
|
+
- `/search` route supports `POST` HTTP method
|
|
158
|
+
|
|
159
|
+
### Fixed
|
|
160
|
+
- Some picture metadata fields were duplicated in database (existing both as standalone columns and in `metadata` field), now `metadata` only contains info not existing in other columns.
|
|
161
|
+
- More robust testing of `None` values for server settings
|
|
162
|
+
|
|
163
|
+
### Removed
|
|
164
|
+
- The configuration cannot be stored in a `config.py` file anymore, either use environment variables, or install [python-dotenv](https://github.com/theskumar/python-dotenv) (it's in the requirements-dev.txt file) and persist the variables in either the default `.env` file or a custom `*.env` file (like `prod.env`) and pass this file to flask with the `--env-file` (or `-e`) option.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
flask --env-file prod.env run
|
|
168
|
+
```
|
|
169
|
+
- The `TEST_DB_URL` environment variable is no longer available for the tests, replaced by the standard `DB_URL`
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
## [1.4.1] - 2023-02-01
|
|
173
|
+
|
|
174
|
+
### Fixed
|
|
175
|
+
- Improve checks to avoid failures due to invalid `WEBP_METHOD` parameter
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
## [1.4.0] - 2023-01-04
|
|
179
|
+
|
|
180
|
+
__About upgrading from versions <= 1.3.1__ : many changes have been done on storage and settings during pictures import, to avoid issues you may do a full re-import of your pictures and sequences. This can be done with following command (to adapt according to your setup):
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
cd server/
|
|
184
|
+
FLASK_APP="src" flask cleanup
|
|
185
|
+
FLASK_APP="src" flask process-sequences
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Added
|
|
189
|
+
- Home and viewer pages can be changed using `MAIN_PAGE` and `VIEWER_PAGE` settings (thanks to Nick Whitelegg)
|
|
190
|
+
- Docker compose file for local development (in complement of existing file which uses pre-built Docker image)
|
|
191
|
+
- Explicitly document that database should be in UTF-8 encoding (to avoid [binary string issues with Psycopg](https://www.psycopg.org/psycopg3/docs/basic/adapt.html#strings-adaptation))
|
|
192
|
+
- Server tests can be run through Docker
|
|
193
|
+
- API can serve pictures in both JPEG and WebP formats
|
|
194
|
+
- Viewer now supports WebP assets, and are searched for in priority
|
|
195
|
+
- Mock images and sequences can be generated for testing with `fill-mock-data` server command (thanks to Antoine Desbordes)
|
|
196
|
+
- Viewer map updates automatically URL hash part with a `map` string
|
|
197
|
+
- API map tiles offers a `sequences` layer for display sequences paths
|
|
198
|
+
- Database migrations are handled with the [Yoyo migrations framework](https://ollycope.com/software/yoyo/latest/)
|
|
199
|
+
|
|
200
|
+
### Changed
|
|
201
|
+
- Derivates picture files are now by default generated on-demand on first API request. Pre-processing of derivates (old method) can be enabled using `DERIVATES_STRATEGY=PREPROCESS` setting when calling `process-sequences` command.
|
|
202
|
+
- Internal storage format for pictures is now WebP, offering same quality with reduce disk usage.
|
|
203
|
+
- If not set, `SERVER_NAME` defaults to `localhost.localdomain:5000`
|
|
204
|
+
- Reduced size of Docker image by limiting YOLOv6 repository download and removing unused torchaudio dependency
|
|
205
|
+
- Server dependencies are now separated in 3 pip requirements files for faster CI: `requirements.txt`, `requirements-dev.txt` and `requirements-blur.txt`
|
|
206
|
+
- During sequences processing, ready pictures can be shown and queried even if whole sequences is not ready yet
|
|
207
|
+
- Improved CLI commands documentation (which appears using `FLASK_APP="src" flask --help`)
|
|
208
|
+
- Heading in pictures metadata is now optional, and is set relatively to sequence movement path if missing
|
|
209
|
+
- New CLI command `set-sequences-heading` allows user to manually change heading values
|
|
210
|
+
- Viewer supports STAC items not having `view:azimuth` property defined
|
|
211
|
+
- All documentation files are now in `docs/` folder, with better readability and consistency
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
- Some sequences names were bytestring instead of string, causing some STAC API calls to fail
|
|
215
|
+
- YOLOv6 release number is now fixed in code to avoid issues in downloaded models
|
|
216
|
+
- Docker-compose files explicitly wait for PostgreSQL database to be ready to prevent random failures
|
|
217
|
+
- With `COMPROMISE` blur strategies, image not needing blurring failed
|
|
218
|
+
- URL to API documentation written without trailing `/` was not correctly handled
|
|
219
|
+
- Pictures with partial camera metadata are now correctly handled
|
|
220
|
+
|
|
221
|
+
### Removed
|
|
222
|
+
- No progressive JPEG is used anymore for classic (non-360°) HD pictures.
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
## [1.3.1] - 2022-08-03
|
|
226
|
+
|
|
227
|
+
### Added
|
|
228
|
+
- A cleaner progress bar (tqdm) is used for progress of sequences processing
|
|
229
|
+
- Picture heading is also read from `PoseHeadingDegrees` XMP EXIF tag
|
|
230
|
+
|
|
231
|
+
### Changed
|
|
232
|
+
- Pictures derivates folder is renamed from `gvs_derivates` to `geovisio_derivates` for better readability
|
|
233
|
+
- Sequences folder can skip processing if their name starts with either `ignore_`, `gvs_` or `geovisio_`
|
|
234
|
+
- Status of pictures and sequences is now visible in real-time in database (instead of one transaction commited at the end of single sequence processing)
|
|
235
|
+
|
|
236
|
+
### Fixed
|
|
237
|
+
- Add version in docker-compose file for better compatibility
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
## [1.3.0] - 2022-07-20
|
|
241
|
+
|
|
242
|
+
### Added
|
|
243
|
+
- Support of flat / non-360° pictures in viewer and server
|
|
244
|
+
- List of contributors and special thanks in readme
|
|
245
|
+
- Introduced changelog file (the one you're reading 😁)
|
|
246
|
+
- Allow direct access to MapLibre GL map object in viewer using `getMap`
|
|
247
|
+
- Allow passing all MapLibre GL map settings through viewer using `options.map` object
|
|
248
|
+
|
|
249
|
+
### Changed
|
|
250
|
+
- Pictures blurring now offers several strategies (`BLUR_STRATEGY` setting) and better performance (many thanks to Albin Calais)
|
|
251
|
+
- Viewer has a wider zoom range
|
|
252
|
+
- Separate stages for building viewer and server in Dockerfile (thanks to Pascal Rhod)
|
|
253
|
+
|
|
254
|
+
### Fixed
|
|
255
|
+
- Test pictures had some corrupted EXIF tags (related to [JOSM issue](https://josm.openstreetmap.de/ticket/22211))
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
## [1.2.0] - 2022-06-07
|
|
259
|
+
|
|
260
|
+
### Added
|
|
261
|
+
- A demonstration page is available, showing viewer and code examples
|
|
262
|
+
- A map is optionally available in viewer to find pictures more easily
|
|
263
|
+
- New API route for offering vector tiles (for map) : `/api/map/<z>/<x>/<y>.mvt`
|
|
264
|
+
- GeoVisio now has a logo
|
|
265
|
+
|
|
266
|
+
### Changed
|
|
267
|
+
- Improved Dockerfile :
|
|
268
|
+
- Both server and viewer are embed
|
|
269
|
+
- Add list of available environment variables
|
|
270
|
+
- Remove need for a config file
|
|
271
|
+
- A Docker compose file is offered for a ready-to-use GeoVisio with database container
|
|
272
|
+
- Server processing for sequences pre-render all derivates versions of pictures to limit I/O with remote filesystems
|
|
273
|
+
- Viewer displays a default picture before a real picture is loaded
|
|
274
|
+
- Documentation is more complete
|
|
275
|
+
|
|
276
|
+
### Fixed
|
|
277
|
+
- Reading of negative lat/lon coordinates from EXIF tags
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
## [1.1.0] - 2022-05-09
|
|
281
|
+
|
|
282
|
+
### Added
|
|
283
|
+
- Support of [STAC API scheme](https://github.com/radiantearth/stac-api-spec) for both server and viewer
|
|
284
|
+
- New environment variables for database to allow set separately hostname, port, username... : `DB_PORT`, `DB_HOST`, `DB_USERNAME`, `DB_PASSWORD`, `DB_NAME`
|
|
285
|
+
|
|
286
|
+
### Changed
|
|
287
|
+
- All API routes are prefixed with `/api`
|
|
288
|
+
|
|
289
|
+
### Removed
|
|
290
|
+
- `/sequences` API routes, as they are replaced by STAC compliant routes named `/collections`
|
|
291
|
+
- Some `/pictures` API routes, as they are replaced by STAC compliant routes named `/collections/<id>/items`
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
## [1.0.0] - 2022-03-22
|
|
295
|
+
|
|
296
|
+
### Added
|
|
297
|
+
- Server scripts for processing 360° pictures and loading into database
|
|
298
|
+
- Support of various filesystems (hard disk, FTP, S3 Bucket...) using PyFilesystem
|
|
299
|
+
- API offering sequences, pictures (original, thumbnail and tiled) and various metadata
|
|
300
|
+
- Blurring of people, cars, trucks, bus, bicycles on pictures
|
|
301
|
+
- Viewer based on Photo Sphere Viewer automatically calling API to search and retrieve pictures
|
|
302
|
+
- Dockerfile for easy server setup
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
[Unreleased]: https://gitlab.com/geovisio/api/-/compare/2.1.0...develop
|
|
306
|
+
[2.1.0]: https://gitlab.com/geovisio/api/-/compare/2.0.2...2.1.0
|
|
307
|
+
[2.0.2]: https://gitlab.com/geovisio/api/-/compare/2.0.1...2.0.2
|
|
308
|
+
[2.0.1]: https://gitlab.com/geovisio/api/-/compare/2.0.0...2.0.1
|
|
309
|
+
[2.0.0]: https://gitlab.com/geovisio/api/-/compare/1.5.0...2.0.0
|
|
310
|
+
[1.5.0]: https://gitlab.com/geovisio/api/-/compare/1.4.1...1.5.0
|
|
311
|
+
[1.4.1]: https://gitlab.com/geovisio/api/-/compare/1.4.0...1.4.1
|
|
312
|
+
[1.4.0]: https://gitlab.com/geovisio/api/-/compare/1.3.1...1.4.0
|
|
313
|
+
[1.3.1]: https://gitlab.com/geovisio/api/-/compare/1.3.0...1.3.1
|
|
314
|
+
[1.3.0]: https://gitlab.com/geovisio/api/-/compare/1.2.0...1.3.0
|
|
315
|
+
[1.2.0]: https://gitlab.com/geovisio/api/-/compare/1.1.0...1.2.0
|
|
316
|
+
[1.1.0]: https://gitlab.com/geovisio/api/-/compare/1.0.0...1.1.0
|
|
317
|
+
[1.0.0]: https://gitlab.com/geovisio/api/-/commits/1.0.0
|