geovisio 2.11.0__tar.gz → 2.12.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.11.0 → geovisio-2.12.0}/.dockerignore +3 -3
- {geovisio-2.11.0 → geovisio-2.12.0}/.gitignore +1 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/.gitlab-ci.yml +9 -9
- {geovisio-2.11.0 → geovisio-2.12.0}/.pre-commit-config.yaml +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/CHANGELOG.md +30 -6
- {geovisio-2.11.0 → geovisio-2.12.0}/Dockerfile +2 -2
- {geovisio-2.11.0 → geovisio-2.12.0}/PKG-INFO +6 -26
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/docker-compose-full.yml +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/docker-entrypoint.sh +2 -2
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/docker-compose.yml +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/nginx.conf +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-osm-auth/docker-compose.yml +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-osm-auth/nginx.conf +1 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/api/api.md +50 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/api/open_api.json +313 -25
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/dev/STAC_compatibility.md +30 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/dev/develop_server.md +28 -21
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/cli.md +60 -34
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/database_setup.md +16 -12
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/deep_dive/external_Identity_Providers.md +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/deep_dive/pictures_processing.md +8 -0
- geovisio-2.12.0/docs/install/deep_dive/visibility.md +27 -0
- geovisio-2.12.0/docs/install/index.md +13 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/install.md +16 -7
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/running.md +46 -19
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/settings.md +42 -10
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/tutorials/running_docker_keycloak.md +5 -5
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/tutorials/running_docker_osm_auth.md +14 -3
- geovisio-2.12.0/docs/install/update.md +8 -0
- geovisio-2.12.0/example.env +107 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/__init__.py +30 -2
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/db.py +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/db_migrations.py +2 -2
- geovisio-2.12.0/geovisio/migrations/20221201_02_ZG8AR-camera-information.rollback.sql +5 -0
- geovisio-2.12.0/geovisio/migrations/20221201_02_ZG8AR-camera-information.sql +10 -0
- geovisio-2.12.0/geovisio/templates/main.html +42 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/templates/viewer.html +8 -15
- geovisio-2.12.0/geovisio/translations/cy/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.11.0/geovisio/translations/messages.pot → geovisio-2.12.0/geovisio/translations/cy/LC_MESSAGES/messages.po +3 -4
- geovisio-2.12.0/geovisio/translations/en/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/en/LC_MESSAGES/messages.po +155 -149
- geovisio-2.12.0/geovisio/translations/messages.pot +821 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/cql2.py +22 -17
- geovisio-2.12.0/geovisio/utils/link.py +25 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/upload_set.py +42 -2
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/collections.py +80 -40
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/docs.py +1 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/items.py +54 -4
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/upload_set.py +2 -3
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/users.py +1 -1
- geovisio-2.12.0/images/favicon.ico +0 -0
- geovisio-2.12.0/images/favicon.svg +199 -0
- geovisio-2.12.0/images/logo.png +0 -0
- geovisio-2.12.0/images/logo.svg +187 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/mkdocs.yml +13 -10
- {geovisio-2.11.0 → geovisio-2.12.0}/pyproject.toml +16 -13
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/conftest.py +46 -36
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/integration/test_auth.py +0 -1
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_collections.py +72 -2
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_items.py +95 -2
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_prepare.py +11 -10
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_upload_set.py +93 -19
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_users.py +1 -3
- {geovisio-2.11.0 → geovisio-2.12.0}/uv.lock +148 -106
- {geovisio-2.11.0 → geovisio-2.12.0}/yoyo.ini +1 -1
- geovisio-2.11.0/docs/install/update.md +0 -8
- geovisio-2.11.0/geovisio/templates/main.html +0 -93
- geovisio-2.11.0/geovisio/translations/en/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.11.0/geovisio/utils/link.py +0 -15
- geovisio-2.11.0/images/big_picture.png +0 -0
- geovisio-2.11.0/images/big_picture.svg +0 -436
- geovisio-2.11.0/images/favicon.ico +0 -0
- geovisio-2.11.0/images/favicon.svg +0 -82
- geovisio-2.11.0/images/logo.png +0 -0
- geovisio-2.11.0/images/logo.svg +0 -156
- geovisio-2.11.0/images/logo_full.png +0 -0
- geovisio-2.11.0/images/logo_full.svg +0 -191
- geovisio-2.11.0/migrations/20221201_02_ZG8AR-camera-information.py +0 -49
- geovisio-2.11.0/migrations/data/readme.md +0 -7
- geovisio-2.11.0/migrations/data/sensor_data.json +0 -3711
- {geovisio-2.11.0 → geovisio-2.12.0}/.flaskenv +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/.python-version +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/CODE_OF_CONDUCT.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/LICENSE +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/Makefile +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/Procfile +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/README.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/babel.cfg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/bin/run_production_api.sh +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/docker-compose-blurring.yml +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/docker-compose-full-linux.yml +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/docker-compose-keycloak.yml +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/docker-compose-minio.yml +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/1-init-keycloak-db.sh +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/Dockerfile.keycloak +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/env.example +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/keycloak-realm.json +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/pictures_storage/.gitkeep +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-keycloak-auth/robots.txt +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-osm-auth/env.example +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-osm-auth/pictures_storage/.gitkeep +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/full-osm-auth/robots.txt +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker/keycloak-realm.json +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docker-compose.yml +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/api/openapi.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/dev/releases.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/images/geovisio-architecture-simple.excalidraw +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/images/geovisio-architecture-simple.png +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/images/geovisio_authentication_flow.svg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/index.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/deep_dive/blur_api.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/deep_dive/excluded_areas.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/deep_dive/semantics.md +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/docs/install/tutorials/osm_oauth_client.png +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/cleanup.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/default_account_tokens.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/reorder_sequences.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/sequence_heading.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/admin_cli/user.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/config_app.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/errors.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20221201_01_wpCGc-initial-schema.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20221201_01_wpCGc-initial-schema.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20221222_01_fsB6f-add-account.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20221222_01_fsB6f-add-account.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230113_01_0co97-rm-metadata-duplicates.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230113_01_0co97-rm-metadata-duplicates.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230116_01_9PkjZ-add-oauth-provider.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230116_01_9PkjZ-add-oauth-provider.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230117_01_K71Pd-pictures-ts-index.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230117_01_K71Pd-pictures-ts-index.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230130_01_VRIv2-sequences-account.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230130_01_VRIv2-sequences-account.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230324_01_ba9WA-status.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230324_01_ba9WA-status.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230324_02_efgI6-picture-process.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230324_02_efgI6-picture-process.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230407_01_wofh1-computed-headings.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230407_01_wofh1-computed-headings.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230425_01_gYP77-pictures-edits-triggers.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230425_01_gYP77-pictures-edits-triggers.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230427_01_k5e5w-timestamps.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230427_01_k5e5w-timestamps.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230511_01_TdpKo-tokens.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230511_01_TdpKo-tokens.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230615_01_u7aRf-pic-delete-cascade.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230615_01_u7aRf-pic-delete-cascade.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230623_01_y1SiQ-pic-deletion-task.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230623_01_y1SiQ-pic-deletion-task.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230629_01_ZdB3i-compute-heading-0.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230711_01_JGSPB-inserted-at-index.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230711_01_JGSPB-inserted-at-index.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230720_01_EyQ0e-sequences-summary.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230720_01_EyQ0e-sequences-summary.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230803_01_aXusm-fix-sequence-computed.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20230803_01_aXusm-fix-sequence-computed.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231018_01_4G3YE-pictures-exiv2.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231018_01_4G3YE-pictures-exiv2.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231110_01_3p070-jobs-error.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231110_01_3p070-jobs-error.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231121_01_v6oBF-more-specific-triggers.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231121_01_v6oBF-more-specific-triggers.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231121_02_1uZXT-deleted-tag.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20231121_02_1uZXT-deleted-tag.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240115_01_FatLR-token-delete-cascade.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240115_01_FatLR-token-delete-cascade.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240220_01_9wZs0-sequence-current-sort.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240220_01_9wZs0-sequence-current-sort.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240223_01_LsMHB-remove-binary-fields.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240226_01_8iXl1-track-changes.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240226_01_8iXl1-track-changes.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240308_01_aF0Jb-migrate-sequence-geom-multi-linestring.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240409_01_jnhra-pictures-grid.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240409_01_jnhra-pictures-grid.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240507_01_eBfqZ-refresh-table.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240507_01_eBfqZ-refresh-table.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240507_02_dzVET-picture-grid-public.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240507_02_dzVET-picture-grid-public.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240514_01_IT7DD-picture-delete-cascade.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240514_01_IT7DD-picture-delete-cascade.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240611_01_jftHn-content-md5.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240611_01_jftHn-content-md5.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240612_01_yNcuE-upload-set.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240612_01_yNcuE-upload-set.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240617_01_tKtlx-md5-concurrent-index.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240617_01_tKtlx-md5-concurrent-index.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240625_01_XMZ24-fix-sequence-stat-on-pic-insertion.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240625_01_XMZ24-fix-sequence-stat-on-pic-insertion.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240708_01_Xn7IH-job-queue.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240708_01_Xn7IH-job-queue.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240715_01_Hca9V-upload-set-metadata.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240715_01_Hca9V-upload-set-metadata.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240723_01_ePGFe-upload-set-files.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240723_01_ePGFe-upload-set-files.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240729_01_HALjj-upload-set-sort.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240729_01_HALjj-upload-set-sort.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240730_01_2BaCy-improve-deletion-triggers.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240730_01_2BaCy-improve-deletion-triggers.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240730_02_aRymN-rejection-status.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240730_02_aRymN-rejection-status.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240801_01_DOqmf-reports.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240801_01_DOqmf-reports.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240801_01_uKqPo-remove-files-delete-cascade.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240801_01_uKqPo-remove-files-delete-cascade.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240813_01_T1XkO-sequences-geom-splits.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240813_01_T1XkO-sequences-geom-splits.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240820_01_aB2ZK-exclusion-zones.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240820_01_aB2ZK-exclusion-zones.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240902_01_MDqSj-user-agent.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240902_01_MDqSj-user-agent.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240904_01_gFjlV-files-rejection-msg.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240904_01_gFjlV-files-rejection-msg.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240905_01_C8F6U-conflicts.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240905_01_C8F6U-conflicts.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240905_01_E5Ki0-upload-set-delete.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240905_01_E5Ki0-upload-set-delete.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240909_01_Muc22-unique-grid-index.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240909_01_Muc22-unique-grid-index.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240912_01_dAALm-account-index.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20240912_01_dAALm-account-index.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241004_01_d1zfe-pictures-grid-360.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241004_01_d1zfe-pictures-grid-360.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241011_01_e1j5C-pic-quality.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241011_01_e1j5C-pic-quality.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241017_01_GuOjF-pic-quality-update.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241017_01_GuOjF-pic-quality-update.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241017_01_RiFlm-pictures-to-delete.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241017_01_RiFlm-pictures-to-delete.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241104_01_yhRVu-rejection-details.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241104_01_yhRVu-rejection-details.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241128_01_ugthx-job-queue-args.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241128_01_ugthx-job-queue-args.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241224_01_xuN6n-delete-upload-set-on-last-picture-trg-statement.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20241224_01_xuN6n-delete-upload-set-on-last-picture-trg-statement.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250102_01_EElhA-rm-cameras.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250102_01_EElhA-rm-cameras.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250107_01_EQN9v-tags-tables.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250107_01_EQN9v-tags-tables.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250109_01_4OOP4-pages.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250109_01_4OOP4-pages.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250114_01_ABaaL-collaborative-metadata-editing.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250114_01_ABaaL-collaborative-metadata-editing.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250123_01_Ececu-tos-acceptance.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250123_01_Ececu-tos-acceptance.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250206_01_PjrEL-annotation-semantics.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250206_01_PjrEL-annotation-semantics.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250306_01_58oju-semantics-views.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250306_01_58oju-semantics-views.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250318_01_pANl1-semantics-functions.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250318_01_pANl1-semantics-functions.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250331_01_kRKjo-store-detections-id.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250331_01_kRKjo-store-detections-id.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250424_01_RBGXC-semantics-indexes.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250424_01_RBGXC-semantics-indexes.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250502_01_ZNmkU-job-task-read-metadata.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250502_01_ZNmkU-job-task-read-metadata.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250509_01_kMatW-deactivate-upload-set-split-dedup.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250509_01_kMatW-deactivate-upload-set-split-dedup.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250509_01_s3hYk-semantic-delete-cascade.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250509_01_s3hYk-semantic-delete-cascade.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250513_01_8WkZC-upload-sets-default-config.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250513_01_8WkZC-upload-sets-default-config.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250523_01_b11eW-picture-update-index.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250523_01_b11eW-picture-update-index.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250523_02_5ZXXh-update-picture-updated-at.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250523_02_5ZXXh-update-picture-updated-at.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250624_01_SETp6-job-warnings.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250624_01_SETp6-job-warnings.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250701_01_kr371-upload-set-semantics.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250701_01_kr371-upload-set-semantics.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250703_01_p2WVV-sequence-upload-set-link.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250703_01_p2WVV-sequence-upload-set-link.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250703_02_q0s3D-sequence-upload-set-fill.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250703_02_q0s3D-sequence-upload-set-fill.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250716_01_f8tcJ-check-empty-annotation-late.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250716_01_f8tcJ-check-empty-annotation-late.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250728_01_2zgur-upload-set-relative-heading.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250728_01_2zgur-upload-set-relative-heading.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250825_01_nCgkN-file-deletion-after-delete-no-dup.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250825_01_nCgkN-file-deletion-after-delete-no-dup.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250902_01_k5UTq-visibility-status.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250902_01_k5UTq-visibility-status.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250904_01_3uVKX-visibility-functions.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20250904_01_3uVKX-visibility-functions.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251110_01_bWEXo-report-visibility.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251110_01_bWEXo-report-visibility.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251124_01_0xdqi-page-updates.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251124_01_0xdqi-page-updates.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251127_01_S6Ci8-pictures-grid-visibility.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251127_01_S6Ci8-pictures-grid-visibility.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251202_01_Q3g59-pictures-grid-logged-only.rollback.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0/geovisio}/migrations/20251202_01_Q3g59-pictures-grid-logged-only.sql +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ar/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ar/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/be/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/be/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/br/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/br/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/da/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/da/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/de/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/de/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/el/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/el/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/eo/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/eo/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/es/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/es/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/fi/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/fi/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/fr/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/hu/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/hu/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/it/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/it/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ja/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ja/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ko/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ko/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/nl/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/nl/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/oc/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/oc/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/pl/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/pl/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/pt/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/pt/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/pt_BR/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/pt_BR/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/sv/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/sv/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ti/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/ti/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/tr/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/tr/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/uk/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/uk/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/zh_Hant/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/translations/zh_Hant/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/annotations.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/auth.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/db.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/excluded_areas.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/extent.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/fields.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/filesystems.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/items.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/loggers.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/model_query.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/params.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/pic_shape.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/pictures.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/reports.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/semantics.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/sentry.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/sequences.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/tags.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/time.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/tokens.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/users.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/utils/website.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/annotations.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/auth.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/configuration.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/excluded_areas.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/map.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/pages.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/params.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/pictures.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/prepare.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/queryables.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/reports.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/rss.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/stac.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/tokens.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/web/utils.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/workers/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/geovisio/workers/runner_pictures.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/images/sponsors.png +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/1.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/1_blurred.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/2.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/3.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/4.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/5.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/b1.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/b2.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/c1.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/crop.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/d1.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e1.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e1_artist.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e1_without_exif.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e2.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e3.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e4.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/e5.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/focal_zero.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/invalid_exif.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/data/xpcomment.jpg +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/conftest.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/test_api_conformance.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/test_many_semantics.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/test_many_sequences.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/test_many_sequences_different_insertion_date.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/test_visibility.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/fixed_data/test_web_collections_one_collection.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/integration/__init__.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/integration/conftest.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/integration/docker-compose-auth-test.yml +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/integration/test_s3.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/integration/test_tokens.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_admin_cli_cleanup.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_db_migrations.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_factory.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_model_query.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_annotations.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_auth.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_cql2.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_filesystems.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_items.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_pictures.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_reports.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_semantics.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_sequences.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_tags.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_upload_set.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_utils_users.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_annotation.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_configuration.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_excluded_areas.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_map.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_pages.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_params.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_pictures.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_queryables.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_reports.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_web_stac.py +0 -0
- {geovisio-2.11.0 → geovisio-2.12.0}/tests/test_workers_runner_pictures.py +0 -0
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
!/geovisio/**/*.pot
|
|
12
12
|
!/docker/docker-entrypoint.sh
|
|
13
13
|
!/images/*
|
|
14
|
-
!/migrations/*.sql
|
|
15
|
-
!/migrations/*.py
|
|
16
|
-
!/migrations/data/*.json
|
|
14
|
+
!/geovisio/migrations/*.sql
|
|
15
|
+
!/geovisio/migrations/*.py
|
|
16
|
+
!/geovisio/migrations/data/*.json
|
|
17
17
|
|
|
18
18
|
/**/__pycache__
|
|
@@ -19,9 +19,9 @@ code-fmt:
|
|
|
19
19
|
stage: test
|
|
20
20
|
only:
|
|
21
21
|
- merge_requests
|
|
22
|
-
image: python:3.
|
|
22
|
+
image: python:3.13-alpine
|
|
23
23
|
script:
|
|
24
|
-
- pip install
|
|
24
|
+
- pip install --group format
|
|
25
25
|
- black --fast --check .
|
|
26
26
|
|
|
27
27
|
test-in-docker:
|
|
@@ -67,7 +67,7 @@ test-in-docker:
|
|
|
67
67
|
--network=host
|
|
68
68
|
--volume ./tests:/opt/geovisio/tests
|
|
69
69
|
$TMP_CI_IMAGE
|
|
70
|
-
-c 'pip install -e .
|
|
70
|
+
-c 'pip install --upgrade pip && pip install -e . --group dev && /home/geovisio/.local/bin/pytest -m "not skipci"'
|
|
71
71
|
after_script:
|
|
72
72
|
- docker rmi $TMP_CI_IMAGE || true # accept failure, as image creation can fail
|
|
73
73
|
|
|
@@ -79,7 +79,7 @@ test:
|
|
|
79
79
|
- when: on_success
|
|
80
80
|
|
|
81
81
|
stage: test
|
|
82
|
-
image: python:3.
|
|
82
|
+
image: python:3.13
|
|
83
83
|
services:
|
|
84
84
|
- postgis/postgis:15-3.4
|
|
85
85
|
variables:
|
|
@@ -95,7 +95,7 @@ test:
|
|
|
95
95
|
script:
|
|
96
96
|
- apt update && apt install -y gettext
|
|
97
97
|
- mkdir -p /tmp/geovisio_test/tmp /tmp/geovisio_test/derivates /tmp/geovisio_test/permanent
|
|
98
|
-
- pip install -e .
|
|
98
|
+
- pip install -e . --group dev
|
|
99
99
|
- make i18n-po2code
|
|
100
100
|
- pytest -vv -m "not skipci"
|
|
101
101
|
|
|
@@ -149,7 +149,7 @@ publish-develop:
|
|
|
149
149
|
--network=host
|
|
150
150
|
--volume ./tests:/opt/geovisio/tests
|
|
151
151
|
"$DOCKER_IMAGE_NAME:develop"
|
|
152
|
-
-c 'pip install -e .
|
|
152
|
+
-c 'pip install --upgrade pip && pip install -e . --group dev && /home/geovisio/.local/bin/pytest -vv -m "not skipci"'
|
|
153
153
|
|
|
154
154
|
# publish image to dockerhub with the develop tag
|
|
155
155
|
- docker push "$DOCKER_IMAGE_NAME:develop"
|
|
@@ -195,7 +195,7 @@ publish-tag-and-latest:
|
|
|
195
195
|
--network=host
|
|
196
196
|
--volume ./tests:/opt/geovisio/tests
|
|
197
197
|
"$DOCKER_IMAGE_NAME:latest"
|
|
198
|
-
-c 'pip install -e .
|
|
198
|
+
-c 'pip install --upgrade pip && pip install -e . --group dev && ~/.local/bin/pytest -vv -m "not skipci"'
|
|
199
199
|
|
|
200
200
|
# publish image to dockerhub
|
|
201
201
|
- docker push $DOCKER_IMAGE_NAME:$CI_COMMIT_REF_NAME
|
|
@@ -205,9 +205,9 @@ publish-on-pypi:
|
|
|
205
205
|
only:
|
|
206
206
|
- tags
|
|
207
207
|
stage: deploy
|
|
208
|
-
image: python:3.
|
|
208
|
+
image: python:3.13
|
|
209
209
|
script:
|
|
210
210
|
- apt update && apt install -y gettext
|
|
211
|
-
- pip install
|
|
211
|
+
- pip install --group build
|
|
212
212
|
- make i18n-po2code
|
|
213
213
|
- flit publish # use [flit](https://flit.pypa.io/) and FLIT_USERNAME/FLIT_PASSWORD env var
|
|
@@ -9,6 +9,29 @@ Before _1.6.0_, [Viewer](https://gitlab.com/panoramax/clients/web-viewer) was em
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [2.12.0] - 2025-02-04
|
|
13
|
+
|
|
14
|
+
⚠️ Breaking change to install development dependencies ⚠️
|
|
15
|
+
|
|
16
|
+
To install development dependencies, you need to run `pip install -e . --group dev` instead of `pip install -e .[dev]`.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Add HATEOAS links to show permissions on collections/items/upload_sets. See https://docs.panoramax.fr/backend/api/api/#permissions for more details.
|
|
21
|
+
- Add a `panoramax_backend` command to the Python package, as an alias to the `flask --app geovisio` command.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Fix bug on python3.13 where running a command could hang with logs like "couldn't stop thread 'pool-1-worker-0' within 5.0 seconds"
|
|
26
|
+
- Nearby picture (`related` link type) was not returned if picture heading was greater than current picture one.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- The `migrations` folder has now been moved to the root of the package, so it is available when installing the package using pypi.
|
|
31
|
+
- The default web pages are more up-to-date (viewer v4, Panoramax logos, links to docs.panoramax.fr)
|
|
32
|
+
- The python dependencies are now managed using [dependency groups](https://flit.pypa.io/en/latest/pyproject_toml.html#dependency-groups) instead of the `[project.optional-dependencies]` section. So you need to install the dependencies using `pip install -e . --group dev` instead of `pip install -e .[dev]`, and the `dev`/`format`/`docs`/`build` groups are available, but not part of the released package. This also means that `pip` minimal version is now `25.1` (only for development). Run `pip install --upgrade pip` to upgrade your pip version.
|
|
33
|
+
- Update dependencies to support Python 3.14 🥧
|
|
34
|
+
|
|
12
35
|
## [2.11.0] - 2025-12-12
|
|
13
36
|
|
|
14
37
|
### Added
|
|
@@ -18,7 +41,7 @@ Before _1.6.0_, [Viewer](https://gitlab.com/panoramax/clients/web-viewer) was em
|
|
|
18
41
|
- `anyone`: the sequence is visible to anyone
|
|
19
42
|
- `owner-only`: the sequence is visible to the owner and administrator only
|
|
20
43
|
- `logged-only`: the sequence is visible to logged users only
|
|
21
|
-
|
|
44
|
+
A default `visibility` can also be set at the `account` or instance level.
|
|
22
45
|
- Change the permissions, now an instance administrator (and account that has the `admin` role), can see, edit and delete all sequences and pictures.
|
|
23
46
|
- Display the collection semantics in the `/api/collections/<uuid:collectionId>/items` endpoint, to make it easier to be crawled by the metacatalog.
|
|
24
47
|
- Add a new search capability with the query `/api/search?filter=semantics IS NOT NULL` to search for all items with some semantics (be it linked to the picture, its sequence or an annotation in the picture).
|
|
@@ -41,10 +64,10 @@ Before _1.6.0_, [Viewer](https://gitlab.com/panoramax/clients/web-viewer) was em
|
|
|
41
64
|
- Add an `updated` field in all the items's responses.
|
|
42
65
|
- Add an `sortby` parameter in search to sort the results (and it can use the new `updated` field).
|
|
43
66
|
- Add a way to generate a new token for the current user (via `POST /api/users/me/tokens`).
|
|
44
|
-
- Added route aliases to get annotations.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
67
|
+
- Added route aliases to get annotations.
|
|
68
|
+
- The route `/api/annotations/<uuid:annotationId>` is now an alias of `/api/collections/<uuid:collectionId>/items/<uuid:itemId>/annotations/<uuid:annotationId>`
|
|
69
|
+
- The route `/api/picture/<uuid:pictureId>` is now an alias of `/api/collections/<uuid:collectionId>/items/<uuid:itemId>`
|
|
70
|
+
- The route to create an annotation `/api/picture/<uuid:pictureId>/annotations` is now an alias of `/api/collections/<uuid:collectionId>/items/<uuid:itemId>/annotations`
|
|
48
71
|
- Add a way to attach semantic tags to upload sets. Those tags will be transferred to all the collections associated to the upload set. This makes it possible to add semantic tags directly at the upload, without waiting for all the associated collections to be created.
|
|
49
72
|
- Add a `relative_heading` parameter to the `/api/upload_sets/:id` route (for `POST` and `PATCH`), to update the relative heading of the upload set. If a `relative_heading` is set on the upload set, it will be applied when computeing the heading of all the associated collections.
|
|
50
73
|
- Add a `/api/queryables` route to list the queryables for search and `/api/collections/queryables` to list the queryables for collection search.
|
|
@@ -703,7 +726,8 @@ FLASK_APP="src" flask process-sequences
|
|
|
703
726
|
- Viewer based on Photo Sphere Viewer automatically calling API to search and retrieve pictures
|
|
704
727
|
- Dockerfile for easy server setup
|
|
705
728
|
|
|
706
|
-
[Unreleased]: https://gitlab.com/panoramax/server/api/-/compare/2.
|
|
729
|
+
[Unreleased]: https://gitlab.com/panoramax/server/api/-/compare/2.12.0...develop
|
|
730
|
+
[2.12.0]: https://gitlab.com/panoramax/server/api/-/compare/2.11.0...2.12.0
|
|
707
731
|
[2.11.0]: https://gitlab.com/panoramax/server/api/-/compare/2.10.0...2.11.0
|
|
708
732
|
[2.10.0]: https://gitlab.com/panoramax/server/api/-/compare/2.9.0...2.10.0
|
|
709
733
|
[2.9.0]: https://gitlab.com/panoramax/server/api/-/compare/2.8.1...2.9.0
|
|
@@ -5,7 +5,7 @@ LABEL org.opencontainers.image.title="GeoVisio API"
|
|
|
5
5
|
LABEL org.opencontainers.image.description="Panoramax is a digital resource for sharing and using field photos. GeoVisio API is the backend part of the ecosystem."
|
|
6
6
|
LABEL org.opencontainers.image.authors="Adrien PAVIE <panieravide@riseup.net>"
|
|
7
7
|
LABEL org.opencontainers.image.source="https://gitlab.com/panoramax/server/api.git"
|
|
8
|
-
LABEL org.opencontainers.image.documentation="https://docs.panoramax.fr/
|
|
8
|
+
LABEL org.opencontainers.image.documentation="https://docs.panoramax.fr/backend/"
|
|
9
9
|
LABEL org.opencontainers.image.vendor="Panoramax"
|
|
10
10
|
LABEL org.opencontainers.image.licenses="MIT"
|
|
11
11
|
LABEL org.opencontainers.image.url="https://panoramax.fr/"
|
|
@@ -33,7 +33,6 @@ RUN pip install -e . --user
|
|
|
33
33
|
COPY ./images ./images/
|
|
34
34
|
COPY ./docker/docker-entrypoint.sh ./
|
|
35
35
|
COPY ./geovisio ./geovisio
|
|
36
|
-
COPY ./migrations ./migrations
|
|
37
36
|
COPY ./Makefile ./
|
|
38
37
|
|
|
39
38
|
# Generate i18n compiled files
|
|
@@ -46,6 +45,7 @@ ARG GIT_DESCRIBE
|
|
|
46
45
|
LABEL org.opencontainers.image.revision=$GIT_DESCRIBE
|
|
47
46
|
|
|
48
47
|
# Environment variables
|
|
48
|
+
ENV PATH="~/.local/bin/:$PATH"
|
|
49
49
|
ENV FLASK_APP=geovisio
|
|
50
50
|
ENV FS_URL="/data/geovisio"
|
|
51
51
|
ENV API_GIT_VERSION=$GIT_DESCRIBE
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geovisio
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.12.0
|
|
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
9
|
License-File: LICENSE
|
|
10
|
-
Requires-Dist: Flask ~= 3.1
|
|
11
|
-
Requires-Dist: psycopg[pool] ~= 3.
|
|
10
|
+
Requires-Dist: Flask ~= 3.1.2
|
|
11
|
+
Requires-Dist: psycopg[pool] ~= 3.3
|
|
12
12
|
Requires-Dist: flasgger ~= 0.9.7
|
|
13
13
|
Requires-Dist: Pillow ~= 11.1
|
|
14
14
|
Requires-Dist: Flask-Cors ~= 6.0
|
|
@@ -17,11 +17,11 @@ Requires-Dist: fs-s3fs-forked ~= 1.1.4
|
|
|
17
17
|
Requires-Dist: flask-compress ~= 1.14
|
|
18
18
|
Requires-Dist: requests ~= 2.31
|
|
19
19
|
Requires-Dist: yoyo-migrations ~= 9.0
|
|
20
|
-
Requires-Dist: psycopg-binary ~= 3.
|
|
21
|
-
Requires-Dist: python-dotenv ~= 1.
|
|
20
|
+
Requires-Dist: psycopg-binary ~= 3.3
|
|
21
|
+
Requires-Dist: python-dotenv ~= 1.2
|
|
22
22
|
Requires-Dist: authlib ~= 1.6
|
|
23
23
|
Requires-Dist: Flask-Executor ~= 1.0
|
|
24
|
-
Requires-Dist: geopic-tag-reader[write-exif] ~= 1.8.
|
|
24
|
+
Requires-Dist: geopic-tag-reader[write-exif] ~= 1.8.2
|
|
25
25
|
Requires-Dist: rfeed ~= 1.1.1
|
|
26
26
|
Requires-Dist: sentry-sdk[flask] ~= 2.24
|
|
27
27
|
Requires-Dist: pygeofilter[backend-native] ~= 0.3.1
|
|
@@ -35,28 +35,8 @@ Requires-Dist: geojson-pydantic ~= 2.0.0
|
|
|
35
35
|
Requires-Dist: email-validator ~= 2.2.0
|
|
36
36
|
Requires-Dist: multipart>=1.2.1
|
|
37
37
|
Requires-Dist: gunicorn ~= 23.0.0
|
|
38
|
-
Requires-Dist: flit ~= 3.9.0 ; extra == "build"
|
|
39
|
-
Requires-Dist: coverage ~= 7.9 ; extra == "dev"
|
|
40
|
-
Requires-Dist: protobuf ~= 5.26 ; extra == "dev"
|
|
41
|
-
Requires-Dist: mapbox-vector-tile ~= 2.1 ; extra == "dev"
|
|
42
|
-
Requires-Dist: pystac ~= 1.9 ; extra == "dev"
|
|
43
|
-
Requires-Dist: pytest ~= 8.4 ; extra == "dev"
|
|
44
|
-
Requires-Dist: pytest-datafiles ~= 3.0 ; extra == "dev"
|
|
45
|
-
Requires-Dist: pyexiv2 ~= 2.15 ; extra == "dev"
|
|
46
|
-
Requires-Dist: testcontainers ~= 4.10 ; extra == "dev"
|
|
47
|
-
Requires-Dist: requests-mock ~= 1.11 ; extra == "dev"
|
|
48
|
-
Requires-Dist: black ~= 25.1 ; extra == "dev"
|
|
49
|
-
Requires-Dist: pre-commit ~= 4.2 ; extra == "dev"
|
|
50
|
-
Requires-Dist: pyyaml ~= 6.0 ; extra == "dev"
|
|
51
|
-
Requires-Dist: openapi-spec-validator ~= 0.7 ; extra == "dev"
|
|
52
|
-
Requires-Dist: stac-api-validator ~= 0.6.4 ; extra == "dev"
|
|
53
|
-
Requires-Dist: mkdocs-material ~= 9.6.14 ; extra == "docs"
|
|
54
|
-
Requires-Dist: mkdocs-swagger-ui-tag ~= 0.7.1 ; extra == "docs"
|
|
55
38
|
Project-URL: Home, https://gitlab.com/panoramax/server/api
|
|
56
39
|
Project-URL: Source Code, https://gitlab.com/panoramax/server/api
|
|
57
|
-
Provides-Extra: build
|
|
58
|
-
Provides-Extra: dev
|
|
59
|
-
Provides-Extra: docs
|
|
60
40
|
|
|
61
41
|
#  Panoramax
|
|
62
42
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
usage() {
|
|
4
4
|
echo "./docker-entrypoint.sh <COMMAND>: "
|
|
5
|
-
echo -e "\tThis script simplifies running
|
|
5
|
+
echo -e "\tThis script simplifies running Panoramax backend in a certain mode"
|
|
6
6
|
echo "Commands: "
|
|
7
7
|
echo -e "\tapi (default): Starts web API for production on port 5000 by default"
|
|
8
8
|
echo -e "\tdev-api: Starts web API for development on port 5000 by default"
|
|
9
9
|
echo -e "\tpicture-worker: Starts an independant background worker to process pictures"
|
|
10
|
-
echo -e "\tcleanup: Cleans database and remove
|
|
10
|
+
echo -e "\tcleanup: Cleans database and remove Panoramax derivated files (it doesn't delete your original pictures)"
|
|
11
11
|
echo -e "\tdb-upgrade: Upgrade the database schema"
|
|
12
12
|
echo -e "\tdb-refresh: Refresh all materialized views in the database"
|
|
13
13
|
}
|
|
@@ -109,7 +109,7 @@ services:
|
|
|
109
109
|
NB_API_THREADS: 10
|
|
110
110
|
INFRA_NB_PROXIES: ${INFRA_NB_PROXIES:-1}
|
|
111
111
|
# API SUMMARY regroup many metadata about the instance
|
|
112
|
-
# check the documentation on how translations are handled: https://docs.panoramax.fr/
|
|
112
|
+
# check the documentation on how translations are handled: https://docs.panoramax.fr/backend/install/settings/#metadata
|
|
113
113
|
API_SUMMARY: >-
|
|
114
114
|
{
|
|
115
115
|
"color": "#abcdef",
|
|
@@ -25,6 +25,7 @@ http {
|
|
|
25
25
|
# We need to set X-Forwarded headers, so the API can use them to make nice internal links
|
|
26
26
|
proxy_set_header X-Real-IP $remote_addr;
|
|
27
27
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
28
|
+
proxy_set_header X-Forwarded-Host $host;
|
|
28
29
|
|
|
29
30
|
# Limit the files that can be sent to 100M
|
|
30
31
|
client_max_body_size 100M;
|
|
@@ -53,7 +54,6 @@ http {
|
|
|
53
54
|
# add X-forward- headers for keycloak to know it's canonical host
|
|
54
55
|
# force https
|
|
55
56
|
proxy_set_header X-Forwarded-Proto https;
|
|
56
|
-
proxy_set_header X-Forwarded-Host $host;
|
|
57
57
|
|
|
58
58
|
proxy_redirect default;
|
|
59
59
|
}
|
|
@@ -53,7 +53,7 @@ services:
|
|
|
53
53
|
NB_API_THREADS: 10
|
|
54
54
|
INFRA_NB_PROXIES: ${INFRA_NB_PROXIES:-1}
|
|
55
55
|
# API SUMMARY regroup many metadata about the instance
|
|
56
|
-
# check the documentation on how translations are handled: https://docs.panoramax.fr/
|
|
56
|
+
# check the documentation on how translations are handled: https://docs.panoramax.fr/backend/install/settings/#metadata
|
|
57
57
|
API_SUMMARY: >-
|
|
58
58
|
{
|
|
59
59
|
"color": "#abcdef",
|
|
@@ -21,6 +21,7 @@ http {
|
|
|
21
21
|
# We need to set X-Forwarded headers, so the API can use them to make nice internal links
|
|
22
22
|
proxy_set_header X-Real-IP $remote_addr;
|
|
23
23
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
24
|
+
proxy_set_header X-Forwarded-Host $host;
|
|
24
25
|
|
|
25
26
|
# Limit the files that can be sent to 100M
|
|
26
27
|
client_max_body_size 100M;
|
|
@@ -179,6 +179,55 @@ This calls needs to be logged, another token (or even the same one) can be used.
|
|
|
179
179
|
http -A bearer -a eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnZW92aXNpbyIsInN1YiI6ImVlNjQ5MjM1LWJmMTAtNGIwNC1hMDlhLTY0YjE2NjN DELETE https://my-panoramax.fr/api/users/me/tokens/ee649235-bf10-4b04-a09a-64b1663af6f8
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
+
### ⚖️ Permissions
|
|
183
|
+
|
|
184
|
+
The API checks permissions on each route, and returns a:
|
|
185
|
+
|
|
186
|
+
* 401 if authentication is required
|
|
187
|
+
* 403 error if the user is not allowed to access the route
|
|
188
|
+
|
|
189
|
+
The API also adds HATEAOS links to show the permissions of the current user on the queried object. It might be handy for client to use those links to show what actions are allowed. It might, for example, be used to disable a delete button if the user cannot delete the object.
|
|
190
|
+
|
|
191
|
+
This only works for access by ID (eg, in endpoints like `/api/collections/:id` and not `/api/collections` or `/api/search`) and only for authenticated calls (since no edit is possible without authentication).
|
|
192
|
+
|
|
193
|
+
The links have a `method` attribute to define the HTTP method to use for this permission, and might have an `attributes` attribute for the `edit` links,to tell which fields can be patched by the user.
|
|
194
|
+
|
|
195
|
+
Example:
|
|
196
|
+
|
|
197
|
+
```js
|
|
198
|
+
"links": [
|
|
199
|
+
...
|
|
200
|
+
{
|
|
201
|
+
"rel": "edit",
|
|
202
|
+
"type": "application/json",
|
|
203
|
+
"method": "PATCH", // <-- HTTP verb to use to call the endpoint
|
|
204
|
+
"href": "https://my_panoramax.org/api/collections/some_id", // <-- api endpoint
|
|
205
|
+
"attributes": ["relative_heading", "semantics", "sortby", "title", "visibility"], // <-- the user can patch those fields
|
|
206
|
+
},
|
|
207
|
+
]
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
The `rel` attribute should be used to identify the permission.
|
|
211
|
+
|
|
212
|
+
#### Links on sequences (collections)
|
|
213
|
+
|
|
214
|
+
The available `rel` links are:
|
|
215
|
+
|
|
216
|
+
* `edit` to patch the collection. An additional field `attributes` is provided to tell which fields can be patched by the user.
|
|
217
|
+
* `delete` to delete the collection
|
|
218
|
+
|
|
219
|
+
#### Links on upload_sets
|
|
220
|
+
|
|
221
|
+
* `edit` to patch the upload_set. An additional field `attributes` is provided to tell which fields can be patched by the user.
|
|
222
|
+
* `delete` to delete the upload_set
|
|
223
|
+
* `add_files` to add files to the upload_set
|
|
224
|
+
* `complete` to complete the upload_set
|
|
225
|
+
|
|
226
|
+
#### Links on pictures (items)
|
|
227
|
+
|
|
228
|
+
* `edit` to patch the picture. An additional field `attributes` is provided to tell which fields can be patched by the user.
|
|
229
|
+
* `delete` to delete the picture
|
|
230
|
+
* `add_annotation` to add an annotation on the picture
|
|
182
231
|
|
|
183
232
|
## :octicons-upload-16: Upload
|
|
184
233
|
|
|
@@ -322,4 +371,4 @@ Enjoy your brand-new uploaded pictures by browsing the map or querying the assoc
|
|
|
322
371
|
|
|
323
372
|
```bash
|
|
324
373
|
http https://my-panoramax.fr/api/upload_sets/60d94628-8098-42cc-b684-ffb9aa9d35a7
|
|
325
|
-
```
|
|
374
|
+
```
|