MapComplete/app
2025-08-19 17:50:31 +02:00
..
.well-known Android: add passthrough pages 2024-12-31 16:31:01 +01:00
app.vite.config.js Android: docs, app landing page 2025-01-12 02:00:55 +01:00
app_index.ts UX: somewhat decent landing page for app.mapcomplete.org 2025-01-22 02:23:48 +01:00
AppIndex.svelte chore: automated housekeeping... 2025-08-19 17:50:31 +02:00
badge_obtainium.png Chore: translation fix 2025-07-12 18:39:47 +02:00
build_and_deploy.sh App: add google play badge on download page, update text 2025-08-15 15:59:29 +02:00
fdroid.png Android(app landing page): add fdroid fallback image 2025-07-18 17:49:49 +02:00
googleplay.svg App: add google play badge on download page, update text 2025-08-15 15:59:29 +02:00
index.html Chore: translation sync 2025-05-03 22:55:47 +02:00
land.html Android: Small fixes to landing page and passthrough 2025-01-21 21:06:50 +01:00
land.ts Fix: fix android login 2025-07-07 00:06:49 +02:00
passthrough.html Fix: fix android login 2025-07-07 00:06:49 +02:00
README.md Android: add passthrough pages 2024-12-31 16:31:01 +01:00

app-directory

This directory contains the files for "https://app.mapcomplete.org". This does not contain the Android files, but it contains some helper HTML.

The main function is to help authentication.

The authentication flow in a nutshell:

  1. The user want to authenticate
  2. The app opens a browser window, showing the OSM.org login page
  3. The browser redirects to "app.mapcomplete.org/land.html"; which obtains an authentication token
  4. Once the token is obtained, the browser redirects to "app.mapcomplete.org/passthrough.html?auth_token=<...>".
  5. This URL is an "authenticated URL" and will thus be opened in the app, where
  6. The native shell receives the intent with the authentication token
  7. The native shell passes this to the web context
  8. The webcontext passes the token to the OSM-connection
  9. ???
  10. Profit!

The hidden folder ".well-known" should be put on the website as well; https://app.mapcomplete.org/.well-known/assetlinks.json must return the relevant JSON

A note about building and deploying

These files should be relatively static and not change a lot. The deploy script is included in this directory (but not in CI)

These are deployed in the hetzner server in the /root/app/*-directory; see the hetzner caddyfile for more info