Skip to content
Back to skills

Geonode

ASecurity

"Operate and extend GeoNode geospatial content-management

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
databasespythonrustgobashsqlnodedjangodockerapidatabase

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill geonode --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Geonode?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Geonode
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-geonode/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-geonode)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: geonode
description: "Operate and extend GeoNode geospatial content-management
  deployments, resource APIs, uploads, metadata/catalogues, GeoServer security,
  harvesting, and administration with explicit service and safety gates."
disable-model-invocation: true
metadata:
  disco-role: operating
license: NOASSERTION
---

# GeoNode

Use this skill when a task names GeoNode, asks about its Django/REST APIs,
geospatial resource catalogues, dataset/document/map uploads, GeoServer
publication, metadata/CSW, harvesting, or GeoNode deployment operations.
This graph covers the GeoNode 5.1-style package and service topology. It is
operating guidance for a later Researcher; it is not a claim that external
services are running.

## Route by task

- **Install, Docker/bare deployment, settings, environment files, startup,
  hardening:** read [setup-and-configuration](sub-skills/setup-and-configuration/SKILL.md).
- **Datasets, documents, maps, geoapps, REST v2, uploads, execution requests,
  downloads, or resource permissions:** read [resource-and-api](sub-skills/resource-and-api/SKILL.md).
- **Metadata schemas/handlers, localization, CSW/catalogue, search, facets,
  or metadata-driven discovery:** read [metadata-and-catalogue](sub-skills/metadata-and-catalogue/SKILL.md).
- **GeoServer, OGC URLs, OAuth2/OIDC, GeoFence, groups, permissions, remote
  services, or proxy failures:** read [geoserver-and-security](sub-skills/geoserver-and-security/SKILL.md).
- **Harvesting, indexing, Celery/Redis, management commands, migrations,
  thesauri, backup/restore, or operational recovery:** read [harvesting-and-admin](sub-skills/harvesting-and-admin/SKILL.md).
- For a request spanning routes, start here, identify the service boundary,
  then follow each linked sub-skill in dependency order rather than duplicating
  commands.

## Installation and inspection

For a released distribution, install the package in an isolated environment
using the project-supported Python version and geospatial prerequisites. A
source/development checkout commonly needs PostgreSQL client headers for
`psycopg2` and a matching GDAL native library for the Python `GDAL` binding.
Do not install into a shared production environment just to inspect APIs.

```bash
python -m pip install GeoNode
python -c "import geonode; print(geonode.__version_str__)"
```

For a repository checkout, use the repository's documented editable install
only in a disposable development environment, then confirm both the Python
package and native geospatial imports. A successful import does not validate
PostGIS, GeoServer, Redis/Celery, Nginx, remote OGC endpoints, credentials, or
browser behavior.

## Operating contract

1. State the GeoNode release/configuration shape and target topology before
   changing settings or sending API requests.
2. Separate the Django, database/PostGIS, GeoServer, broker/worker, catalogue,
   proxy, and browser planes. A green web process is not proof that uploads,
   publication, search, or harvesting will finish.
3. Prefer read-only inspection, `--help`, schema discovery, bounded API reads,
   and tiny local validators before mutation or network work.
4. Preserve resource identifiers, execution/job identifiers, response bodies,
   service logs, and exact configuration gates. Redact passwords, tokens,
   cookies, private URLs, and secret-bearing payloads.
5. For destructive or service-backed work, require a narrow target, tested
   backup/rollback, explicit prerequisites, and a post-change verification.
6. Report results as package-valid, settings-valid, service-ready, or
   production-reviewed; never collapse these states.

## Shared safeguards

- Use [troubleshooting](references/troubleshooting.md) for cross-cutting
  install, import, settings, database, service, authentication, and async
  failures.
- Run [check_service_urls.py](scripts/check_service_urls.py) only with explicit
  non-secret URLs or host/port checks; it never authenticates or changes state.
- Read [repository provenance](references/repo-provenance.md) before comparing
  this graph with a changed checkout. If the commit, package entry points, or
  major evidence paths differ, request a refresh rather than trusting stale
  instructions.

## Cross-route handoffs

- Setup establishes URLs, databases, workers, and service readiness; API and
  publication routes consume those facts.
- Resource operations may create asynchronous execution requests and metadata;
  route their state to harvesting/admin and their discovery state to
  metadata/catalogue.
- Metadata validity is independent of CSW/index availability. GeoServer style,
  OGC, and permission behavior belongs to the GeoServer/security route.
- Management commands can be destructive even when their parser is available;
  use the administration route's safety classification.

Files in this skill

  • SKILL.md4.7 KB
  • references/repo-provenance.md1.7 KB
  • references/repo-routing-metadata.json394 B
  • references/troubleshooting.md5.5 KB
  • scripts/check_service_urls.py3 KB
  • sub-skills/geoserver-and-security/SKILL.md6.1 KB
  • sub-skills/geoserver-and-security/references/geoserver-reference.md7.5 KB
  • sub-skills/geoserver-and-security/references/permissions-and-auth.md9.7 KB
  • sub-skills/geoserver-and-security/references/troubleshooting.md11.3 KB
  • sub-skills/harvesting-and-admin/SKILL.md5.1 KB
  • sub-skills/harvesting-and-admin/references/backup-restore-and-safety.md8.8 KB
  • sub-skills/harvesting-and-admin/references/harvesting-and-async.md11.1 KB
  • sub-skills/harvesting-and-admin/references/management-commands.md10.8 KB
  • sub-skills/harvesting-and-admin/references/troubleshooting.md11 KB
  • sub-skills/harvesting-and-admin/scripts/manage_help.py4.6 KB
  • sub-skills/metadata-and-catalogue/SKILL.md5.7 KB
  • sub-skills/metadata-and-catalogue/references/catalogue-and-search.md6.3 KB
  • sub-skills/metadata-and-catalogue/references/metadata-reference.md7.6 KB
  • sub-skills/metadata-and-catalogue/references/troubleshooting.md4.2 KB
  • sub-skills/metadata-and-catalogue/scripts/validate-metadata.py3.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.