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/[email protected]>
_______________________________________________
rails-dev mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/rails-dev