### Setting Up and Serving General Documentation Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Install documentation dependencies and start a local server to preview the Mkdocs documentation. ```bash # Install dependencies pip install -e . --group docs # Generate swagger doc, and run mkdocs with a local server make serve-doc ``` -------------------------------- ### Install via uv Source: https://docs.panoramax.fr/cli/INSTALL?q= Install the CLI into a persistent environment using uv. ```bash # install uv tool install panoramax_cli # run panoramax_cli --help ``` -------------------------------- ### Install with write-exif support Source: https://docs.panoramax.fr/pictures-metadata/install Install the package with the write-exif extra to enable tag writing capabilities. ```bash pip install geopic_tag_reader[write-exif] ``` ```bash pipx install geopic_tag_reader[write-exif] ``` ```bash pip install -e .[write-exif] ``` -------------------------------- ### Install via PyPI Source: https://docs.panoramax.fr/cli/INSTALL Install the package using pip and verify the installation. ```bash pip install panoramax_cli ``` ```bash panoramax_cli --help ``` -------------------------------- ### Install from Git repository Source: https://docs.panoramax.fr/cli/INSTALL Clone the source code and install dependencies within a virtual environment. ```bash git clone https://gitlab.com/panoramax/clients/cli.git panoramax_cli cd panoramax_cli/ ``` ```bash # Create the virtual environment in a folder named "env" python3 -m venv env # Launches utilities to make environment available in your Bash source ./env/bin/activate ``` ```bash pip install -e . ``` ```bash pip install -e .[dev,docs] ``` ```bash panoramax_cli --help ``` -------------------------------- ### PyFilesystem URL Examples Source: https://docs.panoramax.fr/backend/install/settings?q= Examples of valid PyFilesystem strings for local disk or S3-compatible storage backends. ```text example: * `/path/to/pic/dir` for disk storage * `s3://mybucket/myfolder?endpoint_url=https%3A%2F%2Fs3.fr-par.scw.cloud®ion=fr-par` for S3 storage ``` -------------------------------- ### Install and run via uv Source: https://docs.panoramax.fr/cli/INSTALL Use uv to run the CLI directly or install it into a persistent environment. ```bash uvx panoramax_cli --help ``` ```bash # install uv tool install panoramax_cli # run panoramax_cli --help ``` -------------------------------- ### Install Panoramax via Git Source: https://docs.panoramax.fr/backend/install/install?q= Install the API from the source repository using a virtual environment. ```bash # Retrieve API source code git clone https://gitlab.com/panoramax/server/api.git panoramax-api cd panoramax-api/ # Enable Python environment python3 -m venv env source ./env/bin/activate # Install Python dependencies pip install -e . ``` -------------------------------- ### Install write-exif dependency Source: https://docs.panoramax.fr/pictures-metadata/tech/api_reference Install the required dependencies for the writer module. ```bash pip install -e .[write-exif] ``` -------------------------------- ### Install development dependencies and run tests Source: https://docs.panoramax.fr/federated-catalog/dev/harvester Install the development requirements in a virtual environment and execute the test suite. ```bash pip install -e .[dev] pytest ``` -------------------------------- ### Install and load spatial extension Source: https://docs.panoramax.fr/federated-catalog/tutorials/duckdb Required setup to enable spatial query capabilities in DuckDB. ```sql INSTALL SPATIAL; LOAD SPATIAL; ``` -------------------------------- ### Install Rust toolchain Source: https://docs.panoramax.fr/federated-catalog/install Use the official rustup script to install the required Rust environment. ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -------------------------------- ### Build and run production Source: https://docs.panoramax.fr/frontend/02_Setup Compiles the application for production and starts the server. ```bash pnpm build ``` ```bash yarn build ``` ```bash npm run build ``` ```bash node server.js ``` -------------------------------- ### Install Panoramax via PyPI Source: https://docs.panoramax.fr/backend/install/install?q= Install the API package directly from PyPI into a virtual environment. ```bash # Enable Python environment python3 -m venv env source ./env/bin/activate # Install Python dependencies pip install geovisio ``` -------------------------------- ### Verify CLI installation Source: https://docs.panoramax.fr/pictures-metadata/install Check that the tool is installed and accessible. ```bash geopic-tag-reader --help ``` -------------------------------- ### Initialize environment configuration Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_keycloak Create the .env file from the provided example template. ```bash cp env.example .env ``` -------------------------------- ### Install via pipx Source: https://docs.panoramax.fr/cli/INSTALL Install the CLI in an isolated virtual environment using pipx. ```bash pipx install panoramax_cli ``` -------------------------------- ### Start Database via Docker Compose Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Alternative method to start the database service using the project's Docker Compose configuration. ```bash docker compose -p panoramax_api_test up -d db ``` -------------------------------- ### Install Formatting Dependencies Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Installs the required development dependencies for code formatting. ```bash pip install --group format ``` -------------------------------- ### Build and serve documentation with MkDocs Source: https://docs.panoramax.fr/web-viewer/09_Develop Installs the necessary dependencies and runs the local development server or builds the static site. ```bash pip install mkdocs mkdocs-material mkdocs serve mkdocs build ``` -------------------------------- ### Clone and navigate to the project directory Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_osm_auth Initial setup steps to access the required Docker configuration files. ```bash git clone https://gitlab.com/panoramax/server/api.git panoramax-api cd panoramax-api/docker/full-osm-auth/ ``` -------------------------------- ### viewer.onceAllAPIsReady() Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Viewer?q= Waits for all APIs setup. ```APIDOC ## viewer.onceAllAPIsReady() ### Description Waits for all APIs setup. This is useful for two-APIs setup. ### Returns - **Promise** - Fulfils with null when two APIs are ready, rejects with string error message. ``` -------------------------------- ### Build and deploy application Source: https://docs.panoramax.fr/frontend/09_Develop Builds the project and prepares the production environment, followed by starting the Express server. ```bash pnpm build:deploy ``` ```bash node server.js ``` -------------------------------- ### Run Windows binary Source: https://docs.panoramax.fr/cli/INSTALL Execute the downloaded Windows executable to verify installation. ```bash panoramax_cli-win-amd64.exe --help ``` -------------------------------- ### Install dependencies Source: https://docs.panoramax.fr/frontend/02_Setup Installs project dependencies using the preferred package manager. ```bash pnpm install ``` ```bash yarn install ``` ```bash npm install ``` -------------------------------- ### Install Bacon for Hot Reloading Source: https://docs.panoramax.fr/federated-catalog/dev/api Install the bacon tool to enable automatic rebuilds during development. ```bash cd api cargo install --locked bacon ``` -------------------------------- ### Initialize PhotoViewer with HTML Source: https://docs.panoramax.fr/web-viewer/reference/components/core/PhotoViewer Examples showing basic initialization, usage with slotted widgets, and disabling default widgets. ```html

