geovisio 2.4.0__tar.gz → 2.6.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.4.0 → geovisio-2.6.0}/.gitignore +1 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/.gitlab-ci.yml +36 -15
- {geovisio-2.4.0 → geovisio-2.6.0}/CHANGELOG.md +100 -30
- {geovisio-2.4.0 → geovisio-2.6.0}/Dockerfile +4 -5
- geovisio-2.6.0/PKG-INFO +92 -0
- geovisio-2.6.0/Procfile +7 -0
- geovisio-2.6.0/README.md +38 -0
- geovisio-2.6.0/bin/post_compile +4 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/docker/docker-compose-full.yml +5 -7
- {geovisio-2.4.0 → geovisio-2.6.0}/docker/docker-compose-minio.yml +1 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/docker/docker-entrypoint.sh +5 -1
- geovisio-2.6.0/docker/full-osm-auth/docker-compose.yml +154 -0
- geovisio-2.6.0/docker/full-osm-auth/env.example +27 -0
- geovisio-2.6.0/docker/full-osm-auth/nginx.conf +70 -0
- geovisio-2.6.0/docker/full-osm-auth/osm_oauth_client.png +0 -0
- geovisio-2.6.0/docker/full-osm-auth/readme.md +115 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/docker-compose.yml +3 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/07_Database_setup.md +24 -12
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/10_Install_Classic.md +1 -1
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/11_Server_settings.md +22 -20
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/12_External_Identity_Providers.md +2 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/13_Pictures_processing.md +18 -13
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/14_Running_Classic.md +18 -3
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/14_Running_Docker.md +13 -13
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/15_Pictures_requirements.md +1 -1
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/16_Using_API.md +4 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/17_Blur_API.md +1 -1
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/19_Develop_server.md +53 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/80_STAC_Compatibility.md +15 -1
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/90_Releases.md +1 -1
- geovisio-2.6.0/docs/index.md +7 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/__init__.py +3 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/admin_cli/__init__.py +2 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/admin_cli/db.py +11 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/admin_cli/sequence_heading.py +2 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/config_app.py +25 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/templates/main.html +2 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/pictures.py +75 -30
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/sequences.py +232 -34
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/auth.py +15 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/collections.py +161 -111
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/docs.py +178 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/items.py +169 -114
- geovisio-2.6.0/geovisio/web/map.py +594 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/params.py +82 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/stac.py +14 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/tokens.py +7 -3
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/users.py +4 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/utils.py +10 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/workers/runner_pictures.py +73 -70
- geovisio-2.6.0/images/sponsors.png +0 -0
- geovisio-2.6.0/migrations/20240220_01_9wZs0-sequence-current-sort.rollback.sql +6 -0
- geovisio-2.6.0/migrations/20240220_01_9wZs0-sequence-current-sort.sql +15 -0
- geovisio-2.6.0/migrations/20240223_01_LsMHB-remove-binary-fields.sql +80 -0
- geovisio-2.6.0/migrations/20240226_01_8iXl1-track-changes.rollback.sql +13 -0
- geovisio-2.6.0/migrations/20240226_01_8iXl1-track-changes.sql +123 -0
- geovisio-2.6.0/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.rollback.sql +67 -0
- geovisio-2.6.0/migrations/20240229_01_SgfQY-sequence-geom-multi-linestring.sql +101 -0
- geovisio-2.6.0/migrations/20240308_01_aF0Jb-migrate-sequence-geom-multi-linestring.sql +52 -0
- geovisio-2.6.0/migrations/20240409_01_jnhra-pictures-grid.rollback.sql +4 -0
- geovisio-2.6.0/migrations/20240409_01_jnhra-pictures-grid.sql +18 -0
- geovisio-2.6.0/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.rollback.sql +7 -0
- geovisio-2.6.0/migrations/20240416_01_FpyGs-pictures-stats-on-sequences.sql +9 -0
- geovisio-2.6.0/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.rollback.sql +5 -0
- geovisio-2.6.0/migrations/20240416_02_A5KzC-fill-pictures-stats-on-sequences.sql +84 -0
- geovisio-2.6.0/migrations/20240507_01_eBfqZ-refresh-table.rollback.sql +5 -0
- geovisio-2.6.0/migrations/20240507_01_eBfqZ-refresh-table.sql +9 -0
- geovisio-2.6.0/migrations/20240507_02_dzVET-picture-grid-public.rollback.sql +17 -0
- geovisio-2.6.0/migrations/20240507_02_dzVET-picture-grid-public.sql +21 -0
- geovisio-2.6.0/migrations/20240514_01_IT7DD-picture-delete-cascade.rollback.sql +41 -0
- geovisio-2.6.0/migrations/20240514_01_IT7DD-picture-delete-cascade.sql +42 -0
- geovisio-2.6.0/mkdocs.yml +60 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/pyproject.toml +19 -9
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/conftest.py +5 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/fixed_data/test_many_sequences.py +2 -1
- geovisio-2.6.0/tests/integration/__init__.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/integration/conftest.py +2 -18
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/integration/test_auth.py +1 -1
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/integration/test_tokens.py +3 -3
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_api_conformance.sh +4 -1
- geovisio-2.6.0/tests/test_db_migrations.py +224 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_utils_pictures.py +8 -4
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_collections.py +542 -20
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_items.py +334 -62
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_map.py +248 -62
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_stac.py +5 -2
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_workers_runner_pictures.py +54 -8
- geovisio-2.4.0/PKG-INFO +0 -115
- geovisio-2.4.0/Procfile +0 -2
- geovisio-2.4.0/README.md +0 -68
- geovisio-2.4.0/bin/post_compile +0 -4
- geovisio-2.4.0/docs/01_Start.md +0 -29
- geovisio-2.4.0/geovisio/web/map.py +0 -378
- geovisio-2.4.0/images/screenshot.jpg +0 -0
- geovisio-2.4.0/images/sponsors.png +0 -0
- geovisio-2.4.0/tests/test_db_migrations.py +0 -145
- {geovisio-2.4.0 → geovisio-2.6.0}/.dockerignore +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/.flaskenv +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/.pre-commit-config.yaml +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/CODE_OF_CONDUCT.md +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/LICENSE +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/Makefile +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/docker/docker-compose-blurring.yml +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/docker/docker-compose-keycloak.yml +0 -0
- /geovisio-2.4.0/geovisio/web/__init__.py → /geovisio-2.6.0/docker/full-osm-auth/pictures_storage/.gitkeep +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/docker/keycloak-realm.json +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/docs/10_Install_Scalingo.md +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0/docs}/images/geovisio_authentication_flow.svg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/admin_cli/cleanup.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/admin_cli/default_account_tokens.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/admin_cli/reorder_sequences.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/db_migrations.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/errors.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/templates/viewer.html +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/__init__.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/auth.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/fields.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/filesystems.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/sentry.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/time.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/utils/tokens.py +0 -0
- {geovisio-2.4.0/geovisio/workers → geovisio-2.6.0/geovisio/web}/__init__.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/configuration.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/pictures.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/geovisio/web/rss.py +0 -0
- {geovisio-2.4.0/tests → geovisio-2.6.0/geovisio/workers}/__init__.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/big_picture.png +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/big_picture.svg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/favicon.ico +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/favicon.svg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/logo.png +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/logo.svg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/logo_full.png +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/images/logo_full.svg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20221201_01_wpCGc-initial-schema.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20221201_01_wpCGc-initial-schema.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20221201_02_ZG8AR-camera-information.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20221222_01_fsB6f-add-account.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20221222_01_fsB6f-add-account.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230113_01_0co97-rm-metadata-duplicates.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230113_01_0co97-rm-metadata-duplicates.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230116_01_9PkjZ-add-oauth-provider.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230116_01_9PkjZ-add-oauth-provider.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230117_01_K71Pd-pictures-ts-index.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230117_01_K71Pd-pictures-ts-index.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230130_01_VRIv2-sequences-account.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230130_01_VRIv2-sequences-account.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230324_01_ba9WA-status.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230324_01_ba9WA-status.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230324_02_efgI6-picture-process.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230324_02_efgI6-picture-process.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230407_01_wofh1-computed-headings.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230407_01_wofh1-computed-headings.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230417_01_ZgLMY-add-exif-metadata-column-for-pictures.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230420_01_elaN3-remove-picture-and-sequence-file-paths.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230425_01_gYP77-pictures-edits-triggers.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230425_01_gYP77-pictures-edits-triggers.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230427_01_k5e5w-timestamps.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230427_01_k5e5w-timestamps.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230511_01_TdpKo-tokens.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230511_01_TdpKo-tokens.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230615_01_u7aRf-pic-delete-cascade.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230615_01_u7aRf-pic-delete-cascade.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230623_01_y1SiQ-pic-deletion-task.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230623_01_y1SiQ-pic-deletion-task.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230629_01_ZdB3i-compute-heading-0.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230711_01_JGSPB-inserted-at-index.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230711_01_JGSPB-inserted-at-index.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230720_01_EyQ0e-sequences-summary.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230720_01_EyQ0e-sequences-summary.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230803_01_aXusm-fix-sequence-computed.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20230803_01_aXusm-fix-sequence-computed.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231018_01_4G3YE-pictures-exiv2.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231018_01_4G3YE-pictures-exiv2.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231103_01_ZVKEm-update-seq-on-pic-change.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231110_01_3p070-jobs-error.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231110_01_3p070-jobs-error.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231121_01_v6oBF-more-specific-triggers.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231121_01_v6oBF-more-specific-triggers.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231121_02_1uZXT-deleted-tag.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20231121_02_1uZXT-deleted-tag.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20240115_01_FatLR-token-delete-cascade.rollback.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/20240115_01_FatLR-token-delete-cascade.sql +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/data/readme.md +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/migrations/data/sensor_data.json +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/runtime.txt +0 -0
- {geovisio-2.4.0/tests/fixed_data → geovisio-2.6.0/tests}/__init__.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/1.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/1_blurred.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/2.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/3.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/4.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/5.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/b1.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/b2.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/c1.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/d1.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e1.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e1_artist.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e1_without_exif.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e2.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e3.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e4.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/e5.jpg +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/data/invalid_exif.jpg +0 -0
- {geovisio-2.4.0/tests/integration → geovisio-2.6.0/tests/fixed_data}/__init__.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/fixed_data/conftest.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/integration/docker-compose-auth-test.yml +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/integration/test_s3.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_admin_cli_cleanup.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_factory.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_utils_filesystems.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_configuration.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_params.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_pictures.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/tests/test_web_users.py +0 -0
- {geovisio-2.4.0 → geovisio-2.6.0}/yoyo.ini +0 -0
|
@@ -2,8 +2,9 @@ variables:
|
|
|
2
2
|
DOCKER_BUILDKIT: 1 # use buildkit for better performance
|
|
3
3
|
DOCKER_DRIVER: overlay2 # better docker driver to avoid copying too many files on each run
|
|
4
4
|
GITLAB_REGISTRY: registry.gitlab.com # We use docker.io for official images and gitlab's registry to store temporary images
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
DOCKER_IMAGE_NAME: geovisio/api
|
|
6
|
+
REPO_NAME: panoramax/server/api
|
|
7
|
+
CI_IMAGE_CACHE: $GITLAB_REGISTRY/$REPO_NAME:build_cache
|
|
7
8
|
DOCKER_TLS_CERTDIR: ""
|
|
8
9
|
|
|
9
10
|
# Pipelines will run only for MR, tag and develop/main commits
|
|
@@ -40,7 +41,7 @@ test-in-docker:
|
|
|
40
41
|
POSTGRES_USER: geovisio
|
|
41
42
|
POSTGRES_PASSWORD: geovisiopass
|
|
42
43
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
43
|
-
TMP_CI_IMAGE: $GITLAB_REGISTRY/$
|
|
44
|
+
TMP_CI_IMAGE: $GITLAB_REGISTRY/$REPO_NAME:$CI_COMMIT_SHORT_SHA
|
|
44
45
|
FF_NETWORK_PER_BUILD: 1 # we ask gitlab to create a custom docker network, to be able to use the services inside the docker
|
|
45
46
|
|
|
46
47
|
|
|
@@ -94,7 +95,7 @@ test:
|
|
|
94
95
|
script:
|
|
95
96
|
- mkdir -p /tmp/geovisio_test/tmp /tmp/geovisio_test/derivates /tmp/geovisio_test/permanent
|
|
96
97
|
- pip install -e .[dev]
|
|
97
|
-
- pytest -m "not skipci"
|
|
98
|
+
- pytest -vv -m "not skipci"
|
|
98
99
|
|
|
99
100
|
|
|
100
101
|
test-api-conformance:
|
|
@@ -120,7 +121,7 @@ test-api-conformance:
|
|
|
120
121
|
script:
|
|
121
122
|
- apt update && apt install -y wget jq
|
|
122
123
|
- mkdir -p /tmp/geovisio_test/tmp /tmp/geovisio_test/derivates /tmp/geovisio_test/permanent
|
|
123
|
-
- pip install .[dev]
|
|
124
|
+
- pip install .[dev,api-conformance]
|
|
124
125
|
- ./tests/test_api_conformance.sh
|
|
125
126
|
|
|
126
127
|
|
|
@@ -153,7 +154,7 @@ publish-develop:
|
|
|
153
154
|
- docker buildx build
|
|
154
155
|
--cache-from "type=registry,ref=$CI_IMAGE_CACHE"
|
|
155
156
|
--cache-to "type=registry,mode=max,ref=$CI_IMAGE_CACHE"
|
|
156
|
-
--tag "$
|
|
157
|
+
--tag "$DOCKER_IMAGE_NAME:develop"
|
|
157
158
|
--label "org.opencontainers.image.title=$CI_PROJECT_TITLE"
|
|
158
159
|
--label "org.opencontainers.image.url=$CI_PROJECT_URL"
|
|
159
160
|
--label "org.opencontainers.image.created=$CI_JOB_STARTED_AT"
|
|
@@ -167,11 +168,11 @@ publish-develop:
|
|
|
167
168
|
--entrypoint "bash"
|
|
168
169
|
--network=host
|
|
169
170
|
--volume ./tests:/opt/geovisio/tests
|
|
170
|
-
"$
|
|
171
|
-
-c 'pip install -e .[dev] && /home/geovisio/.local/bin/pytest -m "not skipci"'
|
|
171
|
+
"$DOCKER_IMAGE_NAME:develop"
|
|
172
|
+
-c 'pip install -e .[dev] && /home/geovisio/.local/bin/pytest -vv -m "not skipci"'
|
|
172
173
|
|
|
173
174
|
# publish image to dockerhub with the develop tag
|
|
174
|
-
- docker push "$
|
|
175
|
+
- docker push "$DOCKER_IMAGE_NAME:develop"
|
|
175
176
|
|
|
176
177
|
publish-tag-and-latest:
|
|
177
178
|
# we consider that tag always land on main
|
|
@@ -200,8 +201,8 @@ publish-tag-and-latest:
|
|
|
200
201
|
- docker buildx build
|
|
201
202
|
--cache-from "type=registry,ref=$CI_IMAGE_CACHE"
|
|
202
203
|
--cache-to "type=registry,mode=max,ref=$CI_IMAGE_CACHE"
|
|
203
|
-
--tag "$
|
|
204
|
-
--tag "$
|
|
204
|
+
--tag "$DOCKER_IMAGE_NAME:$CI_COMMIT_REF_NAME"
|
|
205
|
+
--tag "$DOCKER_IMAGE_NAME:latest"
|
|
205
206
|
--label "org.opencontainers.image.title=$CI_PROJECT_TITLE"
|
|
206
207
|
--label "org.opencontainers.image.url=$CI_PROJECT_URL"
|
|
207
208
|
--label "org.opencontainers.image.created=$CI_JOB_STARTED_AT"
|
|
@@ -215,12 +216,12 @@ publish-tag-and-latest:
|
|
|
215
216
|
--entrypoint "bash"
|
|
216
217
|
--network=host
|
|
217
218
|
--volume ./tests:/opt/geovisio/tests
|
|
218
|
-
"$
|
|
219
|
-
-c 'pip install -e .[dev] && pytest -m "not skipci"'
|
|
219
|
+
"$DOCKER_IMAGE_NAME:latest"
|
|
220
|
+
-c 'pip install -e .[dev] && ~/.local/bin/pytest -vv -m "not skipci"'
|
|
220
221
|
|
|
221
222
|
# publish image to dockerhub
|
|
222
|
-
- docker push $
|
|
223
|
-
- docker push $
|
|
223
|
+
- docker push $DOCKER_IMAGE_NAME:$CI_COMMIT_REF_NAME
|
|
224
|
+
- docker push $DOCKER_IMAGE_NAME:latest
|
|
224
225
|
|
|
225
226
|
publish-on-pypi:
|
|
226
227
|
only:
|
|
@@ -230,3 +231,23 @@ publish-on-pypi:
|
|
|
230
231
|
script:
|
|
231
232
|
- pip install .[build]
|
|
232
233
|
- flit publish # use [flit](https://flit.pypa.io/) and FLIT_USERNAME/FLIT_PASSWORD env var
|
|
234
|
+
|
|
235
|
+
pages:
|
|
236
|
+
stage: deploy
|
|
237
|
+
only:
|
|
238
|
+
- develop
|
|
239
|
+
image: python:3.9
|
|
240
|
+
variables:
|
|
241
|
+
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
|
242
|
+
cache:
|
|
243
|
+
paths:
|
|
244
|
+
- $PIP_CACHE_DIR
|
|
245
|
+
variables:
|
|
246
|
+
CI: 1
|
|
247
|
+
script:
|
|
248
|
+
- pip install -e .[docs]
|
|
249
|
+
- mkdocs build --strict
|
|
250
|
+
artifacts:
|
|
251
|
+
paths:
|
|
252
|
+
- site
|
|
253
|
+
publish: site
|
|
@@ -5,10 +5,78 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
Before _1.6.0_, [Viewer](https://gitlab.com/
|
|
8
|
+
Before _1.6.0_, [Viewer](https://gitlab.com/panoramax/clients/web-viewer) was embed in this repository, so this changelog also includes Viewer features until the split.
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [2.6.0] - 2024-03-07
|
|
13
|
+
|
|
14
|
+
⚠️ Important Note: This version add several quite long migrations. After the migration are run, you should run as a database administrator:
|
|
15
|
+
|
|
16
|
+
```sql
|
|
17
|
+
VACUUM FULL pictures, sequences;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
or use a tool like [pg_repack](https://github.com/reorg/pg_repack) to remove dead tuples and save lot's of space.
|
|
21
|
+
|
|
22
|
+
Note that the vacuum will hold an exclusive lock whereas pg_repack will not.
|
|
23
|
+
|
|
24
|
+
⚠️ Important Note ⚠️ : This new versions uses postgres [`session_replication_role`](https://www.postgresql.org/docs/current/runtime-config-client.html) for non blocking migrations. This means that the users used to connect to the database must either have superuser privilege, or if postgres version is >= 15, you can grant the permission to the user with:
|
|
25
|
+
|
|
26
|
+
```psql
|
|
27
|
+
GRANT SET ON PARAMETER session_replication_role TO you_user;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- API routes returning items embed original datetime with timezone information in a new property `datetimetz`.
|
|
33
|
+
- New routes offering [MapLibre Style JSON files](https://maplibre.org/maplibre-style-spec/) for each vector tile endpoint (`/api/map/style.json`, `/api/users/me/map/style.json` and `/api/users/:userId/map/style.json`). This will allow more flexibility in offered vector tiles zoom levels and features against clients. These routes are advertised in API landing page with `xyz-style` and `user-xyz-style` links.
|
|
34
|
+
- A new configuration `DB_CHECK_SCHEMA` to tell GeoVisio not to check the database schema on startup, use only if you know you'll not use GeoVisio before updating its schema.
|
|
35
|
+
- Pictures metadata now embed pitch & roll information (`pers:pitch` and `pers:roll` fields).
|
|
36
|
+
- A new configuration `PICTURE_PROCESS_REFRESH_CRON` tell the background workers when to refresh the database stats (they execute the `flask db refresh` command).
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- All sequences geometries have been updated to be split if pictures were too far apart (linked to change done in [this MR](https://gitlab.com/panoramax/server/api/-/merge_requests/244)).
|
|
41
|
+
- Vector tiles from zoom 0 to 5 now offers a grid of available pictures (instead of simplified sequences). They are computed on-demand, so you may want to run `flask db refresh` once a day to keep them up-to-date.
|
|
42
|
+
- Doc and links to match the Gitlab organization rename from GeoVisio to Panoramax.
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- Migration to change LineString sequence geometry into MultiLinestring was not compatible with older PostGIS version, making Docker image not able to migrate populated sequences tables from 2.4 to 2.5.
|
|
47
|
+
- Route `/api/collections/:cid/geovisio_status` was returning non-empty list of items when no pictures was yet associated to the sequence.
|
|
48
|
+
- Improve `/api/collections/:cid/geovisio_status` performance for big sequences.
|
|
49
|
+
- Improve performance of big sequences deletion in database.
|
|
50
|
+
|
|
51
|
+
### Removed
|
|
52
|
+
|
|
53
|
+
- All binary exif fields are removed from the database. This should save quite a lot of database storage.
|
|
54
|
+
|
|
55
|
+
## [2.5.0] - 2024-03-07
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
|
|
59
|
+
- Picture search route (`/api/search`) now allows to look for a place that should be visible in pictures. This allows to find pictures for illustrating a POI page. This is done using `place_position`, `place_distance` and `place_fov_tolerance` parameters.
|
|
60
|
+
- Route `PATCH /api/collections/:id` has new parameters for editing in a single shot all pictures in a sequence:
|
|
61
|
+
- `relative_heading`: to change all picture headings based on sequence movement track
|
|
62
|
+
- `sortby`: to change the property used to sort pictures in the sequence (GPS date, file date or file name, either ascending or descending order).
|
|
63
|
+
- Route `PATCH /api/collections/:col_id/items/:id` has a new parameter for editing a picture's heading.
|
|
64
|
+
- Add 2 new tables `pictures_changes` and `sequences_changes` to track updates on `pictures` and `sequences`. Those tables are not yet exposed via an http API.
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- Updated Geopic Tag Reader to version 1.0.5
|
|
69
|
+
- Variable `DB_URL` is not set by default on the Dockerfile anymore, a real value must be given.
|
|
70
|
+
- Do not persist binary exif fields. The most notable one is `MakerNote` that took ~15% of the database storage.
|
|
71
|
+
- Pictures's are now displayed from zoom level 15 in the tiles to lower the tile's size.
|
|
72
|
+
- Collection geometries are now stored as multilinestrings, and split if pictures are too far apart.
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
|
|
76
|
+
- Pytest path in CI for Docker image release.
|
|
77
|
+
- When searching collections with a bounding box (in `/api/collections` or `/api/users/:id/collection`), a real intersection is done in the search (before, only the bounding box of the collection was considered).
|
|
78
|
+
- Permission problems in Dockerfile when writing to `/data/geovisio`
|
|
79
|
+
|
|
12
80
|
## [2.4.0] - 2024-01-31
|
|
13
81
|
|
|
14
82
|
### Added
|
|
@@ -44,7 +112,7 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
44
112
|
|
|
45
113
|
- Docker container work directory is now `/opt/geovisio`.
|
|
46
114
|
- Docker compose file with blurring is lighter, to for easier maintenance.
|
|
47
|
-
- Update [geo-picture-tag-reader](https://gitlab.com/
|
|
115
|
+
- Update [geo-picture-tag-reader](https://gitlab.com/panoramax/server/geo-picture-tag-reader) to [1.0.3 version](https://gitlab.com/panoramax/server/geo-picture-tag-reader/-/tags/1.0.3).
|
|
48
116
|
|
|
49
117
|
### Removed
|
|
50
118
|
|
|
@@ -86,7 +154,7 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
86
154
|
|
|
87
155
|
### Changed
|
|
88
156
|
|
|
89
|
-
- [GeoPic Tag Reader](https://gitlab.com/
|
|
157
|
+
- [GeoPic Tag Reader](https://gitlab.com/panoramax/server/geo-picture-tag-reader) updated to 0.4.1 to embed stronger checks on picture coordinates.
|
|
90
158
|
|
|
91
159
|
### Fixed
|
|
92
160
|
|
|
@@ -108,7 +176,7 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
108
176
|
|
|
109
177
|
### Changed
|
|
110
178
|
|
|
111
|
-
- The Docker compose file `docker-compose-full.yml` now embeds [GeoVisio Website](https://gitlab.com/
|
|
179
|
+
- The Docker compose file `docker-compose-full.yml` now embeds [GeoVisio Website](https://gitlab.com/panoramax/server/website), available on `localhost:3000`.
|
|
112
180
|
|
|
113
181
|
### Fixed
|
|
114
182
|
|
|
@@ -177,7 +245,7 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
177
245
|
### Added
|
|
178
246
|
|
|
179
247
|
- Added a `/api/configuration` endpoint with the API configuration. This endpoint is meant to provided easy frontend configuration.
|
|
180
|
-
- Support of Bearer token authorization. This should improve API authentication when a browser is not available, for example in usage with the [CLI](https://gitlab.com/
|
|
248
|
+
- Support of Bearer token authorization. This should improve API authentication when a browser is not available, for example in usage with the [CLI](https://gitlab.com/panoramax/clients/cli).
|
|
181
249
|
- The HTTP response header `Access-Control-Expose-Headers` is added to STAC response to allow web browser using the `Location` header.
|
|
182
250
|
- Add API routes to generate a claimable token. By default, it's not associated to any account (created by a `POST` on `/api/auth/tokens/generate`). To be usable, this token needs to be associated to an account via a authenticated call on `/api/auth/tokens/<uuid:token_id>/claim`. This offers a nicer authentication flow on the CLI.
|
|
183
251
|
- Add an API route to revoke a token, a `DELETE` on `/api/users/me/tokens/<uuid:token_id>`
|
|
@@ -185,7 +253,7 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
185
253
|
### Changed
|
|
186
254
|
|
|
187
255
|
- Blur picture is called with a `keep=1` URL query parameter (for a coming migration to [SGBlur](https://github.com/cquest/sgblur)) to keep original unblurred parts on blur API side.
|
|
188
|
-
- [GeoPic Tag Reader](https://gitlab.com/
|
|
256
|
+
- [GeoPic Tag Reader](https://gitlab.com/panoramax/server/geo-picture-tag-reader) updated to 0.1.0 : more EXIF tags are supported for date, heading, GPS coordinates. Also, warnings issued by reader are stored in GeoVisio API database.
|
|
189
257
|
- All sources have been moved from `./server/src` to `./geovisio` (thanks to [Nick Whitelegg](https://gitlab.com/nickw1)). Thus, sources are now imported as `import geovisio` instead of `import src`.
|
|
190
258
|
|
|
191
259
|
### Fixed
|
|
@@ -214,8 +282,8 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
214
282
|
- Move auth apis from `/auth` to `/api/auth`.
|
|
215
283
|
- Docker image moved to [`geovisio/api`](https://hub.docker.com/r/geovisio/api) (was previously `panieravide/geovisio`)
|
|
216
284
|
- After the OAuth process launched by `/api/auth/login`, we are redirected to the home page
|
|
217
|
-
- Pictures blurring is now **externalized** : GeoVisio API calls a third-party _blurring API_ (which is [available as a part of the whole GeoVisio stack](https://gitlab.com/
|
|
218
|
-
- Reading of EXIF tags from pictures is now done by a separated library called [Geopic Tag Reader](https://gitlab.com/
|
|
285
|
+
- Pictures blurring is now **externalized** : GeoVisio API calls a third-party _blurring API_ (which is [available as a part of the whole GeoVisio stack](https://gitlab.com/panoramax/server/blurring)) instead of relying on internal scripts. This allows more flexible deployments. This changes settings like `BLUR_STRATEGY` which becomes `BLUR_URL`.
|
|
286
|
+
- Reading of EXIF tags from pictures is now done by a separated library called [Geopic Tag Reader](https://gitlab.com/panoramax/server/geo-picture-tag-reader).
|
|
219
287
|
- Pictures derivates are now (again) stored in JPEG format. API still can serve images in both JPEG or WebP formats, but with improved performance if using JPEG
|
|
220
288
|
- Thumbnail image is always generated, no matter of `DERIVATES_STRATEGY` value, for better performance on viewer side
|
|
221
289
|
- When picture blurring is enabled, original uploaded image is not stored, only blurred version is kept
|
|
@@ -237,15 +305,15 @@ Before _1.6.0_, [Viewer](https://gitlab.com/geovisio/web-viewer) was embed in th
|
|
|
237
305
|
### Fixed
|
|
238
306
|
|
|
239
307
|
- Tests were failing when using PySTAC 1.7.0 due to unavaible `extra_fields['id']` on links
|
|
240
|
-
- EXIF tags filled with blank spaces or similar characters were not handled as null, causing unnecessary errors on pictures processing (issues [#65](https://gitlab.com/
|
|
241
|
-
- Make sure picture EXIF orientation is always used and applied ([#71](https://gitlab.com/
|
|
308
|
+
- EXIF tags filled with blank spaces or similar characters were not handled as null, causing unnecessary errors on pictures processing (issues [#65](https://gitlab.com/panoramax/server/api/-/issues/65) and [#66](https://gitlab.com/panoramax/server/api/-/issues/66))
|
|
309
|
+
- Make sure picture EXIF orientation is always used and applied ([#71](https://gitlab.com/panoramax/server/api/-/issues/71))
|
|
242
310
|
- Updates on DB table `pictures` and deletes on DB table `sequences_pictures` now updates `sequences.geom` column automatically
|
|
243
311
|
|
|
244
312
|
### Removed
|
|
245
313
|
|
|
246
|
-
- Removed `SERVER_NAME` from configuration. This parameter was used for url generation, but was causing problems in some cases (cf. [related issue](https://gitlab.com/
|
|
314
|
+
- Removed `SERVER_NAME` from configuration. This parameter was used for url generation, but was causing problems in some cases (cf. [related issue](https://gitlab.com/panoramax/server/api/-/issues/48))
|
|
247
315
|
- Removed `BACKEND_MODE` from configuration. This parameter was only used in docker/kubernetes context and can be changed from a environment variable to an argument.
|
|
248
|
-
- Removed the `process-sequences` and `redo-sequences` flask's targets. All pictures upload now pass through the API, and the easiest way to do this is to use [geovisio cli](https://gitlab.com/
|
|
316
|
+
- Removed the `process-sequences` and `redo-sequences` flask's targets. All pictures upload now pass through the API, and the easiest way to do this is to use [geovisio cli](https://gitlab.com/panoramax/clients/cli).
|
|
249
317
|
- Removed the `fill-with-mock-data` Flask command
|
|
250
318
|
- Pictures and sequences file paths are removed from database (all storage is based on picture ID)
|
|
251
319
|
|
|
@@ -434,21 +502,23 @@ FLASK_APP="src" flask process-sequences
|
|
|
434
502
|
- Viewer based on Photo Sphere Viewer automatically calling API to search and retrieve pictures
|
|
435
503
|
- Dockerfile for easy server setup
|
|
436
504
|
|
|
437
|
-
[Unreleased]: https://gitlab.com/
|
|
438
|
-
[2.
|
|
439
|
-
[2.
|
|
440
|
-
[2.
|
|
441
|
-
[2.
|
|
442
|
-
[2.
|
|
443
|
-
[2.
|
|
444
|
-
[2.
|
|
445
|
-
[2.0
|
|
446
|
-
[2.0.
|
|
447
|
-
[
|
|
448
|
-
[
|
|
449
|
-
[1.
|
|
450
|
-
[1.
|
|
451
|
-
[1.
|
|
452
|
-
[1.
|
|
453
|
-
[1.
|
|
454
|
-
[1.
|
|
505
|
+
[Unreleased]: https://gitlab.com/panoramax/server/api/-/compare/2.6.0...develop
|
|
506
|
+
[2.6.0]: https://gitlab.com/panoramax/server/api/-/compare/2.5.0...2.6.0
|
|
507
|
+
[2.5.0]: https://gitlab.com/panoramax/server/api/-/compare/2.4.0...2.5.0
|
|
508
|
+
[2.4.0]: https://gitlab.com/panoramax/server/api/-/compare/2.3.1...2.4.0
|
|
509
|
+
[2.3.1]: https://gitlab.com/panoramax/server/api/-/compare/2.3.0...2.3.1
|
|
510
|
+
[2.3.0]: https://gitlab.com/panoramax/server/api/-/compare/2.2.0...2.3.0
|
|
511
|
+
[2.2.0]: https://gitlab.com/panoramax/server/api/-/compare/2.1.1...2.2.0
|
|
512
|
+
[2.1.1]: https://gitlab.com/panoramax/server/api/-/compare/2.1.0...2.1.1
|
|
513
|
+
[2.1.0]: https://gitlab.com/panoramax/server/api/-/compare/2.0.2...2.1.0
|
|
514
|
+
[2.0.2]: https://gitlab.com/panoramax/server/api/-/compare/2.0.1...2.0.2
|
|
515
|
+
[2.0.1]: https://gitlab.com/panoramax/server/api/-/compare/2.0.0...2.0.1
|
|
516
|
+
[2.0.0]: https://gitlab.com/panoramax/server/api/-/compare/1.5.0...2.0.0
|
|
517
|
+
[1.5.0]: https://gitlab.com/panoramax/server/api/-/compare/1.4.1...1.5.0
|
|
518
|
+
[1.4.1]: https://gitlab.com/panoramax/server/api/-/compare/1.4.0...1.4.1
|
|
519
|
+
[1.4.0]: https://gitlab.com/panoramax/server/api/-/compare/1.3.1...1.4.0
|
|
520
|
+
[1.3.1]: https://gitlab.com/panoramax/server/api/-/compare/1.3.0...1.3.1
|
|
521
|
+
[1.3.0]: https://gitlab.com/panoramax/server/api/-/compare/1.2.0...1.3.0
|
|
522
|
+
[1.2.0]: https://gitlab.com/panoramax/server/api/-/compare/1.1.0...1.2.0
|
|
523
|
+
[1.1.0]: https://gitlab.com/panoramax/server/api/-/compare/1.0.0...1.1.0
|
|
524
|
+
[1.0.0]: https://gitlab.com/panoramax/server/api/-/commits/1.0.0
|
|
@@ -8,8 +8,9 @@ RUN apt update \
|
|
|
8
8
|
&& pip install waitress \
|
|
9
9
|
&& rm -rf /var/lib/apt/lists/* \
|
|
10
10
|
&& mkdir -p /opt/geovisio /data/geovisio \
|
|
11
|
-
&&
|
|
12
|
-
&&
|
|
11
|
+
&& groupadd --gid 1000 geovisio \
|
|
12
|
+
&& useradd --uid 1000 --gid 1000 -m geovisio \
|
|
13
|
+
&& chown -R geovisio:geovisio /opt/geovisio /data/geovisio
|
|
13
14
|
|
|
14
15
|
WORKDIR /opt/geovisio
|
|
15
16
|
USER geovisio
|
|
@@ -27,9 +28,7 @@ COPY ./migrations ./migrations
|
|
|
27
28
|
|
|
28
29
|
# Environment variables
|
|
29
30
|
ENV FLASK_APP=geovisio
|
|
30
|
-
ENV
|
|
31
|
-
ENV FS_URL="osfs:///data/geovisio"
|
|
32
|
-
ENV PICTURE_PROCESS_DERIVATES_STRATEGY="ON_DEMAND"
|
|
31
|
+
ENV FS_URL="/data/geovisio"
|
|
33
32
|
|
|
34
33
|
# Expose service
|
|
35
34
|
EXPOSE 5000
|
geovisio-2.6.0/PKG-INFO
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: geovisio
|
|
3
|
+
Version: 2.6.0
|
|
4
|
+
Summary: GeoVisio API - Main
|
|
5
|
+
Author-email: Adrien PAVIE <panieravide@riseup.net>, Antoine Desbordes <antoine.desbordes@gmail.com>
|
|
6
|
+
Requires-Python: >=3.9
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Requires-Dist: Flask ~= 2.3
|
|
10
|
+
Requires-Dist: psycopg[pool] ~= 3.1
|
|
11
|
+
Requires-Dist: flasgger ~= 0.9.7
|
|
12
|
+
Requires-Dist: Pillow ~= 9.4
|
|
13
|
+
Requires-Dist: Flask-Cors ~= 4.0
|
|
14
|
+
Requires-Dist: fs ~= 2.4
|
|
15
|
+
Requires-Dist: fs-s3fs-forked ~= 1.1.3
|
|
16
|
+
Requires-Dist: flask-compress ~= 1.14
|
|
17
|
+
Requires-Dist: requests ~= 2.31
|
|
18
|
+
Requires-Dist: yoyo-migrations ~= 8.2
|
|
19
|
+
Requires-Dist: psycopg-binary ~= 3.1
|
|
20
|
+
Requires-Dist: python-dotenv ~= 0.21
|
|
21
|
+
Requires-Dist: authlib ~= 1.2
|
|
22
|
+
Requires-Dist: Flask-Executor ~= 1.0
|
|
23
|
+
Requires-Dist: geopic-tag-reader[write-exif] ~= 1.1.1
|
|
24
|
+
Requires-Dist: rfeed ~= 1.1.1
|
|
25
|
+
Requires-Dist: sentry-sdk[flask] ~= 1.31
|
|
26
|
+
Requires-Dist: pygeofilter[backend-native] ~= 0.2.1
|
|
27
|
+
Requires-Dist: python-dateutil ~= 2.8.2
|
|
28
|
+
Requires-Dist: tzdata ~= 2024.1
|
|
29
|
+
Requires-Dist: croniter ~= 2.0.5
|
|
30
|
+
Requires-Dist: geovisio_cli ~= 0.3.12 ; extra == "api-conformance"
|
|
31
|
+
Requires-Dist: openapi-spec-validator ~= 0.7 ; extra == "api-conformance"
|
|
32
|
+
Requires-Dist: jq ~= 1.7 ; extra == "api-conformance"
|
|
33
|
+
Requires-Dist: flit ~= 3.9.0 ; extra == "build"
|
|
34
|
+
Requires-Dist: coverage ~= 6.5 ; extra == "dev"
|
|
35
|
+
Requires-Dist: protobuf ~= 4.21 ; extra == "dev"
|
|
36
|
+
Requires-Dist: mapbox-vector-tile ~= 2.0 ; extra == "dev"
|
|
37
|
+
Requires-Dist: pystac ~= 1.9 ; extra == "dev"
|
|
38
|
+
Requires-Dist: pytest ~= 6.2 ; extra == "dev"
|
|
39
|
+
Requires-Dist: pytest-datafiles ~= 2.0 ; extra == "dev"
|
|
40
|
+
Requires-Dist: pyexiv2 ~= 2.8 ; extra == "dev"
|
|
41
|
+
Requires-Dist: testcontainers ~= 4.1 ; extra == "dev"
|
|
42
|
+
Requires-Dist: requests-mock ~= 1.11 ; extra == "dev"
|
|
43
|
+
Requires-Dist: black ~= 24.1 ; extra == "dev"
|
|
44
|
+
Requires-Dist: pre-commit ~= 3.3 ; extra == "dev"
|
|
45
|
+
Requires-Dist: pyyaml ~= 6.0 ; extra == "dev"
|
|
46
|
+
Requires-Dist: mkdocs-material ~= 9.5.21 ; extra == "docs"
|
|
47
|
+
Project-URL: Home, https://gitlab.com/panoramax/server/api
|
|
48
|
+
Project-URL: Source Code, https://gitlab.com/panoramax/server/api
|
|
49
|
+
Provides-Extra: api-conformance
|
|
50
|
+
Provides-Extra: build
|
|
51
|
+
Provides-Extra: dev
|
|
52
|
+
Provides-Extra: docs
|
|
53
|
+
|
|
54
|
+
#  Panoramax
|
|
55
|
+
|
|
56
|
+
__Panoramax__ is a digital resource for sharing and exploiting 📍📷 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/).
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# 🌐 GeoVisio API
|
|
60
|
+
|
|
61
|
+
This repository only contains __the backend and web API__ of a Panoramax instance.
|
|
62
|
+
|
|
63
|
+
## Features
|
|
64
|
+
|
|
65
|
+
* A __web API__ to search and upload pictures collections
|
|
66
|
+
* Search pictures by ID, date, location
|
|
67
|
+
* Compatible with [SpatioTemporal Asset Catalog](https://stacspec.org/) and [OGC WFS 3](https://github.com/opengeospatial/WFS_FES) specifications
|
|
68
|
+
* Upload your pictures and sequences
|
|
69
|
+
* An easy-to-use __backend__
|
|
70
|
+
* Generates automatically thumbnail, small and tiled versions of your pictures
|
|
71
|
+
* Compatible with various filesystems (classic, S3, FTP...)
|
|
72
|
+
* Authentication and blurring API can be plugged-in for production-ready use
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Install & run
|
|
76
|
+
|
|
77
|
+
Our [documentation](https://gitlab.com/panoramax/server/api/-/tree/develop/docs) will help you install, configure and run a GeoVisio instance.
|
|
78
|
+
|
|
79
|
+
If 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).
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Contributing
|
|
83
|
+
|
|
84
|
+
Pull 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.
|
|
85
|
+
|
|
86
|
+
More information about developing is available in [documentation](https://gitlab.com/panoramax/server/api/-/tree/develop/docs).
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
## ⚖️ License
|
|
90
|
+
|
|
91
|
+
Copyright (c) Panoramax team 2022-2024, [released under MIT license](https://gitlab.com/panoramax/server/api/-/blob/develop/LICENSE).
|
|
92
|
+
|
geovisio-2.6.0/Procfile
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
web: DB_CHECK_SCHEMA=false python3 -m waitress --port $PORT --url-scheme=https --threads=${NB_API_THREADS:-4} --trusted-proxy '*' --trusted-proxy-headers 'X-Forwarded-For X-Forwarded-Host X-Forwarded-Port X-Forwarded-Proto' --log-untrusted-proxy-headers --clear-untrusted-proxy-headers --call 'geovisio:create_app'
|
|
2
|
+
|
|
3
|
+
# After having poped the API, we upgrade the database schema
|
|
4
|
+
# If the postdeploy fails, scalingo will not expose the new app, and will keep the old one
|
|
5
|
+
# Note that we added DB_CHECK_SCHEMA=false on the `web` to ensure that it starts without checking the schema (since it will be updated after)
|
|
6
|
+
# Note2: scalingo has a 20mn timeout for this, so migration longer will need to be applied manually
|
|
7
|
+
postdeploy: flask db upgrade
|
geovisio-2.6.0/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#  Panoramax
|
|
2
|
+
|
|
3
|
+
__Panoramax__ is a digital resource for sharing and exploiting 📍📷 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/).
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# 🌐 GeoVisio API
|
|
7
|
+
|
|
8
|
+
This repository only contains __the backend and web API__ of a Panoramax instance.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
* A __web API__ to search and upload pictures collections
|
|
13
|
+
* Search pictures by ID, date, location
|
|
14
|
+
* Compatible with [SpatioTemporal Asset Catalog](https://stacspec.org/) and [OGC WFS 3](https://github.com/opengeospatial/WFS_FES) specifications
|
|
15
|
+
* Upload your pictures and sequences
|
|
16
|
+
* An easy-to-use __backend__
|
|
17
|
+
* Generates automatically thumbnail, small and tiled versions of your pictures
|
|
18
|
+
* Compatible with various filesystems (classic, S3, FTP...)
|
|
19
|
+
* Authentication and blurring API can be plugged-in for production-ready use
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Install & run
|
|
23
|
+
|
|
24
|
+
Our [documentation](https://gitlab.com/panoramax/server/api/-/tree/develop/docs) will help you install, configure and run a GeoVisio instance.
|
|
25
|
+
|
|
26
|
+
If 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).
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## Contributing
|
|
30
|
+
|
|
31
|
+
Pull 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.
|
|
32
|
+
|
|
33
|
+
More information about developing is available in [documentation](https://gitlab.com/panoramax/server/api/-/tree/develop/docs).
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## ⚖️ License
|
|
37
|
+
|
|
38
|
+
Copyright (c) Panoramax team 2022-2024, [released under MIT license](https://gitlab.com/panoramax/server/api/-/blob/develop/LICENSE).
|
|
@@ -35,7 +35,7 @@ services:
|
|
|
35
35
|
context: ..
|
|
36
36
|
dockerfile: Dockerfile
|
|
37
37
|
cache_from:
|
|
38
|
-
- registry.gitlab.com/
|
|
38
|
+
- registry.gitlab.com/panoramax/server/api:build_cache
|
|
39
39
|
command: db-upgrade
|
|
40
40
|
environment:
|
|
41
41
|
DB_URL: postgres://gvs:gvspwd@db/geovisio
|
|
@@ -49,7 +49,7 @@ services:
|
|
|
49
49
|
context: ..
|
|
50
50
|
dockerfile: Dockerfile
|
|
51
51
|
cache_from:
|
|
52
|
-
- registry.gitlab.com/
|
|
52
|
+
- registry.gitlab.com/panoramax/server/api:build_cache
|
|
53
53
|
command: api
|
|
54
54
|
depends_on:
|
|
55
55
|
auth:
|
|
@@ -65,7 +65,6 @@ services:
|
|
|
65
65
|
OAUTH_OIDC_URL: http://localhost:8182/realms/geovisio
|
|
66
66
|
OAUTH_PROVIDER: oidc
|
|
67
67
|
FLASK_SECRET_KEY: a_very_secret_key_never_to_be_used_in_production
|
|
68
|
-
FLASK_SESSION_COOKIE_HTTPONLY: false # the website needs to be able to decode flask's session cookie
|
|
69
68
|
API_FORCE_AUTH_ON_UPLOAD: True
|
|
70
69
|
PICTURE_PROCESS_THREADS_LIMIT: 0
|
|
71
70
|
PICTURE_PROCESS_DERIVATES_STRATEGY: PREPROCESS
|
|
@@ -97,7 +96,7 @@ services:
|
|
|
97
96
|
context: ..
|
|
98
97
|
dockerfile: Dockerfile
|
|
99
98
|
cache_from:
|
|
100
|
-
- registry.gitlab.com/
|
|
99
|
+
- registry.gitlab.com/panoramax/server/api:build_cache
|
|
101
100
|
command: picture-worker
|
|
102
101
|
depends_on:
|
|
103
102
|
db:
|
|
@@ -123,13 +122,12 @@ services:
|
|
|
123
122
|
POSTGRES_PASSWORD: gvspwd
|
|
124
123
|
POSTGRES_USER: gvs
|
|
125
124
|
healthcheck:
|
|
126
|
-
|
|
127
|
-
test: pg_isready -q -d $$POSTGRES_DB -U $$POSTGRES_USER && sleep 1 && pg_isready -q -d $$POSTGRES_DB -U $$POSTGRES_USER
|
|
125
|
+
test: pg_isready -h db -q -d $$POSTGRES_DB -U $$POSTGRES_USER
|
|
128
126
|
timeout: 5s
|
|
129
127
|
interval: 5s
|
|
130
128
|
retries: 5
|
|
131
129
|
start_period: 60s
|
|
132
|
-
image: postgis/postgis:
|
|
130
|
+
image: postgis/postgis:16-3.4
|
|
133
131
|
ports:
|
|
134
132
|
- 5445:5432
|
|
135
133
|
volumes:
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
services:
|
|
2
|
-
|
|
3
2
|
minio:
|
|
4
3
|
image: quay.io/minio/minio:RELEASE.2023-04-20T17-56-55Z
|
|
5
4
|
command: server --console-address ":9001" /mnt/data
|
|
@@ -12,7 +11,7 @@ services:
|
|
|
12
11
|
MINIO_ROOT_USER: geovisio
|
|
13
12
|
MINIO_ROOT_PASSWORD: SOME_VERY_SECRET_KEY
|
|
14
13
|
healthcheck:
|
|
15
|
-
test: ["CMD", "curl", "-f", "http://
|
|
14
|
+
test: ["CMD", "curl", "-f", "http://minio:9000/minio/health/live"]
|
|
16
15
|
interval: 2s
|
|
17
16
|
timeout: 5s
|
|
18
17
|
retries: 3
|
|
@@ -9,6 +9,7 @@ usage() {
|
|
|
9
9
|
echo -e "\tpicture-worker: Starts an independant background worker to process pictures"
|
|
10
10
|
echo -e "\tcleanup: Cleans database and remove Geovisio derivated files (it doesn't delete your original pictures)"
|
|
11
11
|
echo -e "\tdb-upgrade: Upgrade the database schema"
|
|
12
|
+
echo -e "\tdb-refresh: Refresh all materialized views in the database"
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
# default value is api
|
|
@@ -22,7 +23,7 @@ case $command in
|
|
|
22
23
|
python3 -m waitress --port 5000 --threads=${NB_API_THREADS:-4} --call 'geovisio:create_app'
|
|
23
24
|
;;
|
|
24
25
|
"ssl-api")
|
|
25
|
-
python3 -m waitress --port 5000 --threads=${NB_API_THREADS:-4} --url-scheme=https --call 'geovisio:create_app'
|
|
26
|
+
python3 -m waitress --port 5000 --threads=${NB_API_THREADS:-4} --url-scheme=https --trusted-proxy '*' --trusted-proxy-headers 'X-Forwarded-For X-Forwarded-Host X-Forwarded-Port X-Forwarded-Proto' --log-untrusted-proxy-headers --clear-untrusted-proxy-headers --call 'geovisio:create_app'
|
|
26
27
|
;;
|
|
27
28
|
"picture-worker")
|
|
28
29
|
python3 -m flask picture-worker
|
|
@@ -36,6 +37,9 @@ case $command in
|
|
|
36
37
|
"db-upgrade")
|
|
37
38
|
python3 -m flask db upgrade
|
|
38
39
|
;;
|
|
40
|
+
"db-refresh")
|
|
41
|
+
python3 -m flask db refresh
|
|
42
|
+
;;
|
|
39
43
|
*)
|
|
40
44
|
usage
|
|
41
45
|
;;
|