Open
Description
OSM Sandbox
What we need
- TM projects with data not available in OSM (private / sensitive data).
- Fully integrated OSM login between TM and the underlying Sandbox - seamless for the user.
- Easy data extraction from the Sandbox.
History
- Initially HOT made it's own Sandbox implementation: https://github.com/hotosm/osm-sandbox
- This was a simple POC and has many missing features.
- After discussing with DevelopmentSeed, it seemed more appropriate to contribute to https://github.com/developmentseed/osm-seed instead.
- Since then, OSMUS has done some great work creating a FastAPI service that can spawn osmseed Sandbox instances on demand.
- They also integrated into their TM form, allowing managers creating projects to either choose OSM or Sandbox for their final data.
- The implementation relies on Kubernetes underneath, for which HOTOSM should now have a cluster available for us - making this an option.
- Details
- Sandbox per project
- Seamless login via TM / OSM
- Modified the TM UI to take OSM or Sandbox during project create
- Includes a modified iD editor to use Sandbox instead
Links
- The FastAPI Sandbox provisioner service is here: https://github.com/osmus/osm-sandbox-dashboard/tree/main/images/dashboard/src
- The overarching deployment / k8s setup is here: https://github.com/osmus/osm-sandbox-dashboard/tree/main
- The underlying Sandbox images used are here: https://github.com/developmentseed/osm-seed
- Code related to the Sandbox implementation in TM is here: https://github.com/search?q=repo%3Aosmus%2Ftasking-manager%20sandbox&type=code
Solution / TODO
- First research the usage in OSMUS TM to see if it's suitable - discuss with the team there.
- Look into the FastAPI routes available and what they do - could we use this to provision sandboxes in our k8s cluster?
- Look at how difficult the TM integration would be.
- Attempt implementation by opening another series of related issues?
Alternatives
- The only two options are this, or our custom implementation.
- The osm-sandbox repo was only a test for a start and isn't architected to be scalable and meet all requirements.