https://github.com/agrc/project-moonwalk
ArcGIS Online feature service+ backup and restore tools
https://github.com/agrc/project-moonwalk
government-app scheduled-tool spatial-data-life-cycle terraform-managed
Last synced: 2 months ago
JSON representation
ArcGIS Online feature service+ backup and restore tools
- Host: GitHub
- URL: https://github.com/agrc/project-moonwalk
- Owner: agrc
- License: mit
- Created: 2024-09-16T18:39:56.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-02-06T17:50:05.000Z (3 months ago)
- Last Synced: 2025-02-06T18:39:48.446Z (3 months ago)
- Topics: government-app, scheduled-tool, spatial-data-life-cycle, terraform-managed
- Language: Python
- Homepage:
- Size: 3.6 MB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# project-moonwalk
Open source ArcGIS Online item backup and restore with style.
Add a `backup` tag to your item and moonwalk will start backing up your items.
This project is split into 2 parts. backup and restore. The backup service scans for items with the `backup` tag and uses the `createReplica` and `data` endpoints to extract the information necessary to restore the item. This data is placed in Google Cloud Storage. Backups are created daily and kept on a rolling 14 day schedule. Every sunday, the backup is also stored in a special area for 90 days.
The restore service consists of a website that allows you to view your backups and trigger a restore.
## Installation
1. Run some terraform to create some cloud infrastructure
## Development
### Jobs
1. `conda create --name moonwalk-backup python=3.12`
1. `conda activate moonwalk-backup`
1. `cd jobs`
1. `pip install -e ".[tests]"`
1. `moonwalk-backup` - Run the backup job to populate the emulator database and bucket with data. Remember to start the emulators in the root project before running this command.### Functions
1. `cd functions`
1. `python -m venv .venv`
1. `pip install -r requirements.txt`Enable versioning on the emulator bucket:
```bash
gcloud storage buckets update gs://ut-dts-agrc-moonwalk-dev.appspot.com --versioning
```