My custom text

Edit in my own tool

My custom text

``` -------------------------------- ### Install legacy version Source: https://docs.panoramax.fr/cli/INSTALL Install a specific older version of the CLI for compatibility with older APIs. ```bash pip install panoramax_cli=0.3.13 ``` -------------------------------- ### Run development environments Source: https://docs.panoramax.fr/frontend/09_Develop Commands to start the development servers for the front-office and back-office applications. ```bash pnpm dev:app ``` ```bash pnpm dev:admin ``` -------------------------------- ### viewer.onceAPIReady() Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Viewer Waits for initial API setup. ```APIDOC ## viewer.onceAPIReady() -> Promise ### Description Waits for initial API setup. ### Returns - **Promise** - Fulfils with null when API is ready, rejects with a string error message. ``` -------------------------------- ### Install Linux binary to system path Source: https://docs.panoramax.fr/cli/INSTALL Move the binary to a system directory for global access. ```bash chmod u+x panoramax_cli-linux-amd64 mv panoramax_cli-linux-amd64 /usr/local/bin/panoramax_cli panoramax_cli --help ``` -------------------------------- ### Start Keycloak Server Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Launches a pre-configured Keycloak instance using Docker Compose. ```bash docker-compose -f docker/docker-compose-keycloak.yml up ``` -------------------------------- ### Initialize pnx-mini component Source: https://docs.panoramax.fr/web-viewer/reference/components/layout/Mini Usage example for the pnx-mini element, showing how to pass an icon and a child component. ```html ``` -------------------------------- ### Start API with Docker Source: https://docs.panoramax.fr/backend/install/running Commands to run the API container with standard or SSL configurations. ```bash docker run \ -e DB_URL= \ -p 5000:5000 \ --name geovisio \ -v :/data/geovisio \ panoramax/api:develop \ api ``` ```bash docker run \ -e DB_URL= \ -p 5000:5000 \ --name geovisio \ -v :/data/geovisio \ panoramax/api:develop \ ssl-api ``` -------------------------------- ### Start PostgreSQL Test Database with Docker Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Initializes a temporary PostgreSQL/PostGIS container for testing purposes. ```bash docker run -d --name geovisio_test -e POSTGRES_USER=gvs -e POSTGRES_PASSWORD=gvspwd -e POSTGRES_DB=geovisio -p 5445:5432 --shm-size=1g docker.io/postgis/postgis:17-3.5 ``` -------------------------------- ### Run development servers Source: https://docs.panoramax.fr/frontend/02_Setup Starts the development server for either the main application or the admin interface. ```bash pnpm dev:app ``` ```bash yarn dev:app ``` ```bash npm run dev:app ``` ```bash pnpm dev:admin ``` ```bash yarn dev:admin ``` ```bash npm run dev:admin ``` -------------------------------- ### Running the Panoramax API Locally Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Start the backend server to access the API and Swagger documentation at localhost:5000/api/docs/swagger. ```bash panoramax_backend run ``` -------------------------------- ### Example URL with Map and Picture Parameters Source: https://docs.panoramax.fr/web-viewer/03_URL_settings?q= A sample URL demonstrating the use of map coordinates and picture ID parameters. ```text https://api.panoramax.xyz/?map=19.51/48.1204522/-1.7199004&pic=890b6268-7716-4e34-ada9-69985e6c1657 ``` -------------------------------- ### Deploy Meta-Catalog with Docker Compose Source: https://docs.panoramax.fr/federated-catalog/install Use Docker Compose to clone the repository and start the meta-catalog services. ```bash git clone https://gitlab.com/panoramax/server/meta-catalog.git cd meta-catalog/ docker compose -p meta-catalog up --build ``` -------------------------------- ### Installing Development Dependencies Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Install the project in editable mode with development dependencies. Requires pip version 25.1 or higher. ```bash pip install -e . --group dev ``` -------------------------------- ### Run and install Linux binary Source: https://docs.panoramax.fr/cli/INSTALL Set execution permissions and run the Linux binary, or move it to a system path for global access. ```bash chmod u+x panoramax_cli-linux-amd64 ./panoramax_cli-linux-amd64 --help ``` ```bash chmod u+x panoramax_cli-linux-amd64 mv panoramax_cli-linux-amd64 /usr/local/bin/panoramax_cli panoramax_cli --help ``` -------------------------------- ### Start API with Gunicorn or Waitress Source: https://docs.panoramax.fr/backend/install/running Commands to run the Panoramax API using production-ready WSGI servers. ```bash gunicorn -b :5000 'geovisio:create_api()' ``` ```bash pip install waitress python3 -m waitress --port 5000 --url-scheme=https --call 'geovisio:create_api' ``` -------------------------------- ### Initialize pnx-viewer component Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Viewer Examples of embedding the viewer with different configurations, including metacatalog settings, custom slotted widgets, and map options. ```html

