[openstreetmap/openstreetmap-website] Simplify GPS trace visibility levels (Issue #7089)
Ruben L. Mendoza
notifications at github.com
Thu May 28 17:23:39 UTC 2026
Rub21 left a comment (openstreetmap/openstreetmap-website#7089)
Quick update on the plan after my sync with Minh, so we're all aligned before the PR lands.
The goal is to reduce the visibility levels to two (`trackable` and `identifiable`) without breaking existing data or current API clients.
### **UI changes**
Upload and edit forms only show `trackable` and `identifiable`. Existing traces with `public` or `private` keep their current behavior at `/traces`, but new uploads can't pick those levels anymore.
### **Renaming `trackable` to `anonymous` (would this break downstream apps?)**
I checked downstream apps like JOSM, iD, gpx-import, and gpx-updater and didn't find `trackable` hardcoded. But `trackable` has been in the API and the OSM wiki since 2009, and there's probably a lot of documentation around it that would take time to find and update. So we're keeping the name for now.
### **API behavior**
Anything outside the new set returns `400 Bad Request` with a clear message:
| Request | Response |
|---|---|
| `visibility=trackable` | accepted |
| `visibility=identifiable` | accepted |
| `visibility=public` | 400 — use `trackable` or `identifiable` |
| `visibility=private` | 400 — use `trackable` or `identifiable` |
| `public=1` | 400 — use `visibility=identifiable` |
| `public=0` | 400 — use `visibility=trackable` |
The `public=0|1` option was deprecated ~10 years ago. Returning an error tells the client to update, instead of silently picking a level on their behalf.
### **Existing data**
Nothing gets migrated as part of this change. Traces already stored as `public` or `private` stay as they are. The data migration would be a later phase, but how we handle those traces is still under discussion. A couple of options:
- Give users a grace period to convert their traces to `trackable` or `identifiable`, and then switch the remaining ones to `trackable` via a migration.
- Treat the old traces as "legacy" (Grant's idea): keep them in the database but stop serving them through the API, and skip them in new features like GPS tiles.
Thoughts?
### **Notes**
- Pagination and the trackpoints query are out of scope here. The `UNION ALL` and the offset-pagination cleanup can go in a separate PR.
- I started on the branch [`gps_visibility`](https://github.com/Rub21/openstreetmap-website/tree/gps_visibility), but since those changes were built on top of `public`, I moved to a cleaner branch [`simplify-gps-visibility`](https://github.com/Rub21/openstreetmap-website/tree/simplify-gps-visibility) that uses `trackable` and `identifiable` from the start.
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/7089#issuecomment-4566581348
You are receiving this because you are subscribed to this thread.
Message ID: <openstreetmap/openstreetmap-website/issues/7089/4566581348 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20260528/e70b4147/attachment.htm>
More information about the rails-dev
mailing list