geovisio 2.7.1__tar.gz → 2.8.1__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.
Files changed (365) hide show
  1. {geovisio-2.7.1 → geovisio-2.8.1}/CHANGELOG.md +53 -2
  2. {geovisio-2.7.1 → geovisio-2.8.1}/PKG-INFO +8 -6
  3. {geovisio-2.7.1 → geovisio-2.8.1}/docker/docker-compose-full.yml +29 -19
  4. {geovisio-2.7.1 → geovisio-2.8.1}/docker/docker-compose-minio.yml +1 -1
  5. geovisio-2.8.1/docker/full-keycloak-auth/keycloak-realm.json +2242 -0
  6. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/nginx.conf +1 -1
  7. geovisio-2.8.1/docker/keycloak-realm.json +2337 -0
  8. {geovisio-2.7.1 → geovisio-2.8.1}/docs/api/open_api.json +1024 -140
  9. {geovisio-2.7.1 → geovisio-2.8.1}/docs/dev/STAC_compatibility.md +8 -0
  10. {geovisio-2.7.1 → geovisio-2.8.1}/docs/dev/develop_server.md +8 -0
  11. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/cli.md +58 -0
  12. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/settings.md +8 -1
  13. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/tutorials/running_docker_keycloak.md +11 -0
  14. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/__init__.py +25 -4
  15. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/admin_cli/__init__.py +3 -1
  16. geovisio-2.8.1/geovisio/admin_cli/user.py +75 -0
  17. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/config_app.py +86 -4
  18. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/templates/main.html +2 -2
  19. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/templates/viewer.html +3 -3
  20. geovisio-2.8.1/geovisio/translations/br/LC_MESSAGES/messages.mo +0 -0
  21. geovisio-2.8.1/geovisio/translations/br/LC_MESSAGES/messages.po +762 -0
  22. geovisio-2.8.1/geovisio/translations/da/LC_MESSAGES/messages.mo +0 -0
  23. geovisio-2.8.1/geovisio/translations/da/LC_MESSAGES/messages.po +859 -0
  24. geovisio-2.8.1/geovisio/translations/de/LC_MESSAGES/messages.mo +0 -0
  25. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/de/LC_MESSAGES/messages.po +106 -1
  26. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/el/LC_MESSAGES/messages.mo +0 -0
  27. geovisio-2.8.1/geovisio/translations/en/LC_MESSAGES/messages.mo +0 -0
  28. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/en/LC_MESSAGES/messages.po +218 -133
  29. geovisio-2.8.1/geovisio/translations/eo/LC_MESSAGES/messages.mo +0 -0
  30. geovisio-2.8.1/geovisio/translations/eo/LC_MESSAGES/messages.po +856 -0
  31. geovisio-2.8.1/geovisio/translations/es/LC_MESSAGES/messages.mo +0 -0
  32. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/es/LC_MESSAGES/messages.po +4 -3
  33. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/fi/LC_MESSAGES/messages.mo +0 -0
  34. geovisio-2.8.1/geovisio/translations/fr/LC_MESSAGES/messages.mo +0 -0
  35. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/fr/LC_MESSAGES/messages.po +66 -3
  36. geovisio-2.8.1/geovisio/translations/hu/LC_MESSAGES/messages.mo +0 -0
  37. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/hu/LC_MESSAGES/messages.po +4 -3
  38. geovisio-2.8.1/geovisio/translations/it/LC_MESSAGES/messages.mo +0 -0
  39. geovisio-2.8.1/geovisio/translations/it/LC_MESSAGES/messages.po +884 -0
  40. geovisio-2.8.1/geovisio/translations/ja/LC_MESSAGES/messages.mo +0 -0
  41. geovisio-2.8.1/geovisio/translations/ja/LC_MESSAGES/messages.po +807 -0
  42. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/ko/LC_MESSAGES/messages.mo +0 -0
  43. geovisio-2.8.1/geovisio/translations/messages.pot +763 -0
  44. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/nl/LC_MESSAGES/messages.mo +0 -0
  45. geovisio-2.8.1/geovisio/translations/pl/LC_MESSAGES/messages.mo +0 -0
  46. geovisio-2.8.1/geovisio/translations/pl/LC_MESSAGES/messages.po +728 -0
  47. geovisio-2.8.1/geovisio/translations/zh_Hant/LC_MESSAGES/messages.mo +0 -0
  48. geovisio-2.7.1/geovisio/translations/messages.pot → geovisio-2.8.1/geovisio/translations/zh_Hant/LC_MESSAGES/messages.po +135 -110
  49. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/auth.py +80 -8
  50. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/link.py +3 -2
  51. geovisio-2.8.1/geovisio/utils/loggers.py +14 -0
  52. geovisio-2.8.1/geovisio/utils/model_query.py +55 -0
  53. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/params.py +7 -4
  54. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/pictures.py +12 -43
  55. geovisio-2.8.1/geovisio/utils/semantics.py +120 -0
  56. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/sequences.py +10 -1
  57. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/tokens.py +5 -3
  58. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/upload_set.py +71 -22
  59. geovisio-2.8.1/geovisio/utils/website.py +53 -0
  60. geovisio-2.8.1/geovisio/web/annotations.py +17 -0
  61. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/auth.py +11 -6
  62. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/collections.py +217 -61
  63. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/configuration.py +17 -1
  64. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/docs.py +67 -67
  65. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/items.py +220 -96
  66. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/map.py +48 -18
  67. geovisio-2.8.1/geovisio/web/pages.py +240 -0
  68. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/params.py +17 -0
  69. geovisio-2.8.1/geovisio/web/prepare.py +165 -0
  70. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/stac.py +17 -4
  71. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/tokens.py +14 -4
  72. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/upload_set.py +108 -14
  73. geovisio-2.8.1/geovisio/web/users.py +433 -0
  74. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/workers/runner_pictures.py +61 -22
  75. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20221201_02_ZG8AR-camera-information.py +3 -0
  76. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241011_01_e1j5C-pic-quality.sql +2 -0
  77. geovisio-2.8.1/migrations/20241128_01_ugthx-job-queue-args.rollback.sql +25 -0
  78. geovisio-2.8.1/migrations/20241128_01_ugthx-job-queue-args.sql +31 -0
  79. geovisio-2.8.1/migrations/20241224_01_xuN6n-delete-upload-set-on-last-picture-trg-statement.rollback.sql +27 -0
  80. geovisio-2.8.1/migrations/20241224_01_xuN6n-delete-upload-set-on-last-picture-trg-statement.sql +28 -0
  81. geovisio-2.8.1/migrations/20250102_01_EElhA-rm-cameras.rollback.sql +126 -0
  82. geovisio-2.8.1/migrations/20250102_01_EElhA-rm-cameras.sql +30 -0
  83. geovisio-2.8.1/migrations/20250107_01_EQN9v-tags-tables.rollback.sql +10 -0
  84. geovisio-2.8.1/migrations/20250107_01_EQN9v-tags-tables.sql +58 -0
  85. geovisio-2.8.1/migrations/20250109_01_4OOP4-pages.rollback.sql +4 -0
  86. geovisio-2.8.1/migrations/20250109_01_4OOP4-pages.sql +10 -0
  87. geovisio-2.8.1/migrations/20250114_01_ABaaL-collaborative-metadata-editing.rollback.sql +7 -0
  88. geovisio-2.8.1/migrations/20250114_01_ABaaL-collaborative-metadata-editing.sql +16 -0
  89. geovisio-2.8.1/migrations/20250123_01_Ececu-tos-acceptance.rollback.sql +5 -0
  90. geovisio-2.8.1/migrations/20250123_01_Ececu-tos-acceptance.sql +5 -0
  91. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/data/readme.md +2 -0
  92. {geovisio-2.7.1 → geovisio-2.8.1}/pyproject.toml +5 -4
  93. {geovisio-2.7.1 → geovisio-2.8.1}/tests/conftest.py +212 -10
  94. geovisio-2.8.1/tests/data/xpcomment.jpg +0 -0
  95. {geovisio-2.7.1 → geovisio-2.8.1}/tests/fixed_data/conftest.py +3 -1
  96. {geovisio-2.7.1 → geovisio-2.8.1}/tests/fixed_data/test_api_conformance.py +1 -0
  97. {geovisio-2.7.1 → geovisio-2.8.1}/tests/fixed_data/test_many_sequences.py +70 -8
  98. {geovisio-2.7.1 → geovisio-2.8.1}/tests/fixed_data/test_web_collections_one_collection.py +80 -31
  99. {geovisio-2.7.1 → geovisio-2.8.1}/tests/integration/conftest.py +1 -0
  100. {geovisio-2.7.1 → geovisio-2.8.1}/tests/integration/test_auth.py +92 -27
  101. {geovisio-2.7.1 → geovisio-2.8.1}/tests/integration/test_tokens.py +68 -16
  102. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_factory.py +16 -7
  103. geovisio-2.8.1/tests/test_model_query.py +41 -0
  104. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_utils_auth.py +9 -1
  105. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_utils_pictures.py +29 -1
  106. geovisio-2.8.1/tests/test_utils_tags.py +63 -0
  107. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_utils_upload_set.py +150 -0
  108. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_collections.py +309 -7
  109. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_configuration.py +25 -1
  110. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_excluded_areas.py +3 -3
  111. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_items.py +509 -10
  112. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_map.py +1 -0
  113. geovisio-2.8.1/tests/test_web_pages.py +160 -0
  114. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_pictures.py +5 -24
  115. geovisio-2.8.1/tests/test_web_prepare.py +385 -0
  116. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_stac.py +1 -0
  117. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_upload_set.py +578 -130
  118. geovisio-2.8.1/tests/test_web_users.py +402 -0
  119. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_workers_runner_pictures.py +62 -6
  120. geovisio-2.7.1/docker/full-keycloak-auth/keycloak-realm.json +0 -2218
  121. geovisio-2.7.1/docker/keycloak-realm.json +0 -2005
  122. geovisio-2.7.1/geovisio/translations/de/LC_MESSAGES/messages.mo +0 -0
  123. geovisio-2.7.1/geovisio/translations/en/LC_MESSAGES/messages.mo +0 -0
  124. geovisio-2.7.1/geovisio/translations/es/LC_MESSAGES/messages.mo +0 -0
  125. geovisio-2.7.1/geovisio/translations/fr/LC_MESSAGES/messages.mo +0 -0
  126. geovisio-2.7.1/geovisio/translations/hu/LC_MESSAGES/messages.mo +0 -0
  127. geovisio-2.7.1/geovisio/web/users.py +0 -274
  128. geovisio-2.7.1/tests/test_web_users.py +0 -228
  129. {geovisio-2.7.1 → geovisio-2.8.1}/.dockerignore +0 -0
  130. {geovisio-2.7.1 → geovisio-2.8.1}/.flaskenv +0 -0
  131. {geovisio-2.7.1 → geovisio-2.8.1}/.gitignore +0 -0
  132. {geovisio-2.7.1 → geovisio-2.8.1}/.gitlab-ci.yml +0 -0
  133. {geovisio-2.7.1 → geovisio-2.8.1}/.pre-commit-config.yaml +0 -0
  134. {geovisio-2.7.1 → geovisio-2.8.1}/CODE_OF_CONDUCT.md +0 -0
  135. {geovisio-2.7.1 → geovisio-2.8.1}/Dockerfile +0 -0
  136. {geovisio-2.7.1 → geovisio-2.8.1}/LICENSE +0 -0
  137. {geovisio-2.7.1 → geovisio-2.8.1}/Makefile +0 -0
  138. {geovisio-2.7.1 → geovisio-2.8.1}/Procfile +0 -0
  139. {geovisio-2.7.1 → geovisio-2.8.1}/README.md +0 -0
  140. {geovisio-2.7.1 → geovisio-2.8.1}/babel.cfg +0 -0
  141. {geovisio-2.7.1 → geovisio-2.8.1}/bin/post_compile +0 -0
  142. {geovisio-2.7.1 → geovisio-2.8.1}/bin/run_production_api.sh +0 -0
  143. {geovisio-2.7.1 → geovisio-2.8.1}/docker/docker-compose-blurring.yml +0 -0
  144. {geovisio-2.7.1 → geovisio-2.8.1}/docker/docker-compose-keycloak.yml +0 -0
  145. {geovisio-2.7.1 → geovisio-2.8.1}/docker/docker-entrypoint.sh +0 -0
  146. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/1-init-keycloak-db.sh +0 -0
  147. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/Dockerfile.keycloak +0 -0
  148. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/docker-compose.yml +0 -0
  149. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/env.example +0 -0
  150. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/pictures_storage/.gitkeep +0 -0
  151. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-keycloak-auth/robots.txt +0 -0
  152. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-osm-auth/docker-compose.yml +0 -0
  153. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-osm-auth/env.example +0 -0
  154. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-osm-auth/nginx.conf +0 -0
  155. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-osm-auth/pictures_storage/.gitkeep +0 -0
  156. {geovisio-2.7.1 → geovisio-2.8.1}/docker/full-osm-auth/robots.txt +0 -0
  157. {geovisio-2.7.1 → geovisio-2.8.1}/docker-compose.yml +0 -0
  158. {geovisio-2.7.1 → geovisio-2.8.1}/docs/api/api.md +0 -0
  159. {geovisio-2.7.1 → geovisio-2.8.1}/docs/api/openapi.md +0 -0
  160. {geovisio-2.7.1 → geovisio-2.8.1}/docs/dev/releases.md +0 -0
  161. {geovisio-2.7.1 → geovisio-2.8.1}/docs/images/geovisio-architecture-simple.excalidraw +0 -0
  162. {geovisio-2.7.1 → geovisio-2.8.1}/docs/images/geovisio-architecture-simple.png +0 -0
  163. {geovisio-2.7.1 → geovisio-2.8.1}/docs/images/geovisio_authentication_flow.svg +0 -0
  164. {geovisio-2.7.1 → geovisio-2.8.1}/docs/index.md +0 -0
  165. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/database_setup.md +0 -0
  166. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/deep_dive/blur_api.md +0 -0
  167. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/deep_dive/excluded_areas.md +0 -0
  168. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/deep_dive/external_Identity_Providers.md +0 -0
  169. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/deep_dive/pictures_processing.md +0 -0
  170. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/install.md +0 -0
  171. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/running.md +0 -0
  172. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/tutorials/osm_oauth_client.png +0 -0
  173. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/tutorials/running_docker_osm_auth.md +0 -0
  174. {geovisio-2.7.1 → geovisio-2.8.1}/docs/install/update.md +0 -0
  175. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/admin_cli/cleanup.py +0 -0
  176. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/admin_cli/db.py +0 -0
  177. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/admin_cli/default_account_tokens.py +0 -0
  178. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/admin_cli/reorder_sequences.py +0 -0
  179. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/admin_cli/sequence_heading.py +0 -0
  180. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/db_migrations.py +0 -0
  181. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/errors.py +0 -0
  182. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/el/LC_MESSAGES/messages.po +0 -0
  183. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/fi/LC_MESSAGES/messages.po +0 -0
  184. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/ko/LC_MESSAGES/messages.po +0 -0
  185. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/translations/nl/LC_MESSAGES/messages.po +0 -0
  186. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/__init__.py +0 -0
  187. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/db.py +0 -0
  188. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/excluded_areas.py +0 -0
  189. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/extent.py +0 -0
  190. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/fields.py +0 -0
  191. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/filesystems.py +0 -0
  192. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/reports.py +0 -0
  193. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/sentry.py +0 -0
  194. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/utils/time.py +0 -0
  195. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/__init__.py +0 -0
  196. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/excluded_areas.py +0 -0
  197. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/pictures.py +0 -0
  198. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/reports.py +0 -0
  199. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/rss.py +0 -0
  200. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/web/utils.py +0 -0
  201. {geovisio-2.7.1 → geovisio-2.8.1}/geovisio/workers/__init__.py +0 -0
  202. {geovisio-2.7.1 → geovisio-2.8.1}/images/big_picture.png +0 -0
  203. {geovisio-2.7.1 → geovisio-2.8.1}/images/big_picture.svg +0 -0
  204. {geovisio-2.7.1 → geovisio-2.8.1}/images/favicon.ico +0 -0
  205. {geovisio-2.7.1 → geovisio-2.8.1}/images/favicon.svg +0 -0
  206. {geovisio-2.7.1 → geovisio-2.8.1}/images/logo.png +0 -0
  207. {geovisio-2.7.1 → geovisio-2.8.1}/images/logo.svg +0 -0
  208. {geovisio-2.7.1 → geovisio-2.8.1}/images/logo_full.png +0 -0
  209. {geovisio-2.7.1 → geovisio-2.8.1}/images/logo_full.svg +0 -0
  210. {geovisio-2.7.1 → geovisio-2.8.1}/images/sponsors.png +0 -0
  211. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20221201_01_wpCGc-initial-schema.rollback.sql +0 -0
  212. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20221201_01_wpCGc-initial-schema.sql +0 -0
  213. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20221222_01_fsB6f-add-account.rollback.sql +0 -0
  214. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20221222_01_fsB6f-add-account.sql +0 -0
  215. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230113_01_0co97-rm-metadata-duplicates.rollback.sql +0 -0
  216. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230113_01_0co97-rm-metadata-duplicates.sql +0 -0
  217. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230116_01_9PkjZ-add-oauth-provider.rollback.sql +0 -0
  218. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230116_01_9PkjZ-add-oauth-provider.sql +0 -0
  219. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230117_01_K71Pd-pictures-ts-index.rollback.sql +0 -0
  220. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230117_01_K71Pd-pictures-ts-index.sql +0 -0
  221. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230130_01_VRIv2-sequences-account.rollback.sql +0 -0
  222. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230130_01_VRIv2-sequences-account.sql +0 -0
  223. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230324_01_ba9WA-status.rollback.sql +0 -0
  224. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230324_01_ba9WA-status.sql +0 -0
  225. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230324_02_efgI6-picture-process.rollback.sql +0 -0
  226. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230324_02_efgI6-picture-process.sql +0 -0
  227. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230407_01_wofh1-computed-headings.rollback.sql +0 -0
  228. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230407_01_wofh1-computed-headings.sql +0 -0
  229. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.rollback.sql +0 -0
  230. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.sql +0 -0
  231. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.rollback.sql +0 -0
  232. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.sql +0 -0
  233. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230425_01_gYP77-pictures-edits-triggers.rollback.sql +0 -0
  234. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230425_01_gYP77-pictures-edits-triggers.sql +0 -0
  235. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230427_01_k5e5w-timestamps.rollback.sql +0 -0
  236. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230427_01_k5e5w-timestamps.sql +0 -0
  237. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230511_01_TdpKo-tokens.rollback.sql +0 -0
  238. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230511_01_TdpKo-tokens.sql +0 -0
  239. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230615_01_u7aRf-pic-delete-cascade.rollback.sql +0 -0
  240. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230615_01_u7aRf-pic-delete-cascade.sql +0 -0
  241. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230623_01_y1SiQ-pic-deletion-task.rollback.sql +0 -0
  242. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230623_01_y1SiQ-pic-deletion-task.sql +0 -0
  243. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230629_01_ZdB3i-compute-heading-0.sql +0 -0
  244. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230711_01_JGSPB-inserted-at-index.rollback.sql +0 -0
  245. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230711_01_JGSPB-inserted-at-index.sql +0 -0
  246. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230720_01_EyQ0e-sequences-summary.rollback.sql +0 -0
  247. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230720_01_EyQ0e-sequences-summary.sql +0 -0
  248. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230803_01_aXusm-fix-sequence-computed.rollback.sql +0 -0
  249. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20230803_01_aXusm-fix-sequence-computed.sql +0 -0
  250. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231018_01_4G3YE-pictures-exiv2.rollback.sql +0 -0
  251. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231018_01_4G3YE-pictures-exiv2.sql +0 -0
  252. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.rollback.sql +0 -0
  253. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.sql +0 -0
  254. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231110_01_3p070-jobs-error.rollback.sql +0 -0
  255. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231110_01_3p070-jobs-error.sql +0 -0
  256. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231121_01_v6oBF-more-specific-triggers.rollback.sql +0 -0
  257. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231121_01_v6oBF-more-specific-triggers.sql +0 -0
  258. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231121_02_1uZXT-deleted-tag.rollback.sql +0 -0
  259. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20231121_02_1uZXT-deleted-tag.sql +0 -0
  260. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240115_01_FatLR-token-delete-cascade.rollback.sql +0 -0
  261. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240115_01_FatLR-token-delete-cascade.sql +0 -0
  262. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240220_01_9wZs0-sequence-current-sort.rollback.sql +0 -0
  263. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240220_01_9wZs0-sequence-current-sort.sql +0 -0
  264. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240223_01_LsMHB-remove-binary-fields.sql +0 -0
  265. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240226_01_8iXl1-track-changes.rollback.sql +0 -0
  266. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240226_01_8iXl1-track-changes.sql +0 -0
  267. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.rollback.sql +0 -0
  268. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.sql +0 -0
  269. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240308_01_aF0Jb-migrate-sequence-geom-multi-linestring.sql +0 -0
  270. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240409_01_jnhra-pictures-grid.rollback.sql +0 -0
  271. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240409_01_jnhra-pictures-grid.sql +0 -0
  272. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.rollback.sql +0 -0
  273. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.sql +0 -0
  274. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.rollback.sql +0 -0
  275. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.sql +0 -0
  276. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240507_01_eBfqZ-refresh-table.rollback.sql +0 -0
  277. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240507_01_eBfqZ-refresh-table.sql +0 -0
  278. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240507_02_dzVET-picture-grid-public.rollback.sql +0 -0
  279. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240507_02_dzVET-picture-grid-public.sql +0 -0
  280. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240514_01_IT7DD-picture-delete-cascade.rollback.sql +0 -0
  281. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240514_01_IT7DD-picture-delete-cascade.sql +0 -0
  282. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240611_01_jftHn-content-md5.rollback.sql +0 -0
  283. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240611_01_jftHn-content-md5.sql +0 -0
  284. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240612_01_yNcuE-upload-set.rollback.sql +0 -0
  285. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240612_01_yNcuE-upload-set.sql +0 -0
  286. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240617_01_tKtlx-md5-concurrent-index.rollback.sql +0 -0
  287. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240617_01_tKtlx-md5-concurrent-index.sql +0 -0
  288. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240625_01_XMZ24-fix-sequence-stat-on-pic-insertion.rollback.sql +0 -0
  289. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240625_01_XMZ24-fix-sequence-stat-on-pic-insertion.sql +0 -0
  290. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240708_01_Xn7IH-job-queue.rollback.sql +0 -0
  291. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240708_01_Xn7IH-job-queue.sql +0 -0
  292. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240715_01_Hca9V-upload-set-metadata.rollback.sql +0 -0
  293. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240715_01_Hca9V-upload-set-metadata.sql +0 -0
  294. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240723_01_ePGFe-upload-set-files.rollback.sql +0 -0
  295. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240723_01_ePGFe-upload-set-files.sql +0 -0
  296. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240729_01_HALjj-upload-set-sort.rollback.sql +0 -0
  297. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240729_01_HALjj-upload-set-sort.sql +0 -0
  298. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240730_01_2BaCy-improve-deletion-triggers.rollback.sql +0 -0
  299. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240730_01_2BaCy-improve-deletion-triggers.sql +0 -0
  300. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240730_02_aRymN-rejection-status.rollback.sql +0 -0
  301. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240730_02_aRymN-rejection-status.sql +0 -0
  302. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240801_01_DOqmf-reports.rollback.sql +0 -0
  303. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240801_01_DOqmf-reports.sql +0 -0
  304. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240801_01_uKqPo-remove-files-delete-cascade.rollback.sql +0 -0
  305. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240801_01_uKqPo-remove-files-delete-cascade.sql +0 -0
  306. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240813_01_T1XkO-sequences-geom-splits.rollback.sql +0 -0
  307. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240813_01_T1XkO-sequences-geom-splits.sql +0 -0
  308. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240820_01_aB2ZK-exclusion-zones.rollback.sql +0 -0
  309. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240820_01_aB2ZK-exclusion-zones.sql +0 -0
  310. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240902_01_MDqSj-user-agent.rollback.sql +0 -0
  311. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240902_01_MDqSj-user-agent.sql +0 -0
  312. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240904_01_gFjlV-files-rejection-msg.rollback.sql +0 -0
  313. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240904_01_gFjlV-files-rejection-msg.sql +0 -0
  314. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240905_01_C8F6U-conflicts.rollback.sql +0 -0
  315. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240905_01_C8F6U-conflicts.sql +0 -0
  316. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240905_01_E5Ki0-upload-set-delete.rollback.sql +0 -0
  317. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240905_01_E5Ki0-upload-set-delete.sql +0 -0
  318. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240909_01_Muc22-unique-grid-index.rollback.sql +0 -0
  319. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240909_01_Muc22-unique-grid-index.sql +0 -0
  320. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240912_01_dAALm-account-index.rollback.sql +0 -0
  321. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20240912_01_dAALm-account-index.sql +0 -0
  322. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241004_01_d1zfe-pictures-grid-360.rollback.sql +0 -0
  323. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241004_01_d1zfe-pictures-grid-360.sql +0 -0
  324. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241011_01_e1j5C-pic-quality.rollback.sql +0 -0
  325. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241017_01_GuOjF-pic-quality-update.rollback.sql +0 -0
  326. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241017_01_GuOjF-pic-quality-update.sql +0 -0
  327. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241017_01_RiFlm-pictures-to-delete.rollback.sql +0 -0
  328. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241017_01_RiFlm-pictures-to-delete.sql +0 -0
  329. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241104_01_yhRVu-rejection-details.rollback.sql +0 -0
  330. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/20241104_01_yhRVu-rejection-details.sql +0 -0
  331. {geovisio-2.7.1 → geovisio-2.8.1}/migrations/data/sensor_data.json +0 -0
  332. {geovisio-2.7.1 → geovisio-2.8.1}/mkdocs.yml +0 -0
  333. {geovisio-2.7.1 → geovisio-2.8.1}/runtime.txt +0 -0
  334. {geovisio-2.7.1 → geovisio-2.8.1}/tests/__init__.py +0 -0
  335. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/1.jpg +0 -0
  336. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/1_blurred.jpg +0 -0
  337. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/2.jpg +0 -0
  338. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/3.jpg +0 -0
  339. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/4.jpg +0 -0
  340. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/5.jpg +0 -0
  341. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/b1.jpg +0 -0
  342. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/b2.jpg +0 -0
  343. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/c1.jpg +0 -0
  344. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/crop.jpg +0 -0
  345. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/d1.jpg +0 -0
  346. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e1.jpg +0 -0
  347. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e1_artist.jpg +0 -0
  348. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e1_without_exif.jpg +0 -0
  349. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e2.jpg +0 -0
  350. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e3.jpg +0 -0
  351. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e4.jpg +0 -0
  352. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/e5.jpg +0 -0
  353. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/focal_zero.jpg +0 -0
  354. {geovisio-2.7.1 → geovisio-2.8.1}/tests/data/invalid_exif.jpg +0 -0
  355. {geovisio-2.7.1 → geovisio-2.8.1}/tests/fixed_data/__init__.py +0 -0
  356. {geovisio-2.7.1 → geovisio-2.8.1}/tests/integration/__init__.py +0 -0
  357. {geovisio-2.7.1 → geovisio-2.8.1}/tests/integration/docker-compose-auth-test.yml +0 -0
  358. {geovisio-2.7.1 → geovisio-2.8.1}/tests/integration/test_s3.py +0 -0
  359. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_admin_cli_cleanup.py +0 -0
  360. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_db_migrations.py +0 -0
  361. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_utils_filesystems.py +0 -0
  362. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_utils_reports.py +0 -0
  363. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_params.py +0 -0
  364. {geovisio-2.7.1 → geovisio-2.8.1}/tests/test_web_reports.py +0 -0
  365. {geovisio-2.7.1 → geovisio-2.8.1}/yoyo.ini +0 -0