My custom text

Edit in my own tool

My custom text

``` -------------------------------- ### GET /api/annotations/:annotationId Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Get a specific annotation by ID (alias). ```APIDOC ## GET /api/annotations/:annotationId ### Description Get a specific annotation by ID (alias). ### Method GET ### Endpoint /api/annotations/:annotationId ``` -------------------------------- ### Loading Panoramax Web Viewer Dependencies Source: https://docs.panoramax.fr/web-viewer/tutorials/migrate_v5 Examples for loading the viewer via ES Modules or the legacy bundled approach. ```html ``` ```html ``` ```html ``` -------------------------------- ### Run Docker Compose with Blurring API Source: https://docs.panoramax.fr/backend/install/install?q= Start a full Panoramax instance including the optional blurring service. ```bash docker compose -f docker/docker-compose-full.yml -f docker/docker-compose-blurring.yml up ``` -------------------------------- ### Upgrade via uv tool Source: https://docs.panoramax.fr/cli/INSTALL Upgrade the installed tool using uv. ```bash uv tool upgrade panoramax_cli ``` -------------------------------- ### Initialize pnx-popup component Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/Popup Displays a basic usage example of the pnx-popup element with a close event listener. ```html alert("closed")}>

Popup content

``` -------------------------------- ### Run Docker Compose on Linux Source: https://docs.panoramax.fr/backend/install/install?q= Start a full Panoramax instance using host networking, specifically for Linux environments. ```bash docker compose -f docker/docker-compose-full.yml -f docker/docker-compose-full-linux.yml up ``` -------------------------------- ### Start services with optional blurring Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_keycloak Launch the Docker containers including the optional blurring service using multiple compose files. ```bash docker compose --project-name geovisio-osm -f docker-compose.yml -f ../docker-compose-blurring.yml up -d ``` -------------------------------- ### Implement Tutorial Source: https://docs.panoramax.fr/frontend/Components-App Displays static tutorial images for Android users. ```vue ``` -------------------------------- ### Prepare code for contribution Source: https://docs.panoramax.fr/pictures-metadata/develop Run CI checks or install pre-commit hooks to ensure code quality. ```bash make ci ``` ```bash pip install -e .[dev] pre-commit install ``` -------------------------------- ### Initialize SearchBar element Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/SearchBar?q= Example of declaring the pnx-search-bar element with custom properties and event handling. ```html console.log(e.detail)} > ``` -------------------------------- ### GET /api/collections/:collectionId/items/:itemId/annotations/:annotationId Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Get a specific annotation by ID. ```APIDOC ## GET /api/collections/:collectionId/items/:itemId/annotations/:annotationId ### Description Get a specific annotation by ID. ### Method GET ### Endpoint /api/collections/:collectionId/items/:itemId/annotations/:annotationId ``` -------------------------------- ### Run via uvx Source: https://docs.panoramax.fr/cli/INSTALL?q= Run the CLI directly using uvx without persistent installation. ```bash uvx panoramax_cli --help ``` -------------------------------- ### Initialize pnx-togglable-group Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/TogglableGroup Usage example showing the component structure with a button slot and menu content. ```html Open menu
Menu content
``` -------------------------------- ### Implementing the Legend component Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/widgets/Legend Examples showing the default configuration, custom editor slots, and the lightweight display mode for the pnx-widget-legend element. ```html ``` -------------------------------- ### Manage Docker services Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_keycloak Commands to start, monitor, and verify the status of the Panoramax authentication services. ```bash docker compose --project-name geovisio-auth up -d ``` ```bash docker compose -p geovisio-auth ps ``` ```bash docker compose -p geovisio-auth logs -f ``` ```bash curl --fail http://localhost:8080/api ``` -------------------------------- ### Create database Source: https://docs.panoramax.fr/backend/install/database_setup?q= Initialize the database with UTF-8 encoding and set the owner. ```bash $ sudo su - postgres -c "psql -c \"CREATE DATABASE panoramax ENCODING 'UTF-8' TEMPLATE template0 OWNER panoramax\"" ``` -------------------------------- ### Manage Harvester Timer Source: https://docs.panoramax.fr/federated-catalog/systemd/systemd?q= Commands to start and enable the harvest-instances timer. ```bash systemctl start harvest-instances.timer ``` ```bash systemctl enable harvest-instances.timer ``` -------------------------------- ### Initialize Editor Component Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Editor Basic implementation of the pnx-editor element and an example using custom slotted content. ```html

