Skip to main content

er-smart-sync

Synchronize SMART Connect wildlife-monitoring data with EarthRanger, and migrate a SMART conservation area's patrol history into EarthRanger from a backup.

📖 Full documentation

https://padas.github.io/earthranger-smart-utils/

Includes install instructions, step-by-step workflows for every sync flow, a complete CLI reference, conceptual background, and troubleshooting.

What it does

  • Datamodel sync (SMART → ER) — turn SMART data models into EarthRanger event categories and event types.
  • Event sync (ER → SMART) — poll EarthRanger events and forward them via message broker.
  • Patrol sync (ER → SMART) — poll EarthRanger patrols with track points and attached files.
  • Patrol migration (SMART backup → ER) — from a migration bundle written by smart-able, with no SMART Connect needed: patrol-datamodel creates the patrol types, universal patrol fields, choices and ranger subjects; patrol-preflight checks the site is ready; import-patrols writes the patrol history (a patrol with a segment per leg, an event per observation, the leaders' tracks). Re-runs write nothing new. See Migrate SMART patrols.
  • Event-type copy (ER → ER) — copy a single event type (and the v2 choices its schema references) from one EarthRanger site to another via the copy-event-type CLI subcommand.

Quick install

uv pip install er-smart-sync
er-smart-sync --help

Or install from source (for development):

git clone git@github.com:PADAS/earthranger-smart-utils.git
cd earthranger-smart-utils
uv pip install -e ".[dev]"
er-smart-sync --help

See the Installation page for prerequisites, optional extras, and verification steps.

For contributors

Working on the codebase itself? Start with:

  • CLAUDE.md — codebase conventions: Pydantic v1 API, SMART version-gating (<7.5.3 needs smart_observation_uuid patching), the bracketed-CA-label convention, and the protocol-based dependency-injection pattern.
  • USAGE.md — developer-oriented CLI reference and the bracketed-CA-label convention as it affects the codebase.
  • docs/superpowers/specs/ — design specs for non-trivial features (v2 event types, choices population, etc.).
  • docs/superpowers/plans/ — implementation plans for recent feature work.

The user-facing documentation at the link above covers what er-smart-sync does and how to use it; the references in this section cover how it's built.

License

Apache License 2.0. See LICENSE.

Metadata

Release files for er-smart-sync 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for er-smart-sync 0.9.0
File Size Uploaded Provenance
er_smart_sync-0.9.0.tar.gz 617.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for er-smart-sync 0.9.0
File Interpreter ABI Platform
er_smart_sync-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 732.3 kB

Release files / er_smart_sync-0.9.0.tar.gz

Download URL er_smart_sync-0.9.0.tar.gz
Size 617.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3c830f28b38eea36da1744c7f9298887869fff02d27156180fa796e83d62b6bb
BLAKE2b-256 checksum
How to use checksums
5d34ddb0484dc023050f08be1b32bb6f0d9403add31ce2ead2bb3df8a69385b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / er_smart_sync-0.9.0-py3-none-any.whl

Download URL er_smart_sync-0.9.0-py3-none-any.whl
Size 114.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63ccaf86f6b59fbc8c3dcdf44666e3fa6cb177084feacdb3d6fb6af19d5c4df6
BLAKE2b-256 checksum
How to use checksums
98b6bb9b3ae187a5deaa7238e667ee020e922cc1556882443913c71900c0dac6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for er-smart-sync 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for er_smart_sync-0.9.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page