{"id":37064871,"url":"https://github.com/mapchete/mapchete-hub","last_synced_at":"2026-01-14T07:35:20.904Z","repository":{"id":307275371,"uuid":"1028878237","full_name":"mapchete/mapchete-hub","owner":"mapchete","description":"Distributed processing via OGC API Processes (-like) interface","archived":false,"fork":false,"pushed_at":"2026-01-12T20:03:04.000Z","size":17391,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T01:18:05.745Z","etag":null,"topics":["distributed-computing","ogc-api","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mapchete.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-30T07:38:17.000Z","updated_at":"2026-01-12T20:03:09.000Z","dependencies_parsed_at":"2025-08-25T13:13:05.364Z","dependency_job_id":"4553549e-4793-4bdf-9570-a3a08f909abb","html_url":"https://github.com/mapchete/mapchete-hub","commit_stats":null,"previous_names":["mapchete/mapchete-hub"],"tags_count":178,"template":false,"template_full_name":null,"purl":"pkg:github/mapchete/mapchete-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapchete%2Fmapchete-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapchete%2Fmapchete-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapchete%2Fmapchete-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapchete%2Fmapchete-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mapchete","download_url":"https://codeload.github.com/mapchete/mapchete-hub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mapchete%2Fmapchete-hub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-computing","ogc-api","rest-api"],"created_at":"2026-01-14T07:35:20.179Z","updated_at":"2026-01-14T07:35:20.889Z","avatar_url":"https://github.com/mapchete.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://github.com/mapchete/mapchete-hub/blob/main/logo/mapchete_hub_grey.svg\n\nDistributed mapchete processing.\n\n.. image:: https://img.shields.io/pypi/v/mapchete-hub.svg\n  :target: https://pypi.org/project/mapchete-hub/\n\n.. image:: https://img.shields.io/conda/v/conda-forge/mapchete-hub\n  :target: https://anaconda.org/conda-forge/mapchete-hub\n\n.. image:: https://img.shields.io/pypi/l/mapchete-hub.svg\n  :target: https://github.com/mapchete/mapchete-hub/blob/main/LICENSE\n\n.. image:: https://img.shields.io/github/actions/workflow/status/mapchete/mapchete-hub/python-package.yml?label=tests\n  :target: https://github.com/mapchete/mapchete-hub/actions\n\n.. image:: https://codecov.io/gh/mapchete/mapchete-hub/graph/badge.svg?token=VD1YOF3QA2\n  :target: https://codecov.io/gh/mapchete/mapchete-hub\n\n.. image:: https://img.shields.io/github/repo-size/mapchete/mapchete-hub\n  :target: https://github.com/mapchete/mapchete-hub\n\nmapchete Hub provides a RESTful web interface to the mapchete geospatial data processing engine. Its API is inspired by the **OGC API - Processes** standard and allows you to execute, manage, and scale your processing jobs over HTTP.\n\nThe main use cases for the Hub are running processing jobs asynchronously and scaling them up in the background, potentially using Dask for distributed computing.\n\n\nKey Features\n============\n\n* 🌐 **OGC API - Processes inspired**: A REST API for submitting jobs, monitoring their status, and retrieving results.\n* ⚙️ **Advanced Job Monitoring**: Inspect detailed job states (``pending``, ``running``, ``failed``, ``success``) and view the overall progress percentage for currently running jobs.\n* 🚀 **Scalable Execution**: Can be configured to use Dask for distributed, parallel execution of jobs.\n* 💬 **Slack Notifications**: Optionally sends job status updates directly to a configured Slack channel.\n* 🐳 **Container-Ready**: Designed to be deployed in containerized environments like Docker, making it easy to scale your processing capabilities.\n\n\nHow It Works\n============\n\n1.  **Serve**: Start the mapchete Hub server. It listens for incoming job requests.\n2.  **Prepare Job**: A client application prepares a job configuration as a JSON object that follows the `MapcheteJob schema \u003chttps://github.com/mapchete/mapchete-hub/blob/main/mapchete_hub/models.py#L29\u003e`_.\n3.  **Submit**: The client ``POST``\\s the JSON configuration to the ``/jobs`` endpoint. The Hub validates it and returns a unique ``job_id``.\n4.  **Monitor**: The client uses the ``job_id`` to poll the ``/jobs/{job_id}`` endpoint to track the job's status and progress.\n5.  **Retrieve**: Once the job is successful, the results can be accessed from the location defined in the job's output configuration.\n\n\nGetting Started\n===============\n\nInstallation\n------------\n\nInstall mapchete Hub and its dependencies from PyPI:\n\n.. code-block:: bash\n\n   pip install mapchete-hub\n\nRunning the Server\n------------------\n\nTo start the server, simply run the following command:\n\n.. code-block:: bash\n\n   mhub-server start\n\nThe API documentation will be available at ``http://127.0.0.1:8000/docs``.\n\nInteracting with the Hub\n------------------------\n\nWhile you can use tools like `curl`, the easiest way to interact with the Hub is by using the `mapchete-hub-cli \u003chttps://github.com/mapchete/mapchete-hub-cli\u003e`_ package.\n\nFirst, install the client:\n.. code-block:: bash\n\n   pip install mapchete-hub-cli\n\nNext, create a job configuration file, for example `my_job.json`:\n\n.. code-block:: json\n\n   {\n     \"process\": \"mapchete.processes.examples.hillshade\",\n     \"zoom_levels\": [\n       10\n     ],\n     \"pyramid\": {\n       \"grid\": \"geodetic\"\n     },\n     \"input\": {\n       \"dem\": \"https://storage.googleapis.com/mapchete-test-data/cleantopo2/dem.tif\"\n     },\n     \"output\": {\n       \"path\": \"./hillshade_output\",\n       \"format\": \"GTiff\",\n       \"dtype\": \"uint8\",\n       \"bands\": 1\n     }\n   }\n\nNow, use the CLI to submit the job and check its status:\n\n.. code-block:: bash\n\n   # Submit the job\n   mhub-cli submit my_job.json\n\n   # The command will return a job_id. Use it to check the status:\n   mhub-cli status \u003cyour_job_id\u003e\n\n\nContributing\n============\n\nmapchete Hub is an open-source project and we welcome contributions! Please see the `Contributing Guide \u003chttps://github.com/mapchete/mapchete/blob/main/CONTRIBUTING.md\u003e`_ in the main ``mapchete`` repository for guidelines on how to get started.\n\nAcknowledgements\n================\n\nThe initial development of mapchete Hub was made possible with the resources and support of `EOX IT Services GmbH \u003chttps://eox.at/\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapchete%2Fmapchete-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmapchete%2Fmapchete-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapchete%2Fmapchete-hub/lists"}