geovisio 2.8.0__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.
- {geovisio-2.8.0 → geovisio-2.8.1}/CHANGELOG.md +18 -1
- {geovisio-2.8.0 → geovisio-2.8.1}/PKG-INFO +4 -3
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/docker-compose-full.yml +1 -1
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/nginx.conf +1 -1
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/api/open_api.json +194 -28
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/tutorials/running_docker_keycloak.md +11 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/__init__.py +16 -3
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/config_app.py +0 -1
- geovisio-2.8.1/geovisio/translations/br/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0/geovisio/translations/ja → geovisio-2.8.1/geovisio/translations/br}/LC_MESSAGES/messages.po +144 -101
- geovisio-2.8.1/geovisio/translations/da/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/da/LC_MESSAGES/messages.po +10 -1
- geovisio-2.8.1/geovisio/translations/de/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/de/LC_MESSAGES/messages.po +10 -1
- geovisio-2.8.1/geovisio/translations/en/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/en/LC_MESSAGES/messages.po +9 -7
- geovisio-2.8.1/geovisio/translations/eo/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/eo/LC_MESSAGES/messages.po +67 -1
- geovisio-2.8.1/geovisio/translations/es/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/es/LC_MESSAGES/messages.po +4 -3
- geovisio-2.8.1/geovisio/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/fr/LC_MESSAGES/messages.po +30 -4
- geovisio-2.8.1/geovisio/translations/hu/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/hu/LC_MESSAGES/messages.po +4 -3
- geovisio-2.8.1/geovisio/translations/it/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/it/LC_MESSAGES/messages.po +10 -1
- geovisio-2.8.1/geovisio/translations/ja/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.1/geovisio/translations/ja/LC_MESSAGES/messages.po +807 -0
- geovisio-2.8.1/geovisio/translations/pl/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/pl/LC_MESSAGES/messages.po +4 -3
- geovisio-2.8.1/geovisio/utils/loggers.py +14 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/params.py +7 -4
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/upload_set.py +24 -10
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/website.py +3 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/auth.py +3 -2
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/docs.py +3 -14
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/upload_set.py +98 -10
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/users.py +31 -4
- {geovisio-2.8.0 → geovisio-2.8.1}/pyproject.toml +1 -1
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/integration/test_auth.py +6 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_items.py +2 -2
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_upload_set.py +322 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_users.py +13 -1
- geovisio-2.8.0/geovisio/translations/da/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/de/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/en/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/eo/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/es/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/fr/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/hu/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/it/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/ja/LC_MESSAGES/messages.mo +0 -0
- geovisio-2.8.0/geovisio/translations/pl/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/.dockerignore +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/.flaskenv +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/.gitignore +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/.gitlab-ci.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/.pre-commit-config.yaml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/CODE_OF_CONDUCT.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/Dockerfile +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/LICENSE +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/Makefile +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/Procfile +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/README.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/babel.cfg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/bin/post_compile +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/bin/run_production_api.sh +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/docker-compose-blurring.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/docker-compose-keycloak.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/docker-compose-minio.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/docker-entrypoint.sh +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/1-init-keycloak-db.sh +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/Dockerfile.keycloak +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/docker-compose.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/env.example +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/keycloak-realm.json +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/pictures_storage/.gitkeep +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-keycloak-auth/robots.txt +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-osm-auth/docker-compose.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-osm-auth/env.example +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-osm-auth/nginx.conf +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-osm-auth/pictures_storage/.gitkeep +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/full-osm-auth/robots.txt +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker/keycloak-realm.json +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docker-compose.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/api/api.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/api/openapi.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/dev/STAC_compatibility.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/dev/develop_server.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/dev/releases.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/images/geovisio-architecture-simple.excalidraw +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/images/geovisio-architecture-simple.png +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/images/geovisio_authentication_flow.svg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/index.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/cli.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/database_setup.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/deep_dive/blur_api.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/deep_dive/excluded_areas.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/deep_dive/external_Identity_Providers.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/deep_dive/pictures_processing.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/install.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/running.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/settings.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/tutorials/osm_oauth_client.png +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/tutorials/running_docker_osm_auth.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/docs/install/update.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/cleanup.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/db.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/default_account_tokens.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/reorder_sequences.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/sequence_heading.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/admin_cli/user.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/db_migrations.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/errors.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/templates/main.html +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/templates/viewer.html +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/el/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/el/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/fi/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/fi/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/ko/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/ko/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/messages.pot +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/nl/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/nl/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/zh_Hant/LC_MESSAGES/messages.mo +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/translations/zh_Hant/LC_MESSAGES/messages.po +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/auth.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/db.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/excluded_areas.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/extent.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/fields.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/filesystems.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/link.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/model_query.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/pictures.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/reports.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/semantics.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/sentry.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/sequences.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/time.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/utils/tokens.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/annotations.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/collections.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/configuration.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/excluded_areas.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/items.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/map.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/pages.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/params.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/pictures.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/prepare.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/reports.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/rss.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/stac.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/tokens.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/web/utils.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/workers/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/geovisio/workers/runner_pictures.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/big_picture.png +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/big_picture.svg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/favicon.ico +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/favicon.svg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/logo.png +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/logo.svg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/logo_full.png +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/logo_full.svg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/images/sponsors.png +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20221201_01_wpCGc-initial-schema.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20221201_01_wpCGc-initial-schema.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20221201_02_ZG8AR-camera-information.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20221222_01_fsB6f-add-account.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20221222_01_fsB6f-add-account.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230113_01_0co97-rm-metadata-duplicates.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230113_01_0co97-rm-metadata-duplicates.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230116_01_9PkjZ-add-oauth-provider.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230116_01_9PkjZ-add-oauth-provider.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230117_01_K71Pd-pictures-ts-index.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230117_01_K71Pd-pictures-ts-index.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230130_01_VRIv2-sequences-account.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230130_01_VRIv2-sequences-account.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230324_01_ba9WA-status.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230324_01_ba9WA-status.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230324_02_efgI6-picture-process.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230324_02_efgI6-picture-process.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230407_01_wofh1-computed-headings.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230407_01_wofh1-computed-headings.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230425_01_gYP77-pictures-edits-triggers.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230425_01_gYP77-pictures-edits-triggers.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230427_01_k5e5w-timestamps.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230427_01_k5e5w-timestamps.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230511_01_TdpKo-tokens.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230511_01_TdpKo-tokens.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230615_01_u7aRf-pic-delete-cascade.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230615_01_u7aRf-pic-delete-cascade.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230623_01_y1SiQ-pic-deletion-task.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230623_01_y1SiQ-pic-deletion-task.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230629_01_ZdB3i-compute-heading-0.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230711_01_JGSPB-inserted-at-index.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230711_01_JGSPB-inserted-at-index.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230720_01_EyQ0e-sequences-summary.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230720_01_EyQ0e-sequences-summary.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230803_01_aXusm-fix-sequence-computed.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20230803_01_aXusm-fix-sequence-computed.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231018_01_4G3YE-pictures-exiv2.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231018_01_4G3YE-pictures-exiv2.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231110_01_3p070-jobs-error.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231110_01_3p070-jobs-error.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231121_01_v6oBF-more-specific-triggers.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231121_01_v6oBF-more-specific-triggers.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231121_02_1uZXT-deleted-tag.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20231121_02_1uZXT-deleted-tag.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240115_01_FatLR-token-delete-cascade.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240115_01_FatLR-token-delete-cascade.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240220_01_9wZs0-sequence-current-sort.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240220_01_9wZs0-sequence-current-sort.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240223_01_LsMHB-remove-binary-fields.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240226_01_8iXl1-track-changes.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240226_01_8iXl1-track-changes.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240308_01_aF0Jb-migrate-sequence-geom-multi-linestring.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240409_01_jnhra-pictures-grid.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240409_01_jnhra-pictures-grid.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240507_01_eBfqZ-refresh-table.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240507_01_eBfqZ-refresh-table.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240507_02_dzVET-picture-grid-public.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240507_02_dzVET-picture-grid-public.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240514_01_IT7DD-picture-delete-cascade.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240514_01_IT7DD-picture-delete-cascade.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240611_01_jftHn-content-md5.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240611_01_jftHn-content-md5.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240612_01_yNcuE-upload-set.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240612_01_yNcuE-upload-set.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240617_01_tKtlx-md5-concurrent-index.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240617_01_tKtlx-md5-concurrent-index.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240625_01_XMZ24-fix-sequence-stat-on-pic-insertion.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240625_01_XMZ24-fix-sequence-stat-on-pic-insertion.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240708_01_Xn7IH-job-queue.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240708_01_Xn7IH-job-queue.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240715_01_Hca9V-upload-set-metadata.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240715_01_Hca9V-upload-set-metadata.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240723_01_ePGFe-upload-set-files.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240723_01_ePGFe-upload-set-files.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240729_01_HALjj-upload-set-sort.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240729_01_HALjj-upload-set-sort.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240730_01_2BaCy-improve-deletion-triggers.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240730_01_2BaCy-improve-deletion-triggers.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240730_02_aRymN-rejection-status.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240730_02_aRymN-rejection-status.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240801_01_DOqmf-reports.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240801_01_DOqmf-reports.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240801_01_uKqPo-remove-files-delete-cascade.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240801_01_uKqPo-remove-files-delete-cascade.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240813_01_T1XkO-sequences-geom-splits.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240813_01_T1XkO-sequences-geom-splits.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240820_01_aB2ZK-exclusion-zones.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240820_01_aB2ZK-exclusion-zones.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240902_01_MDqSj-user-agent.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240902_01_MDqSj-user-agent.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240904_01_gFjlV-files-rejection-msg.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240904_01_gFjlV-files-rejection-msg.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240905_01_C8F6U-conflicts.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240905_01_C8F6U-conflicts.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240905_01_E5Ki0-upload-set-delete.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240905_01_E5Ki0-upload-set-delete.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240909_01_Muc22-unique-grid-index.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240909_01_Muc22-unique-grid-index.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240912_01_dAALm-account-index.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20240912_01_dAALm-account-index.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241004_01_d1zfe-pictures-grid-360.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241004_01_d1zfe-pictures-grid-360.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241011_01_e1j5C-pic-quality.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241011_01_e1j5C-pic-quality.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241017_01_GuOjF-pic-quality-update.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241017_01_GuOjF-pic-quality-update.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241017_01_RiFlm-pictures-to-delete.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241017_01_RiFlm-pictures-to-delete.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241104_01_yhRVu-rejection-details.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241104_01_yhRVu-rejection-details.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241128_01_ugthx-job-queue-args.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241128_01_ugthx-job-queue-args.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241224_01_xuN6n-delete-upload-set-on-last-picture-trg-statement.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20241224_01_xuN6n-delete-upload-set-on-last-picture-trg-statement.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250102_01_EElhA-rm-cameras.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250102_01_EElhA-rm-cameras.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250107_01_EQN9v-tags-tables.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250107_01_EQN9v-tags-tables.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250109_01_4OOP4-pages.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250109_01_4OOP4-pages.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250114_01_ABaaL-collaborative-metadata-editing.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250114_01_ABaaL-collaborative-metadata-editing.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250123_01_Ececu-tos-acceptance.rollback.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/20250123_01_Ececu-tos-acceptance.sql +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/data/readme.md +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/migrations/data/sensor_data.json +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/mkdocs.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/runtime.txt +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/conftest.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/1.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/1_blurred.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/2.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/3.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/4.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/5.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/b1.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/b2.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/c1.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/crop.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/d1.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e1.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e1_artist.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e1_without_exif.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e2.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e3.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e4.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/e5.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/focal_zero.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/invalid_exif.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/data/xpcomment.jpg +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/fixed_data/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/fixed_data/conftest.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/fixed_data/test_api_conformance.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/fixed_data/test_many_sequences.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/fixed_data/test_web_collections_one_collection.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/integration/__init__.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/integration/conftest.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/integration/docker-compose-auth-test.yml +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/integration/test_s3.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/integration/test_tokens.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_admin_cli_cleanup.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_db_migrations.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_factory.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_model_query.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_utils_auth.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_utils_filesystems.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_utils_pictures.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_utils_reports.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_utils_tags.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_utils_upload_set.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_collections.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_configuration.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_excluded_areas.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_map.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_pages.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_params.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_pictures.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_prepare.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_reports.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_web_stac.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/tests/test_workers_runner_pictures.py +0 -0
- {geovisio-2.8.0 → geovisio-2.8.1}/yoyo.ini +0 -0
|
@@ -9,6 +9,22 @@ 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
|
+
|
|
12
28
|
## [2.8.0] - 2025-02-10
|
|
13
29
|
|
|
14
30
|
### Added
|
|
@@ -606,7 +622,8 @@ FLASK_APP="src" flask process-sequences
|
|
|
606
622
|
- Viewer based on Photo Sphere Viewer automatically calling API to search and retrieve pictures
|
|
607
623
|
- Dockerfile for easy server setup
|
|
608
624
|
|
|
609
|
-
[Unreleased]: https://gitlab.com/panoramax/server/api/-/compare/2.8.
|
|
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
|
|
610
627
|
[2.8.0]: https://gitlab.com/panoramax/server/api/-/compare/2.7.1...2.8.0
|
|
611
628
|
[2.7.1]: https://gitlab.com/panoramax/server/api/-/compare/2.7.0...2.7.1
|
|
612
629
|
[2.7.0]: https://gitlab.com/panoramax/server/api/-/compare/2.6.0...2.7.0
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: geovisio
|
|
3
|
-
Version: 2.8.
|
|
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.
|
|
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
|
|
@@ -52,7 +52,7 @@ http {
|
|
|
52
52
|
|
|
53
53
|
# add X-forward- headers for keycloak to know it's canonical host
|
|
54
54
|
# force https
|
|
55
|
-
proxy_set_header X-Forwarded-
|
|
55
|
+
proxy_set_header X-Forwarded-Proto https;
|
|
56
56
|
proxy_set_header X-Forwarded-Host $host;
|
|
57
57
|
|
|
58
58
|
proxy_redirect default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"info": {
|
|
3
3
|
"title": "geovisio",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.8.0",
|
|
5
5
|
"description": "#  Panoramax\n\n__Panoramax__ is a digital resource for sharing and using \ud83d\udccd\ud83d\udcf7 field photos. Anyone can take photographs of places visible from the public streets and contribute them to the Panoramax database. This data is then freely accessible and reusable by all. More information available at [gitlab.com/panoramax](https://gitlab.com/panoramax) and [panoramax.fr](https://panoramax.fr/).\n\n\n# \ud83c\udf10 Panoramax API\n\nThis repository only contains __the backend and web API__ of a Panoramax instance.\n\n## Features\n\n* A __web API__ to search and upload pictures collections\n * Search pictures by ID, date, location\n * Compatible with [SpatioTemporal Asset Catalog](https://stacspec.org/) and [OGC WFS 3](https://github.com/opengeospatial/WFS_FES) specifications\n * Upload your pictures and sequences\n* An easy-to-use __backend__\n * Generates automatically thumbnail, small and tiled versions of your pictures\n * Compatible with various filesystems (classic, S3, FTP...)\n * Authentication and blurring API can be plugged-in for production-ready use\n\n\n## Install & run\n\nOur [documentation](https://gitlab.com/panoramax/server/api/-/tree/develop/docs) will help you install, configure and run a Panoramax instance.\n\nIf at some point you're lost or need help, you can contact us through [issues](https://gitlab.com/panoramax/server/api/-/issues) or by [email](mailto:panieravide@riseup.net).\n\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an [issue](https://gitlab.com/panoramax/server/api/-/issues) first to discuss what you would like to change.\n\nMore information about developing is available in [documentation](https://gitlab.com/panoramax/server/api/-/tree/develop/docs).\n\n\n## \u2696\ufe0f License\n\nCopyright (c) Panoramax team 2022-2024, [released under MIT license](https://gitlab.com/panoramax/server/api/-/blob/develop/LICENSE).\n\n",
|
|
6
6
|
"contact": {
|
|
7
7
|
"name": "Adrien PAVIE",
|
|
@@ -271,6 +271,7 @@
|
|
|
271
271
|
"/api/users/{userId}/catalog/": {
|
|
272
272
|
"get": {
|
|
273
273
|
"summary": "Retrieves an user list of sequences (catalog)",
|
|
274
|
+
"description": "<br/>Note that this route is deprecated in favor of `/api/users/<uuid:userId>/collection`. This new route provides more information and offers more filtering and sorting options.<br/>",
|
|
274
275
|
"responses": {
|
|
275
276
|
"200": {
|
|
276
277
|
"description": "the Catalog listing all sequences associated to given user",
|
|
@@ -300,7 +301,8 @@
|
|
|
300
301
|
"tags": [
|
|
301
302
|
"Sequences",
|
|
302
303
|
"Users"
|
|
303
|
-
]
|
|
304
|
+
],
|
|
305
|
+
"deprecated": true
|
|
304
306
|
}
|
|
305
307
|
},
|
|
306
308
|
"/api/collections": {
|
|
@@ -627,7 +629,7 @@
|
|
|
627
629
|
"/api/users/{userId}/collection": {
|
|
628
630
|
"get": {
|
|
629
631
|
"summary": "Retrieves an collection of the user list collections",
|
|
630
|
-
"description": "<br/>It's quite the same as \"/users/<uuid:userId>/catalog/\" but with additional information, as a STAC collection have more metadatas than STAC catalogs.<br/><br/>Links contain information of user sequences (child), as well as pagination links (next/prev).<br/><br/>Also, links are filtered to match passed conditions, so you can have pagination and filters on client-side.<br/><br/>Note that on paginated results, filter can only be used with column used in sortby parameter.<br/><br/>The result can also be a CSV file, if the \"Accept\" header is set to \"text/csv\", or if the \"format\" query parameter is set to \"csv\".<br/>Note that
|
|
632
|
+
"description": "<br/>It's quite the same as \"/users/<uuid:userId>/catalog/\" but with additional information, as a STAC collection have more metadatas than STAC catalogs.<br/><br/>Links contain information of user sequences (child), as well as pagination links (next/prev).<br/><br/>Also, links are filtered to match passed conditions, so you can have pagination and filters on client-side.<br/><br/>Note that on paginated results, filter can only be used with column used in sortby parameter.<br/><br/>The result can also be a CSV file, if the \"Accept\" header is set to \"text/csv\", or if the \"format\" query parameter is set to \"csv\".<br/>Note that when requesting a CSV file, the filters/sortby/pagination parameters are not supported, and `limit` is ignored, you always get the full list of collections.<br/>",
|
|
631
633
|
"responses": {
|
|
632
634
|
"200": {
|
|
633
635
|
"description": "the Collection listing all sequences associated to given user",
|
|
@@ -658,7 +660,7 @@
|
|
|
658
660
|
{
|
|
659
661
|
"name": "format",
|
|
660
662
|
"in": "query",
|
|
661
|
-
"description": "Expected output format (STAC JSON or a csv file)",
|
|
663
|
+
"description": "Expected output format (STAC JSON or a csv file). Note that the CSV format support less parameters than the JSON format (cf documentation).",
|
|
662
664
|
"required": false,
|
|
663
665
|
"schema": {
|
|
664
666
|
"type": "string",
|
|
@@ -1374,7 +1376,7 @@
|
|
|
1374
1376
|
"/api/users/me/catalog": {
|
|
1375
1377
|
"get": {
|
|
1376
1378
|
"summary": "Get current logged user catalog.",
|
|
1377
|
-
"description": "<br/>Note that
|
|
1379
|
+
"description": "<br/>Note that this route is deprecated in favor of `/api/users/me/collection`. This new route provides more information and offers more filtering and sorting options.<br/>",
|
|
1378
1380
|
"responses": {
|
|
1379
1381
|
"200": {
|
|
1380
1382
|
"description": "the Catalog listing all sequences associated to given user. Note that it's similar to the user's colletion, but with less metadata since a STAC collection is an enhanced STAC catalog.",
|
|
@@ -1390,7 +1392,8 @@
|
|
|
1390
1392
|
"tags": [
|
|
1391
1393
|
"Users",
|
|
1392
1394
|
"Sequences"
|
|
1393
|
-
]
|
|
1395
|
+
],
|
|
1396
|
+
"deprecated": true
|
|
1394
1397
|
}
|
|
1395
1398
|
},
|
|
1396
1399
|
"/api/users/me/collection": {
|
|
@@ -1713,6 +1716,53 @@
|
|
|
1713
1716
|
}
|
|
1714
1717
|
},
|
|
1715
1718
|
"/api/upload_sets/{upload_set_id}": {
|
|
1719
|
+
"patch": {
|
|
1720
|
+
"summary": "Update an existing UploadSet",
|
|
1721
|
+
"requestBody": {
|
|
1722
|
+
"content": {
|
|
1723
|
+
"application/json": {
|
|
1724
|
+
"schema": {
|
|
1725
|
+
"$ref": "#/components/schemas/GeoVisioUploadSet"
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
},
|
|
1730
|
+
"responses": {
|
|
1731
|
+
"200": {
|
|
1732
|
+
"description": "the UploadSet metadata",
|
|
1733
|
+
"content": {
|
|
1734
|
+
"application/json": {
|
|
1735
|
+
"schema": {
|
|
1736
|
+
"$ref": "#/components/schemas/GeoVisioUploadSet"
|
|
1737
|
+
}
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
},
|
|
1742
|
+
"parameters": [
|
|
1743
|
+
{
|
|
1744
|
+
"in": "header",
|
|
1745
|
+
"name": "User-Agent",
|
|
1746
|
+
"required": false,
|
|
1747
|
+
"schema": {
|
|
1748
|
+
"type": "string"
|
|
1749
|
+
},
|
|
1750
|
+
"description": "An explicit User-Agent value is prefered if you create a production-ready tool, formatted like \"GeoVisioCLI/1.0\""
|
|
1751
|
+
}
|
|
1752
|
+
],
|
|
1753
|
+
"tags": [
|
|
1754
|
+
"Upload",
|
|
1755
|
+
"UploadSet"
|
|
1756
|
+
],
|
|
1757
|
+
"security": [
|
|
1758
|
+
{
|
|
1759
|
+
"bearerToken": []
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"cookieAuth": []
|
|
1763
|
+
}
|
|
1764
|
+
]
|
|
1765
|
+
},
|
|
1716
1766
|
"get": {
|
|
1717
1767
|
"summary": "Get an existing UploadSet",
|
|
1718
1768
|
"description": "<br/>The UploadSet are used to group pictures during an upload.<br/>",
|
|
@@ -4507,7 +4557,7 @@
|
|
|
4507
4557
|
},
|
|
4508
4558
|
"GeoVisioCSVCollections": {
|
|
4509
4559
|
"type": "string",
|
|
4510
|
-
"descrition": "CSV file containing the collections.\n\nThe CSV headers will be:\n* id: ID of the collection\n* status: Status of the collection\n* name: Name of the collection (its title)\n* created: Creation date of the collection\n* updated: Last update date of the collection\n* capture_date: Computed capture date of the collection (date of its first picture)\n* minimum_capture_time: Capture datetime of the first picture\n* maximum_capture_time: Capture datetime of the last picture\n* min_x: Minimum X coordinate of the bounding box of the collection\n* min_y: Minimum Y coordinate of the bounding box of the collection\n* max_x: Maximum X coordinate of the bounding box of the collection\n* max_y: Maximum Y coordinate of the bounding box of the collection\n* nb_pictures: Number of pictures in the collection\n* length_km: Total length of the collection in kilometers\n* computed_h_pixel_density: Horizontal pixel density of the pictures in the collection, if all pictures have the same one\n* computed_gps_accuracy: GPS accuracy of the pictures in the collection, if all pictures have the same one\n"
|
|
4560
|
+
"descrition": "CSV file containing the collections.\n\nThe CSV headers will be:\n* id: ID of the collection\n* status: Status of the collection\n* name: Name of the collection (its title)\n* created: Creation date of the collection\n* updated: Last update date of the collection\n* capture_date: Computed capture date of the collection (date of its first picture)\n* minimum_capture_time: Capture datetime of the first picture\n* maximum_capture_time: Capture datetime of the last picture\n* min_x: Minimum X coordinate of the bounding box of the collection\n* min_y: Minimum Y coordinate of the bounding box of the collection\n* max_x: Maximum X coordinate of the bounding box of the collection\n* max_y: Maximum Y coordinate of the bounding box of the collection\n* nb_pictures: Number of pictures in the collection\n* length_km: Total length of the collection in kilometers\n* computed_h_pixel_density: Horizontal pixel density of the pictures in the collection, if all pictures have the same one\n* computed_gps_accuracy: GPS accuracy of the pictures in the collection, if all pictures have the same one\n\n"
|
|
4511
4561
|
},
|
|
4512
4562
|
"GeoVisioCollections": {
|
|
4513
4563
|
"allOf": [
|
|
@@ -7133,33 +7183,149 @@
|
|
|
7133
7183
|
"type": "object"
|
|
7134
7184
|
},
|
|
7135
7185
|
"GeoVisioUser": {
|
|
7136
|
-
"
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7186
|
+
"$defs": {
|
|
7187
|
+
"AccountRole": {
|
|
7188
|
+
"enum": [
|
|
7189
|
+
"user",
|
|
7190
|
+
"admin"
|
|
7191
|
+
],
|
|
7192
|
+
"title": "AccountRole",
|
|
7193
|
+
"type": "string"
|
|
7141
7194
|
},
|
|
7195
|
+
"Link": {
|
|
7196
|
+
"properties": {
|
|
7197
|
+
"rel": {
|
|
7198
|
+
"title": "Rel",
|
|
7199
|
+
"type": "string"
|
|
7200
|
+
},
|
|
7201
|
+
"type": {
|
|
7202
|
+
"title": "Type",
|
|
7203
|
+
"type": "string"
|
|
7204
|
+
},
|
|
7205
|
+
"title": {
|
|
7206
|
+
"anyOf": [
|
|
7207
|
+
{
|
|
7208
|
+
"type": "string"
|
|
7209
|
+
},
|
|
7210
|
+
{
|
|
7211
|
+
"type": "null"
|
|
7212
|
+
}
|
|
7213
|
+
],
|
|
7214
|
+
"default": null,
|
|
7215
|
+
"title": "Title"
|
|
7216
|
+
},
|
|
7217
|
+
"href": {
|
|
7218
|
+
"title": "Href",
|
|
7219
|
+
"type": "string"
|
|
7220
|
+
}
|
|
7221
|
+
},
|
|
7222
|
+
"required": [
|
|
7223
|
+
"rel",
|
|
7224
|
+
"type",
|
|
7225
|
+
"href"
|
|
7226
|
+
],
|
|
7227
|
+
"title": "Link",
|
|
7228
|
+
"type": "object"
|
|
7229
|
+
},
|
|
7230
|
+
"Permissions": {
|
|
7231
|
+
"description": "Role and permissions of a user",
|
|
7232
|
+
"properties": {
|
|
7233
|
+
"role": {
|
|
7234
|
+
"$ref": "#/components/schemas/GeoVisioUser/$defs/AccountRole",
|
|
7235
|
+
"description": "Role of the user"
|
|
7236
|
+
},
|
|
7237
|
+
"can_check_reports": {
|
|
7238
|
+
"description": "Is account legitimate to read any report ?",
|
|
7239
|
+
"title": "Can Check Reports",
|
|
7240
|
+
"type": "boolean"
|
|
7241
|
+
},
|
|
7242
|
+
"can_edit_excluded_areas": {
|
|
7243
|
+
"description": "Is account legitimate to read and edit excluded areas ?",
|
|
7244
|
+
"title": "Can Edit Excluded Areas",
|
|
7245
|
+
"type": "boolean"
|
|
7246
|
+
},
|
|
7247
|
+
"can_edit_pages": {
|
|
7248
|
+
"description": "Is account legitimate to edit web pages ?",
|
|
7249
|
+
"title": "Can Edit Pages",
|
|
7250
|
+
"type": "boolean"
|
|
7251
|
+
}
|
|
7252
|
+
},
|
|
7253
|
+
"required": [
|
|
7254
|
+
"role",
|
|
7255
|
+
"can_check_reports",
|
|
7256
|
+
"can_edit_excluded_areas",
|
|
7257
|
+
"can_edit_pages"
|
|
7258
|
+
],
|
|
7259
|
+
"title": "Permissions",
|
|
7260
|
+
"type": "object"
|
|
7261
|
+
}
|
|
7262
|
+
},
|
|
7263
|
+
"properties": {
|
|
7142
7264
|
"name": {
|
|
7265
|
+
"description": "Name of the user",
|
|
7266
|
+
"title": "Name",
|
|
7143
7267
|
"type": "string"
|
|
7144
7268
|
},
|
|
7269
|
+
"id": {
|
|
7270
|
+
"description": "Unique identifier of the user",
|
|
7271
|
+
"format": "uuid",
|
|
7272
|
+
"title": "Id",
|
|
7273
|
+
"type": "string"
|
|
7274
|
+
},
|
|
7275
|
+
"collaborative_metadata": {
|
|
7276
|
+
"anyOf": [
|
|
7277
|
+
{
|
|
7278
|
+
"type": "boolean"
|
|
7279
|
+
},
|
|
7280
|
+
{
|
|
7281
|
+
"type": "null"
|
|
7282
|
+
}
|
|
7283
|
+
],
|
|
7284
|
+
"default": null,
|
|
7285
|
+
"description": "If true, the user can edit the metadata of all sequences. If unset, default to the instance's default configuration.",
|
|
7286
|
+
"title": "Collaborative Metadata"
|
|
7287
|
+
},
|
|
7288
|
+
"tos_accepted": {
|
|
7289
|
+
"anyOf": [
|
|
7290
|
+
{
|
|
7291
|
+
"type": "boolean"
|
|
7292
|
+
},
|
|
7293
|
+
{
|
|
7294
|
+
"type": "null"
|
|
7295
|
+
}
|
|
7296
|
+
],
|
|
7297
|
+
"default": null,
|
|
7298
|
+
"description": "True means the user has accepted the terms of service (tos). Can only be seen by the user itself",
|
|
7299
|
+
"title": "Tos Accepted"
|
|
7300
|
+
},
|
|
7301
|
+
"permissions": {
|
|
7302
|
+
"anyOf": [
|
|
7303
|
+
{
|
|
7304
|
+
"$ref": "#/components/schemas/GeoVisioUser/$defs/Permissions"
|
|
7305
|
+
},
|
|
7306
|
+
{
|
|
7307
|
+
"type": "null"
|
|
7308
|
+
}
|
|
7309
|
+
],
|
|
7310
|
+
"default": null,
|
|
7311
|
+
"description": "The user role and permissions. Can only be seen by the user itself"
|
|
7312
|
+
},
|
|
7145
7313
|
"links": {
|
|
7146
|
-
"type": "array",
|
|
7147
7314
|
"items": {
|
|
7148
|
-
"
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
|
|
7152
|
-
|
|
7153
|
-
"ref": {
|
|
7154
|
-
"type": "string"
|
|
7155
|
-
},
|
|
7156
|
-
"type": {
|
|
7157
|
-
"type": "string"
|
|
7158
|
-
}
|
|
7159
|
-
}
|
|
7160
|
-
}
|
|
7315
|
+
"$ref": "#/components/schemas/GeoVisioUser/$defs/Link"
|
|
7316
|
+
},
|
|
7317
|
+
"readOnly": true,
|
|
7318
|
+
"title": "Links",
|
|
7319
|
+
"type": "array"
|
|
7161
7320
|
}
|
|
7162
|
-
}
|
|
7321
|
+
},
|
|
7322
|
+
"required": [
|
|
7323
|
+
"name",
|
|
7324
|
+
"id",
|
|
7325
|
+
"links"
|
|
7326
|
+
],
|
|
7327
|
+
"title": "UserInfo",
|
|
7328
|
+
"type": "object"
|
|
7163
7329
|
},
|
|
7164
7330
|
"GeoVisioUserAuth": {
|
|
7165
7331
|
"type": "object",
|
|
@@ -7402,7 +7568,7 @@
|
|
|
7402
7568
|
"enabled": {
|
|
7403
7569
|
"type": "boolean"
|
|
7404
7570
|
},
|
|
7405
|
-
"enforce_tos_acceptance
|
|
7571
|
+
"enforce_tos_acceptance": {
|
|
7406
7572
|
"type": "boolean"
|
|
7407
7573
|
}
|
|
7408
7574
|
},
|
|
@@ -104,6 +104,17 @@ my.domain.org {
|
|
|
104
104
|
}
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
+
??? Note
|
|
108
|
+
The API need the [X-Forwarded-*](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) headers to be set in order to build correct internal links.
|
|
109
|
+
|
|
110
|
+
You can check that the proxy is setting all the necessary headers by querying the API with:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
curl <your_domain>/api/debug_headers
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
And checking the API logs to see all headers set. The response `test_url` should be the correct URL of the API.
|
|
117
|
+
|
|
107
118
|
## 🔄 Updating the instance
|
|
108
119
|
|
|
109
120
|
If at one point you want to update your API version (and you should, we try to add nice functionalities often!), you can run:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"""GeoVisio API - Main"""
|
|
2
2
|
|
|
3
|
-
__version__ = "2.8.
|
|
3
|
+
__version__ = "2.8.1"
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
-
from flask import Flask, jsonify, stream_template, send_from_directory, redirect, request
|
|
6
|
+
from flask import Flask, jsonify, stream_template, send_from_directory, redirect, request, url_for
|
|
7
7
|
from flask.cli import with_appcontext
|
|
8
8
|
from flask_cors import CORS
|
|
9
9
|
from flask_compress import Compress
|
|
@@ -106,7 +106,9 @@ def create_app(test_config=None, app=None):
|
|
|
106
106
|
# https://flask.palletsprojects.com/en/2.2.x/deploying/proxy_fix/
|
|
107
107
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
|
108
108
|
|
|
109
|
-
app.wsgi_app = ProxyFix(
|
|
109
|
+
app.wsgi_app = ProxyFix(
|
|
110
|
+
app.wsgi_app, x_for=nb_proxies, x_proto=nb_proxies, x_host=nb_proxies, x_prefix=nb_proxies, x_port=nb_proxies
|
|
111
|
+
)
|
|
110
112
|
|
|
111
113
|
# store the background processor in the app context
|
|
112
114
|
app.background_processor = runner_pictures.PictureBackgroundProcessor(app)
|
|
@@ -185,6 +187,17 @@ def create_app(test_config=None, app=None):
|
|
|
185
187
|
def favicon():
|
|
186
188
|
return redirect("/static/img/favicon.ico")
|
|
187
189
|
|
|
190
|
+
@app.route("/api/debug_headers")
|
|
191
|
+
def debug_headers():
|
|
192
|
+
"""Endpoint handy when setting a new instance to check if all the headers are set correctly,
|
|
193
|
+
and especially the X-Forwarded-* header that needs to be set by the proxies in order for the API to correctly build internal urls.
|
|
194
|
+
|
|
195
|
+
The headers are only printed to the console, so it's only for the instance administrator that has access to those logs.
|
|
196
|
+
"""
|
|
197
|
+
logging.info(request.headers)
|
|
198
|
+
|
|
199
|
+
return jsonify({"test_url": url_for("index", _external=True)}), 200
|
|
200
|
+
|
|
188
201
|
# Errors
|
|
189
202
|
@app.errorhandler(errors.InvalidAPIUsage)
|
|
190
203
|
def invalid_api_usage(e):
|
|
@@ -38,7 +38,6 @@ class DefaultConfig:
|
|
|
38
38
|
DB_CHECK_SCHEMA = True # If True check the database schema, and do not start the api if not up to date
|
|
39
39
|
API_PICTURES_LICENSE_SPDX_ID = None
|
|
40
40
|
API_PICTURES_LICENSE_URL = None
|
|
41
|
-
API_WEBSITE_URL = None # URL to the website, used to generate links to the website. If not set, the API will presume the website runs from the same url.
|
|
42
41
|
DEBUG_PICTURES_SKIP_FS_CHECKS_WITH_PUBLIC_URL = False
|
|
43
42
|
SESSION_COOKIE_HTTPONLY = False
|
|
44
43
|
PICTURE_PROCESS_REFRESH_CRON = (
|
|
Binary file
|