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

Reply via email to