geonodectl Documentation
Overview
geonodectl is a command-line interface (CLI) tool for interacting with the GeoNode REST API v2. It allows users to manage datasets, resources, documents, maps, users, and more from the command line, making it ideal for automation, scripting, and power users.
- Project Repository: https://github.com/GeoNodeUserGroup-DE/geonodectl
- License: MIT
Features
- List, describe, upload, patch, and delete datasets
- Manage resources, documents, maps, geoapps, users, uploads, execution requests, and keywords
- Download metadata and manage linked resources
- Supports authentication and secure API access
- Supports pagination, filtering, and ordering
- Pre-commit hooks and CI for code quality (black, mypy, flake8)
Installation
From PyPI (recommended)
pip install geonodectl
From Source (latest development version)
pip install -e 'git+https://github.com/GeoNodeUserGroup-DE/geonodectl.git@main#egg=geonodectl'
Development Setup
pip install .[test]
pre-commit install
Configuration
Set the following environment variables to connect to your GeoNode instance:
GEONODE_API_URL=https://your-geonode-instance/api/v2/
GEONODE_API_BASIC_AUTH=<base64-user:password>
You can generate the basic auth string with:
echo -n user:password | base64
Usage
Get help and see available commands:
geonodectl --help
Example: List all datasets
geonodectl dataset list
Example: Upload a shapefile
geonodectl dataset upload -f /path/to/file.shp --title "My Dataset"
Example: Patch a dataset
geonodectl dataset patch 36 --set '{"category":{"identifier":"biota"}}'
Command Reference
resources/resource: List, delete, download metadatadataset/ds: List, delete, patch, describe, uploaddocuments/doc/document: List, delete, patch, describe, uploadmaps: List, delete, patch, describe, creategeoapps/apps: List, delete, patch, describeusers/user: List, delete, patch, describe, createuploads: List, describeexecutionrequest: List, describekeywords: List, describetkeywords: List, describetkeywordlabels: List, describe
Development
Code Quality
This project uses pre-commit hooks and GitHub Actions for: - Black (code formatting) - mypy (type checking) - flake8 (linting)
To run checks locally:
pre-commit run --all-files
Testing
Tests are located in src/geonoderest/tests/.
Run tests with:
pytest
Contribution Guide
- Fork the repository and create a feature branch.
- Install development dependencies:
pip install .[test] - Install pre-commit hooks:
pre-commit install - Make your changes and ensure all checks pass.
- Submit a pull request.
License
This project is licensed under the MIT License.