视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
resource-and-api【文档与办公】Route and operate GeoNode resource REST workflows, safe uploads, asynchronous execution requests, downloads, metadata changes, and resource-level permissions for datasets, documents, maps, and geoapps.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this sub-skill when the task touches a GeoNode resource through HTTP: list or inspect resources, upload or update data, create maps or geoapps, attach metadata/assets, follow an execution request, download content, or change resource-facing permissions.
--base-url./api/v2/ for resource operations.
The legacy Tastypie resources below /api/api/ have different serializers,
filters, and authorization; do not mix their payloads with v2 payloads./api/v2/resources/; typed collections are
/api/v2/datasets/, /api/v2/documents/, /api/v2/maps/, and
/api/v2/geoapps/. The deployed upload route must be confirmed with the
named importer_upload route or the instance's published API documentation;
some deployments expose it as /api/v2/uploads/upload, while the snapshot's
root URL declaration is not version-prefixed.execution_id or exec_id as opaque UUIDs. Never guess an
execution URL or assume that HTTP 201 means the resource is published.GET /api/v2/resources/ or the typed collection. Record the
returned pk, uuid, resource_type, subtype, perms, is_published,
is_approved, and download_urls before mutating anything.search, repeated search_fields, filter{...}, extent,
metadata_only, favorite, page, and page_size deliberately. Preserve
the links, total, page, and page_size pagination envelope.PATCH for ordinary metadata changes where supported. Use the
dedicated dataset metadata PUT for an ISO metadata file and the metadata
API for schema-shaped JSON. Check the required permission before attempting
either.POST only with a serializer-valid payload; map layer
relations are embedded and are transactionally saved. Document creation is
intentionally a file/URL upload workflow, not a typed POST.action: upload,
replace, upsert, create, resource_style_upload, or
resource_metadata_upload. Capture the returned execution identifier.finished is success; failed is failure; ready and running require
worker/service diagnosis, not repeated unbounded requests.perms or GET .../permissions before changing access.
PUT replaces the proposed compact permission set; PATCH merges it. Do
not send a partial PUT unless replacement is intended.DELETE /api/v2/resources/{pk}/delete, upload replace, upsert, and
asset removal as destructive. Confirm the pk, backup/retention policy, and
target dataset type first. Prefer a dry read and a saved execution id.download_resourcebase. Dataset downloads require a locally available,
downloadable resource; maps and geoapps normally have no data download URL.A successful call must be checked at three levels: HTTP status and content
shape, resource/execution state, and service-side consequences when applicable.
For uploads, validate the archive before sending it with
scripts/validate-upload-archive.py; it inspects without extracting. For a
read-only request, use scripts/api_request.py --help and an explicit base URL.
If the database, PostGIS, GDAL/OGR, GeoServer, Redis/Celery, media storage, remote endpoint, credentials, or browser stack is unavailable, report that specific gate as unverified and hand back the execution id, response body, and next diagnostic—not a claim of publication or completion.
scripts/api_request.py: explicit-origin, JSON/GET, bearer-from-environment
request probe with non-secret output.scripts/validate-upload-archive.py: non-extracting ZIP safety validator
with a tiny self-test fixture.