@@ -9,6 +9,56 @@ Before _1.6.0_, [Viewer](https://gitlab.com/panoramax/clients/web-viewer) was em
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [2.8.1] - 2025-03-13
13
+
14
+ ### Added
15
+
16
+ - Add a way to know the role and permission of the logged user in `/api/users/me`.
17
+ - Add the ability to update an upload set parameters through a `PATCH` on `/api/upload_sets/:id`.
18
+ - Add a debug endpoint `/api/debug_headers` that can be handy when setting a new instance to check if the proxies are correctly setting the headers.
19
+
20
+ ### Fixed
21
+
22
+ - Fix a bug where dispatching several time the same upload set would not cleanup unused sequences.
23
+
24
+ ### Changed
25
+
26
+ - Only display `tos_accepted` field in `/api/users/me` if ToS are mandatory.
27
+
28
+ ## [2.8.0] - 2025-02-10
29
+
30
+ ### Added
31
+
32
+ - Add the ability to export a user's collections in a CSV file by either providing a `format` query parameter or with the `Accept: text/csv` header. The CSV export is not limited to the first 1000 collections as the JSON API.
33
+ - More metadata can be defined for the API in `API_SUMMARY` environment variable: contact email and geographical coverage
34
+ - Add the ability to blur again a picture/sequence, by calling the `/api/collections/:id/prepare`/`/api/collections/:id/items/:id/prepare` endpoints.
35
+ - Add the ability to change a picture's capture time, latitude and longitude using the PATCH `/api/collections/:id/items/:id` route.
36
+ - Add the number of collection to the endpoint `/api/users/:id/collection`
37
+ - Add _pages_ management to handle legal mentions and terms of service storage in database. New routes `/api/pages` allow to create, list, delete these pages in several languages.
38
+ - In vector tiles, pictures have a new `first_sequence` property for an easier access to sequence UUID.
39
+ - Add a way to add tags on pictures and sequences, using the PATCH `/api/collections/:id/items/:id` and `/api/collections/:id` routes.
40
+ - Add a way for a user to restrict the collaborative editing of its pictures' metadata. This is done by setting the `collaborative_metadata` field of the user in the authenticated API endpoint `/api/users/me` to `false`. If not set, the instance's `collaborative_metadata` default value is used. If set to `true`, anyone with an account can update the heading / position of a pictures, and the `relative_heading` of a whole sequence.
41
+ - Add a CLI command to set the role of an account: `flask user <ACCOUNT_ID_OR_NAME> --set-role <ROLE>` (and the user can be created if not exist with the `--create` flag).
42
+ - Add a way to accept the terms of service for a user.
43
+
44
+ ### Changed
45
+
46
+ - We can now view the files of an upload set as anonymous, without needing to be authenticated. It's because this does not contain any sensitive information (file name, md5, size, ...), not the picture in itself.
47
+ - Cameras generic metadata (sensor width, GPS accuracy) are now stored in GeoPicture Tag Reader code instead of a `cameras` table in API database.
48
+ - Mark the `/api/users/<uuid:userId>/catalog` route as deprecated, in favor of `/api/users/<uuid:userId>/collection` that supports more filtering/sorting parameters and return more information.
49
+ - `/api/users/me/collection` is no longer a HTTP 302 redirect to `/api/users/:userId/collection`, but returns directly the collection of the user.
50
+ - The user `elysee` in the example docker compose `docker-compose-full.yml` is now created with the role `admin`.
51
+ - If the instance is configured without an explicit `API_DEFAULT_COLLABORATIVE_METADATA_EDITING` settigs, pictures' metadata will be editable by any one with an account.
52
+ - If the instance is configured with an explicit `API_ENFORCE_TOS_ACCEPTANCE` setting, the instance will not accept pictures if the user has not accepted the terms of service.
53
+
54
+ ### Fixed
55
+
56
+ - Fix the upload set dispatch in cases where a picture was not linked to a file (due to a bug at upload time, also fixed). Also retry the dispatch job if it fails.
57
+ - List of user collection CSV export was failing for some collections.
58
+ - Null Unicode character in EXIF fields was breaking picture insertion in database (commonly found in XPComment field).
59
+ - Handle limit parameter in `/api/users/me/catalog` route.
60
+ - Doc for vector tiles was not up-to-date (missing properties and old zoom level values).
61
+
12
62
  ## [2.7.1] - 2024-11-15
13
63
 
14
64
  ### Added
@@ -572,7 +622,9 @@ FLASK_APP="src" flask process-sequences
572
622
  - Viewer based on Photo Sphere Viewer automatically calling API to search and retrieve pictures
573
623
  - Dockerfile for easy server setup
574
624
 
575
- [Unreleased]: https://gitlab.com/panoramax/server/api/-/compare/2.7.1...develop
625
+ [Unreleased]: https://gitlab.com/panoramax/server/api/-/compare/2.8.1...develop
626
+ [2.8.1]: https://gitlab.com/panoramax/server/api/-/compare/2.8.0...2.8.1
627
+ [2.8.0]: https://gitlab.com/panoramax/server/api/-/compare/2.7.1...2.8.0
576
628
  [2.7.1]: https://gitlab.com/panoramax/server/api/-/compare/2.7.0...2.7.1
577
629
  [2.7.0]: https://gitlab.com/panoramax/server/api/-/compare/2.6.0...2.7.0
578
630
  [2.6.0]: https://gitlab.com/panoramax/server/api/-/compare/2.5.0...2.6.0
@@ -583,7 +635,6 @@ FLASK_APP="src" flask process-sequences
583
635
  [2.2.0]: https://gitlab.com/panoramax/server/api/-/compare/2.1.1...2.2.0
584
636
  [2.1.1]: https://gitlab.com/panoramax/server/api/-/compare/2.1.0...2.1.1
585
637
  [2.1.0]: https://gitlab.com/panoramax/server/api/-/compare/2.0.2...2.1.0
586
- [2.0.2]: https://gitlab.com/panoramax/server/api/-/compare/2.0.1...2.0.2
587
638
  [2.0.1]: https://gitlab.com/panoramax/server/api/-/compare/2.0.0...2.0.1
588
639
  [2.0.0]: https://gitlab.com/panoramax/server/api/-/compare/1.5.0...2.0.0
589
640
  [1.5.0]: https://gitlab.com/panoramax/server/api/-/compare/1.4.1...1.5.0
@@ -1,18 +1,19 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: geovisio
3
- Version: 2.7.1
3
+ Version: 2.8.1
4
4
  Summary: GeoVisio API - Main
5
5
  Author-email: Adrien PAVIE <panieravide@riseup.net>, Antoine Desbordes <antoine.desbordes@gmail.com>
6
6
  Requires-Python: >=3.10
7
7
  Description-Content-Type: text/markdown
8
8
  Classifier: License :: OSI Approved :: MIT License
9
+ License-File: LICENSE
9
10
  Requires-Dist: Flask ~= 2.3
10
11
  Requires-Dist: psycopg[pool] ~= 3.1
11
12
  Requires-Dist: flasgger ~= 0.9.7
12
13
  Requires-Dist: Pillow ~= 9.4
13
14
  Requires-Dist: Flask-Cors ~= 4.0
14
15
  Requires-Dist: fs ~= 2.4
15
- Requires-Dist: fs-s3fs-forked ~= 1.1.3
16
+ Requires-Dist: fs-s3fs-forked ~= 1.1.4
16
17
  Requires-Dist: flask-compress ~= 1.14
17
18
  Requires-Dist: requests ~= 2.31
18
19
  Requires-Dist: yoyo-migrations ~= 8.2
@@ -20,17 +21,18 @@ Requires-Dist: psycopg-binary ~= 3.1
20
21
  Requires-Dist: python-dotenv ~= 0.21
21
22
  Requires-Dist: authlib ~= 1.2
22
23
  Requires-Dist: Flask-Executor ~= 1.0
23
- Requires-Dist: geopic-tag-reader[write-exif] == 1.3.1
24
+ Requires-Dist: geopic-tag-reader[write-exif] == 1.4.2
24
25
  Requires-Dist: rfeed ~= 1.1.1
25
26
  Requires-Dist: sentry-sdk[flask] ~= 1.31
26
27
  Requires-Dist: pygeofilter[backend-native] ~= 0.2.4
27
- Requires-Dist: python-dateutil ~= 2.8.2
28
+ Requires-Dist: python-dateutil ~= 2.9.0
28
29
  Requires-Dist: tzdata ~= 2024.1
29
30
  Requires-Dist: croniter ~= 2.0.5
30
31
  Requires-Dist: pydantic ~= 2.7
31
32
  Requires-Dist: pydantic-extra-types ~= 2.7
32
33
  Requires-Dist: flask-babel ~= 4.0.0
33
34
  Requires-Dist: geojson-pydantic ~= 1.1.0
35
+ Requires-Dist: email-validator ~= 2.2.0
34
36
  Requires-Dist: flit ~= 3.9.0 ; extra == "build"
35
37
  Requires-Dist: coverage ~= 6.5 ; extra == "dev"
36
38
  Requires-Dist: protobuf ~= 4.21 ; extra == "dev"
@@ -45,7 +47,7 @@ Requires-Dist: black ~= 24.1 ; extra == "dev"
45
47
  Requires-Dist: pre-commit ~= 3.3 ; extra == "dev"
46
48
  Requires-Dist: pyyaml ~= 6.0 ; extra == "dev"
47
49
  Requires-Dist: openapi-spec-validator ~= 0.7 ; extra == "dev"
48
- Requires-Dist: stac-api-validator ~= 0.6.3 ; extra == "dev"
50
+ Requires-Dist: stac-api-validator ~= 0.6.4 ; extra == "dev"
49
51
  Requires-Dist: mkdocs-material ~= 9.5.21 ; extra == "docs"
50
52
  Requires-Dist: mkdocs-swagger-ui-tag ~= 0.6.10 ; extra == "docs"
51
53
  Project-URL: Home, https://gitlab.com/panoramax/server/api
@@ -5,7 +5,18 @@
5
5
  # * the blurring API is accessible through http://localhost:5500
6
6
  # * the website is accessible through http://localhost:3000
7
7
  # (the database is not on the local network since only the backend need to access it)
8
- # if the port are alreay binded on your system, change them in this file
8
+ # if the port are alreay binded on your system, change them in this file.
9
+ # An admin user is provided with the name `elysee` and the password `password`.
10
+
11
+
12
+ x-base-api: &api-default
13
+ image: panoramax/api:${GEOVISIO_IMAGE_TAG:-latest}
14
+ build:
15
+ context: ..
16
+ dockerfile: Dockerfile
17
+ cache_from:
18
+ - registry.gitlab.com/panoramax/server/api:build_cache
19
+
9
20
 
10
21
  services:
11
22
  auth:
@@ -31,12 +42,7 @@ services:
31
42
  restart: always
32
43
 
33
44
  migrations:
34
- image: panoramax/api:latest
35
- build:
36
- context: ..
37
- dockerfile: Dockerfile
38
- cache_from:
39
- - registry.gitlab.com/panoramax/server/api:build_cache
45
+ <<: *api-default
40
46
  command: db-upgrade
41
47
  environment:
42
48
  DB_URL: postgres://gvs:gvspwd@db/geovisio
@@ -44,13 +50,22 @@ services:
44
50
  db:
45
51
  condition: service_healthy
46
52
 
53
+ role-initializer:
54
+ # To have a useable instance, we set the already created `elysee` account as admin.
55
+ <<: *api-default
56
+ entrypoint:
57
+ - /bin/bash
58
+ - -c
59
+ - |
60
+ python3 -m flask user elysee --set-role admin --create
61
+ depends_on:
62
+ migrations:
63
+ condition: service_completed_successfully
64
+ environment:
65
+ DB_URL: postgres://gvs:gvspwd@db/geovisio
66
+
47
67
  api:
48
- image: panoramax/api:latest
49
- build:
50
- context: ..
51
- dockerfile: Dockerfile
52
- cache_from:
53
- - registry.gitlab.com/panoramax/server/api:build_cache
68
+ <<: *api-default
54
69
  command: api
55
70
  depends_on:
56
71
  auth:
@@ -94,12 +109,7 @@ services:
94
109
  # Note: the blurring is done only if API_BLUR_URL is configured, and it's not the case in this docker compose
95
110
  # To have blurring, the docker-compose-blurring.yml file needs to be added (cf documentation in this docker compose file)
96
111
  background-worker:
97
- image: panoramax/api:latest
98
- build:
99
- context: ..
100
- dockerfile: Dockerfile
101
- cache_from:
102
- - registry.gitlab.com/panoramax/server/api:build_cache
112
+ <<: *api-default
103
113
  command: picture-worker
104
114
  depends_on:
105
115
  db:
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  minio:
3
- image: quay.io/minio/minio:RELEASE.2024-05-28T17-19-04Z
3
+ image: quay.io/minio/minio:RELEASE.2025-01-20T14-49-07Z
4
4
  command: server --console-address ":9001" /mnt/data
5
5
  ports:
6
6
  - 9000