My custom text

``` -------------------------------- ### Configure pg_hba.conf entry Source: https://docs.panoramax.fr/backend/install/database_setup?q= Example entry to allow database access from a specific IP range. ```text host panoramax panoramax 172.17.0.0/24 trust ``` -------------------------------- ### Manage and verify Docker services Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_osm_auth Commands to start, monitor, and test the API service status. ```bash docker compose --project-name geovisio-osm up -d ``` ```bash docker compose -p geovisio-osm ps ``` ```bash docker compose -p geovisio-osm logs -f ``` ```bash curl --fail http://localhost:8080/api ``` -------------------------------- ### Start Stats Refresh Timer Source: https://docs.panoramax.fr/federated-catalog/systemd/systemd?q= Start the timer responsible for refreshing materialized views for stats. ```bash systemctl start stats-refresh.timer ``` -------------------------------- ### Initialize CoverageMap Component Source: https://docs.panoramax.fr/web-viewer/reference/components/core/CoverageMap Example of declaring the pnx-coverage-map element with required endpoint and map configuration. ```html ``` -------------------------------- ### Install Pre-commit Hooks Source: https://docs.panoramax.fr/backend/dev/develop_server?q= Configures git hooks to automatically format code upon committing. ```bash pre-commit install ``` -------------------------------- ### Initialize GeoSearch Component Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/widgets/GeoSearch?q= Examples showing how to implement the default geocoder and a custom-URL geocoder using the pnx-widget-geosearch element. ```html ``` -------------------------------- ### Manage and monitor Docker services Source: https://docs.panoramax.fr/backend/install/tutorials/running_docker_osm_auth?q= Commands to start, inspect, and monitor the status of the Panoramax services. ```bash docker compose --project-name geovisio-osm up -d ``` ```bash docker compose -p geovisio-osm ps ``` ```bash docker compose -p geovisio-osm logs -f ``` -------------------------------- ### HATEOAS Link Structure Example Source: https://docs.panoramax.fr/backend/api/api Example of a JSON link object indicating an edit permission, including the HTTP method, endpoint, and editable attributes. ```json "links": [ ... { "rel": "edit", "type": "application/json", "method": "PATCH", // <-- HTTP verb to use to call the endpoint "href": "https://my_panoramax.org/api/collections/some_id", // <-- api endpoint "attributes": ["relative_heading", "semantics", "sortby", "title", "visibility"], // <-- the user can patch those fields }, ] ``` -------------------------------- ### Install Panoramax via NPM Source: https://docs.panoramax.fr/web-viewer Use this command to add the Panoramax web viewer package to your project dependencies. ```bash npm install @panoramax/web-viewer ``` -------------------------------- ### Example of v4 URL structure Source: https://docs.panoramax.fr/web-viewer/tutorials/migrate_v4 The new URL format uses search parameters instead of hash fragments for configuration. ```text https://panoramax.ign.fr/?background=streets&focus=map&map=9/48.6659/2.3237&speed=250 ``` -------------------------------- ### GET /api/collections Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieves a list of sequences. ```APIDOC ## GET /api/collections ### Description Retrieves a list of sequences. ### Method GET ### Endpoint /api/collections ### Parameters #### Query Parameters - **filter** (string) - Optional - Common Query Language expression for filtering; supports status='deleted'. - **created_before** (string) - Optional - Deprecated. - **created_after** (string) - Optional - Deprecated. ``` -------------------------------- ### Initialize Basic Viewer Component Source: https://docs.panoramax.fr/web-viewer Create a viewer instance using the pnx-viewer web component. ```html ``` -------------------------------- ### Configure Harvester Instances Source: https://docs.panoramax.fr/federated-catalog/install Add instances to the federation using the stac-harvester CLI via manual installation or uv. ```bash cd harvester python -m pip install --upgrade virtualenv virtualenv .venv source .venv/bin/activate pip install -e . stac-harvester add-instance --db "postgresql://username:password@localhost:5432/panoramax" my-instance --url https://your.panoramax.org ``` ```bash cd harvester uv sync uv run stac-harvester add-instance --db "postgresql://username:password@localhost:5432/panoramax" my-instance --url https://your.panoramax.org ``` ```bash docker compose -p meta-catalog -f docker-compose.yml -f docker-compose-harvester.yml run --build --rm harvester -c "stac-harvester add-instance my-instance --url https://your.panoramax.org" ``` -------------------------------- ### api.getDataBbox() Source: https://docs.panoramax.fr/web-viewer/reference/utils/API Get available data bounding box. ```APIDOC ## api.getDataBbox() ### Description Get available data bounding box. ### Returns - **LngLatBoundsLike** - The bounding box or null if not available ### Throws - Error: If API is not ready ``` -------------------------------- ### api.getDataBbox() Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q= Get available data bounding box. ```APIDOC ## api.getDataBbox() ### Description Get available data bounding box. ### Returns - **LngLatBoundsLike** - The bounding box or null if not available ``` -------------------------------- ### Manage Panoramax API Service Source: https://docs.panoramax.fr/federated-catalog/systemd/systemd Commands to start and check the status of the main Panoramax API service. ```bash service panoramax start ``` ```bash service panoramax status ``` -------------------------------- ### Build Panoramax from Source Source: https://docs.panoramax.fr/web-viewer Clone the repository and build the library locally using Node.js. ```bash git clone https://gitlab.com/panoramax/clients/web-viewer.git cd web-viewer/ npm install npm build ``` -------------------------------- ### GET /api/reports Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieve a list of user reports. ```APIDOC ## GET /api/reports ### Description Retrieve a list of user reports. ### Method GET ### Endpoint /api/reports ``` -------------------------------- ### photo.playSequence() Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/Photo Starts continuous playback of the current sequence. ```APIDOC ## photo.playSequence() ### Description Goes continuously to next picture in sequence as long as possible. ``` -------------------------------- ### Initialize and Configure SemanticsEditor Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/SemanticsEditor Demonstrates basic component usage, validity checking, and CSS styling via shadow parts. ```html console.log(e.detail.semantics)} /> ``` -------------------------------- ### Terminal Source: https://docs.panoramax.fr/frontend/Components-App A terminal-style component for displaying installation and upload commands. ```APIDOC ## Terminal ### Description Displays installation and upload commands in a terminal-style UI. ### Props - **textUpload** (String) - Optional - The upload command text. - **textInstall** (String) - Optional - The installation command text. ### Usage Example ``` -------------------------------- ### api.getUserName(userId) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API Get user name based on its ID. ```APIDOC ## api.getUserName(userId) ### Description Get user name based on its ID. ### Parameters - **userId** (string) - Required - The user UUID ### Returns - **Promise** - The user name (or null if not found) ### Throws - Error: If API is not ready ``` -------------------------------- ### Build and run the API Source: https://docs.panoramax.fr/federated-catalog/install Compile and execute the API with the specified database connection string. ```bash cd api cargo run --release -- --db-url=postgres://username:password@localhost:5432/panoramax ``` -------------------------------- ### api.getUserName(userId) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q= Get user name based on its ID. ```APIDOC ## api.getUserName(userId) ### Description Get user name based on its ID. ### Parameters - **userId** (string) - Required - The user UUID ### Returns - **Promise** - The user name (or null if not found) ``` -------------------------------- ### Retrieve User Tokens List Source: https://docs.panoramax.fr/backend/api/api Example response structure when fetching a list of user tokens from the API. ```json [ { "description": "default token", "generated_at": "2023-05-11T15:56:59.410095+00:00", "id": "e11c255c-6023-4eee-bb47-31566f4ce65f", "links": [ { "href": "https://my-panoramax.fr/api/users/me/tokens/e11c255c-6023-4eee-bb47-31566f4ce65f", "rel": "self", "type": "application/json" } ] } ] ``` -------------------------------- ### GET /api/users/me/reports Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieve reports for the currently authenticated user. ```APIDOC ## GET /api/users/me/reports ### Description Retrieve reports for the currently authenticated user. ### Method GET ### Endpoint /api/users/me/reports ``` -------------------------------- ### GET & POST /api/search Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Searches for pictures across the system. ```APIDOC ## GET & POST /api/search ### Description Searches for pictures. Note that numberMatched and numberReturned properties are not returned in the response. ### Method GET, POST ### Endpoint /api/search ``` -------------------------------- ### GET & POST /api/search Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility?q= Search for pictures across the system. ```APIDOC ## GET & POST /api/search ### Description Search for pictures. Note that numberMatched and numberReturned properties are not returned. ### Method GET, POST ### Endpoint /api/search ``` -------------------------------- ### Initialize pnx-location-precision-doc Source: https://docs.panoramax.fr/web-viewer/reference/components/menus/LocationPrecisionDoc Use this element to render the location precision documentation summary within a Lit template. ```html ``` -------------------------------- ### GET /api/collections Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility?q= Retrieve a list of sequences with optional filtering. ```APIDOC ## GET /api/collections ### Description Retrieve a list of sequences. Supports filtering via CQL expressions. ### Method GET ### Endpoint /api/collections ### Parameters #### Query Parameters - **filter** (string) - Optional - CQL expression for filtering (e.g., status='deleted') - **created_before** (string) - Optional - Deprecated - **created_after** (string) - Optional - Deprecated ``` -------------------------------- ### Generate project documentation Source: https://docs.panoramax.fr/pictures-metadata/develop Update the USAGE.md file or serve the Mkdocs documentation locally. ```bash make docs ``` ```bash pip install -e .[docs] mkdocs serve ``` -------------------------------- ### Configure PSV Options Source: https://docs.panoramax.fr/web-viewer/reference/components/core/PhotoViewer Example of passing custom options to the underlying Photo Sphere Viewer component via the psv-options attribute. ```text psv-options="{'transitionDuration': 500, 'picturesNavigation': 'pic'}" ``` -------------------------------- ### GET /api/configuration/excluded_areas Source: https://docs.panoramax.fr/backend/install/deep_dive/excluded_areas Retrieves the list of general excluded areas. ```APIDOC ## GET /api/configuration/excluded_areas ### Description Lists general excluded areas. If `all=true` is provided, it returns all areas; otherwise, it returns publicly visible areas. ### Method GET ### Endpoint /api/configuration/excluded_areas ### Parameters #### Query Parameters - **all** (boolean) - Optional - If true, returns all areas including non-public ones. ``` -------------------------------- ### Perform a release Source: https://docs.panoramax.fr/cli/DEVELOP Steps to update versioning, documentation, and merge changes from develop to main. ```bash git checkout develop git pull vim CHANGELOG.md # Edit version + links at bottom vim panoramax_cli/__init__.py # Edit version make docs ci git add * git commit -m "Release x.x.x" git tag -a x.x.x -m "Release x.x.x" git push origin develop git checkout main git merge develop git push origin main --tags ``` -------------------------------- ### api.getPictureThumbnailURL(picId, [seqId]) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API Get thumbnail URL for a specific picture. ```APIDOC ## api.getPictureThumbnailURL(picId, [seqId]) ### Description Get thumbnail URL for a specific picture. ### Parameters - **picId** (string) - Required - The picture unique identifier - **seqId** (string) - Optional - The sequence ID ### Returns - **Promise** - The corresponding URL on resolve, or null if no thumbnail could be found ### Throws - Error: If API is not ready ``` -------------------------------- ### api.getPictureThumbnailURL(picId, [seqId]) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q= Get thumbnail URL for a specific picture. ```APIDOC ## api.getPictureThumbnailURL(picId, [seqId]) ### Description Get thumbnail URL for a specific picture. ### Parameters - **picId** (string) - Required - The picture unique identifier - **seqId** (string) - Optional - The sequence ID ### Returns - **Promise** - The corresponding URL on resolve, or null if no thumbnail could be found ``` -------------------------------- ### GET /api/auth/logout Source: https://docs.panoramax.fr/backend/api/api?q= Logs the user out of the current Panoramax instance session. ```APIDOC ## GET /api/auth/logout ### Description Performs a logout from the current Panoramax instance. ### Method GET ### Endpoint /api/auth/logout ``` -------------------------------- ### Initialize Viewer with Plugin Source: https://docs.panoramax.fr/web-viewer/tutorials/plugins Create the viewer component programmatically in JavaScript to pass the plugin configuration via psv-options. ```javascript ``` -------------------------------- ### GET /api/auth/login Source: https://docs.panoramax.fr/backend/api/api?q= Redirects the user to the configured OAuth provider for authentication. ```APIDOC ## GET /api/auth/login ### Description Redirects the user to the configured instance's OAuth provider to initiate the authentication flow. ### Method GET ### Endpoint /api/auth/login ``` -------------------------------- ### GET /api/users/me/tokens Source: https://docs.panoramax.fr/backend/api/api Retrieves a list of Panoramax tokens for the authenticated user. ```APIDOC ## GET /api/users/me/tokens ### Description Retrieves a list of tokens associated with the currently authenticated user. This requires an active session cookie. ### Method GET ### Endpoint /api/users/me/tokens ### Response #### Success Response (200) - **tokens** (array) - List of token objects containing id, description, and links. ``` -------------------------------- ### GET /api/pictures/:itemId/annotations Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility List annotations for a specific picture (alias). ```APIDOC ## GET /api/pictures/:itemId/annotations ### Description List annotations for a specific picture (alias). ### Method GET ### Endpoint /api/pictures/:itemId/annotations ``` -------------------------------- ### GET /api/pictures/:itemId Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieve a specific picture by ID (alias). ```APIDOC ## GET /api/pictures/:itemId ### Description Retrieve a specific picture by ID (alias). ### Method GET ### Endpoint /api/pictures/:itemId ``` -------------------------------- ### GET /api/collections/:collectionId/items/:itemId/annotations Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility List all annotations for a specific picture. ```APIDOC ## GET /api/collections/:collectionId/items/:itemId/annotations ### Description List all annotations for a specific picture. ### Method GET ### Endpoint /api/collections/:collectionId/items/:itemId/annotations ``` -------------------------------- ### GET /api/reports/:id Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieve a specific user report by ID. ```APIDOC ## GET /api/reports/:id ### Description Retrieve a specific user report by ID. ### Method GET ### Endpoint /api/reports/:id ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the report. ``` -------------------------------- ### View upload command help Source: https://docs.panoramax.fr/cli/USAGE Displays the help menu for the upload subcommand. ```bash panoramax_cli upload --help ``` -------------------------------- ### GET /api/collections/:collectionId/items/:itemId Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieves metadata for a specific picture. ```APIDOC ## GET /api/collections/:collectionId/items/:itemId ### Description Retrieves metadata for a specific picture. Note that response status 102 indicates the picture is still under process. ### Method GET ### Endpoint /api/collections/:collectionId/items/:itemId ### Parameters #### Path Parameters - **collectionId** (string) - Required - The ID of the collection. - **itemId** (string) - Required - The ID of the picture item. ``` -------------------------------- ### Configure API via .env Files Source: https://docs.panoramax.fr/backend/install/settings?q= Load configuration from a specified .env file using various tools. ```bash panoramax_backend --env-file my_config.env ``` ```bash flask --env-file my_config.env ``` ```bash dotenv --file my_config.env run waitress-serve --port 5000 --call geovisio:create_api ``` ```bash dotenv --file my_config.env run gunicorn -b :5000 'geovisio:create_api()' ``` ```bash docker run --env-file my_config.env panoramax/api:latest ``` -------------------------------- ### Execute release commands Source: https://docs.panoramax.fr/web-viewer/90_Releases Run these commands sequentially to prepare, commit, and push a new version release. ```bash git checkout develop vim package.json # Change version vim package-lock.json # Change version npm run doc npm run build # To re-generate code snippets vim CHANGELOG.md # Replace unreleased to version number (and links at bottom) git add * git commit -m "Release x.x.x" git tag -a x.x.x -m "Release x.x.x" git push origin develop git checkout main git merge develop git push origin main --tags ``` -------------------------------- ### GET /api/collections/:collectionId/items/:itemId Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility?q= Retrieve metadata for a specific picture. ```APIDOC ## GET /api/collections/:collectionId/items/:itemId ### Description Retrieve metadata for a specific picture. Response status 102 indicates processing, 200 indicates ready. ### Method GET ### Endpoint /api/collections/:collectionId/items/:itemId ### Parameters #### Path Parameters - **collectionId** (string) - Required - The ID of the collection - **itemId** (string) - Required - The ID of the item ``` -------------------------------- ### GET /api/collections/:collectionId/items Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieves a list of pictures in a specific sequence. ```APIDOC ## GET /api/collections/:collectionId/items ### Description Retrieves a list of pictures in a specific sequence. ### Method GET ### Endpoint /api/collections/:collectionId/items ### Parameters #### Path Parameters - **collectionId** (string) - Required - The ID of the collection. #### Query Parameters - **startAfterRank** (integer) - Optional - Pagination parameter. - **withPicture** (boolean) - Optional - Include picture details. ``` -------------------------------- ### urlHandler.listenToChanges() Source: https://docs.panoramax.fr/web-viewer/reference/utils/URLHandler?q= Starts listening to URL and parent changes to trigger updates. ```APIDOC ## urlHandler.listenToChanges() ### Description Starts listening to URL and parent changes through events, enabling automatic synchronization. ``` -------------------------------- ### Deploy with Docker Source: https://docs.panoramax.fr/frontend/02_Setup?q= Runs the Panoramax website using the official Docker image or a custom-built image. ```bash docker run \ -e VITE_API_URL="https://my-panoramax-api.fr/" \ -e VITE_TILES="https://my-panoramax-api.fr/vector/tiles/style.json" \ -e VITE_VIEWER_SETTINGS='{ \"map-options\": {\"theme\": \"score\" } }' \ -p 3000:3000 \ --name panoramax-website \ -d \ panoramax/website:latest ``` ```bash docker run registry.gitlab.com/panoramax/server/website: ``` ```bash docker build -t panoramax/website:latest . ``` -------------------------------- ### editor.onceAPIReady() Source: https://docs.panoramax.fr/web-viewer/reference/components/core/Editor Returns a promise that resolves when the initial API setup is complete. ```APIDOC ## editor.onceAPIReady() -> Promise ### Description Waits for the initial API setup to be ready. ### Returns - **Promise** - Resolves with null when the API is ready, or rejects with an error message. ``` -------------------------------- ### Initialize Photo Component Source: https://docs.panoramax.fr/web-viewer/reference/components/ui/Photo Instantiate the Photo component by providing the parent view, target DOM element, and optional configuration. ```javascript const psv = new Panoramax.components.ui.Photo(viewer, psvNode, {transitionDuration: 500}) ``` -------------------------------- ### coverageMap.onceAPIReady() Source: https://docs.panoramax.fr/web-viewer/reference/components/core/CoverageMap?q= Returns a promise that resolves when the initial API setup is complete. ```APIDOC ## coverageMap.onceAPIReady() => Promise ### Description Waits for the initial API configuration to be ready. ### Returns - **Promise** - Resolves with null when the API is ready, or rejects with a string error message. ``` -------------------------------- ### Update dependencies via pip Source: https://docs.panoramax.fr/cli/INSTALL Install or update dependencies in editable mode. ```bash pip install --upgrade -e . ``` -------------------------------- ### Initialize pnx-player-options component Source: https://docs.panoramax.fr/web-viewer/reference/components/menus/PlayerOptions Use this tag to embed the player options menu within the viewer context. ```html ``` -------------------------------- ### Update via uvx Source: https://docs.panoramax.fr/cli/INSTALL Run the latest version using uvx. ```bash uvx panoramax_cli@latest --help ``` -------------------------------- ### new API(endpoint, [options]) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q= Initializes a new instance of the API class to communicate with a Panoramax/STAC endpoint. ```APIDOC ## new API(endpoint, [options]) ### Description Initializes a new API instance. The endpoint corresponds to the STAC landing page. ### Parameters - **endpoint** (string) - Required - The STAC landing page URL. - **options** (object) - Optional - Configuration options. - **tiles** (string) - Optional - API route serving pictures & sequences vector tiles. - **skipReadLanding** (boolean) - Optional - Default: false. If true, does not call API landing page automatically. - **fetch** (object) - Optional - Custom options for fetch calls. ``` -------------------------------- ### api.getSequenceMetadataUrl(seqId) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API Get full URL for retrieving a specific sequence metadata. ```APIDOC ## api.getSequenceMetadataUrl(seqId) ### Description Get full URL for retrieving a specific sequence metadata. ### Parameters - **seqId** (string) - Required - The sequence ID ### Returns - **string** - The corresponding URL ### Throws - Error: If API is not ready ``` -------------------------------- ### api.getSequenceMetadataUrl(seqId) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q= Get full URL for retrieving a specific sequence metadata. ```APIDOC ## api.getSequenceMetadataUrl(seqId) ### Description Get full URL for retrieving a specific sequence metadata. ### Parameters - **seqId** (string) - Required - The sequence ID ### Returns - **string** - The corresponding URL ``` -------------------------------- ### api.getPictureThumbnailURLForSequence(seqId, [seq]) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API Get a picture thumbnail URL for a given sequence. ```APIDOC ## api.getPictureThumbnailURLForSequence(seqId, [seq]) ### Description Get a picture thumbnail URL for a given sequence. ### Parameters - **seqId** (string) - Required - The sequence ID - **seq** (object) - Optional - The sequence metadata (with links) if already loaded ### Returns - **Promise** - Promise resolving on the picture thumbnail URL, or null if not found ### Throws - Error: If API is not ready ``` -------------------------------- ### new API(endpoint, [options]) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API Initializes a new instance of the API utility class to communicate with a Panoramax/STAC API. ```APIDOC ## new API(endpoint, [options]) ### Description Initializes the API utility to communicate with the STAC landing page. ### Parameters - **endpoint** (string) - Required - The STAC landing page URL. - **options** (object) - Optional - Configuration options. - **tiles** (string) - Optional - API route for vector tiles. - **skipReadLanding** (boolean) - Optional - Default: false. If true, skips automatic landing page fetch. - **fetch** (object) - Optional - Custom fetch configuration. ``` -------------------------------- ### api.getPictureThumbnailURLForSequence(seqId, [seq]) Source: https://docs.panoramax.fr/web-viewer/reference/utils/API?q= Get a picture thumbnail URL for a given sequence. ```APIDOC ## api.getPictureThumbnailURLForSequence(seqId, [seq]) ### Description Get a picture thumbnail URL for a given sequence. ### Parameters - **seqId** (string) - Required - The sequence ID - **seq** (object) - Optional - The sequence metadata (with links) if already loaded ### Returns - **Promise** - Promise resolving on the picture thumbnail URL, or null if not found ``` -------------------------------- ### GET /api/users/me/tokens/:id Source: https://docs.panoramax.fr/backend/api/api?q= Retrieves a specific token and its associated JWT token. ```APIDOC ## GET /api/users/me/tokens/:id ### Description Retrieves details for a specific token, including the `jwt_token` required for Bearer authentication. ### Method GET ### Endpoint /api/users/me/tokens/:id ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the token. ### Response #### Success Response (200) - **jwt_token** (string) - The JWT token used for Bearer authentication. ``` -------------------------------- ### Update via uv Source: https://docs.panoramax.fr/cli/INSTALL?q= Use uv to run the latest version or upgrade the tool. ```bash uvx panoramax_cli@latest --help ``` ```bash uv tool upgrade panoramax_cli ``` -------------------------------- ### GET /api/upload_sets/ Source: https://docs.panoramax.fr/backend/api/api Retrieves the status and progress of an upload set. ```APIDOC ## GET /api/upload_sets/ ### Description Checks the progress and status of an upload set, including whether processing is ready. ### Method GET ### Endpoint /api/upload_sets/ ### Parameters #### Path Parameters - **UPLOAD_SET ID** (string) - Required - The ID of the upload set. ### Response - **items_status** (object) - Status of each item in the set. - **ready** (boolean) - Indicates if all collections are created and pictures are ready. ``` -------------------------------- ### GET /api/collections/:collectionId/items/:itemId Source: https://docs.panoramax.fr/backend/dev/STAC_compatibility Retrieve a specific item (picture) from a collection. ```APIDOC ## GET /api/collections/:collectionId/items/:itemId ### Description Retrieve a specific item (picture) from a collection. ### Method GET ### Endpoint /api/collections/:collectionId/items/:itemId ```