Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(web): add privacy step in the onboarding #11359

Merged
merged 8 commits into from
Aug 13, 2024
Merged

Conversation

martabal
Copy link
Member

@martabal martabal commented Jul 25, 2024

Following the dicussion in #11350, add a new step in the onboarding to make clear which external services are used by Immich and an option to disable each service.

Screenshots

image

@aviv926
Copy link
Contributor

aviv926 commented Jul 25, 2024

Crazy fast!

Copy link
Contributor

@jrasm91 jrasm91 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noice!

@pcouy
Copy link
Contributor

pcouy commented Jul 26, 2024

Wow ! Thanks for handling this so quickly !

Can we consider cherry-picking commits e1f08a5 and af0f53d from my PR into this branch ? e1f08a makes the settings page clearer, and af0f53d rewords the guide in the docs so its easier to add guides for more alternative tile providers. This leaves the Nginx tutorial I proposed out of this PR.

I'm also wondering why one of the two switches mentions requests to Github, but the other one does not mention Cofractal as the default map provider. (Edit : If you merge e1f08a5 into this branch, the onboarding screen could include the admin.map_implications from my PR as a subtitle for the switch)

Last thing (but this may be out of scope for this PR) is that since this is a server-side toggle, the F-Droid build will stil require either a client side opt-in toggle with clear details on the implications, or a "Non-free network services" tag

@martabal
Copy link
Member Author

Can we consider cherry-picking commits e1f08a5 and af0f53d from my PR into this branch ? e1f08a makes the settings page clearer, and af0f53d rewords the guide in the docs so its easier to add guides for more alternative tile providers. This leaves the Nginx tutorial I proposed out of this PR.

In only cherry-picked e1f08a5, it makes sense to keep your PR for the documentation.

I'm also wondering why one of the two switches mentions requests to Github, but the other one does not mention Cofractal as the default map provider. (Edit : If you merge e1f08a5 into this branch, the onboarding screen could include the admin.map_implications from my PR as a subtitle for the switch)

Done with 4678dc7

Last thing (but this may be out of scope for this PR) is that since this is a server-side toggle, the F-Droid build will stil require either a client side opt-in toggle with clear details on the implications, or a "Non-free network services" tag

Yes, that's out of scope of this PR

@martabal
Copy link
Member Author

@pcouy Btw, what do you think about renaming Activer la carte causera l'envoi de requêtes to Activer la carte implique l'envoi de requêtes.

@pcouy
Copy link
Contributor

pcouy commented Jul 26, 2024

This seems fine to me. While we're rephrasing this translation key, we should probably add a mention to the default tile provider. Something like The default tile provider is cofractal.com at the end.

@pcouy
Copy link
Contributor

pcouy commented Jul 26, 2024

I went ahead and rebased the branch to keep the commit history as readable as possible :

  • I split 4ec1cf9 in 2 : a chores commit and the actual feature
  • I added a French translation in the onboarding commit
  • I squashed fe9c0c9 into the previous commit
  • I reworded map_implications as suggested

The rebased branch is available at https://github.com/pcouy/immich/commits/feat/onboarding-privacy/

@martabal
Copy link
Member Author

I like having a clean git history, but we squash commits so it doesn't really matter.

The default tile provider is cofractal.com at the end.

I'll add it this evening

@pcouy
Copy link
Contributor

pcouy commented Jul 26, 2024

You can still use the rebased branch, or just patch-in the output of git diff origin/feat/onboarding-privacy below :

diff --git a/web/src/lib/i18n/en.json b/web/src/lib/i18n/en.json
index 7a0cea9a9..0d22afcc2 100644
--- a/web/src/lib/i18n/en.json
+++ b/web/src/lib/i18n/en.json
@@ -127,7 +127,7 @@
     "map_enable_description": "Enable map features",
     "map_gps_settings": "Map & GPS Settings",
     "map_gps_settings_description": "Manage Map & GPS (Reverse Geocoding) Settings",
-    "map_implications": "Enabling the map causes clients (web and mobile apps) to send requests to a third-party map server in order to display the map. These requests include the client's IP address, the Immich instance URL, as well as the coordinates and zoom level of the requested map tiles.",
+    "map_implications": "Enabling the map implies clients (web and mobile apps) sending requests to a third-party map server in order to display the map. These requests include the client's IP address, the Immich instance URL, as well as the coordinates and zoom level of the requested map tiles. The default tile provider is cofractal.com",
     "map_light_style": "Light style",
     "map_manage_reverse_geocoding_settings": "Manage <link>Reverse Geocoding</link> settings",
     "map_reverse_geocoding": "Reverse Geocoding",
diff --git a/web/src/lib/i18n/fr.json b/web/src/lib/i18n/fr.json
index ea4af18a2..356510374 100644
--- a/web/src/lib/i18n/fr.json
+++ b/web/src/lib/i18n/fr.json
@@ -129,7 +129,7 @@
     "map_enable_description": "Activer la carte",
     "map_gps_settings": "Paramètres de la carte et GPS",
     "map_gps_settings_description": "Gérer les paramètres de la Carte & GPS",
-    "map_implications": "Activer la carte causera l'envoi de requêtes vers un serveur de cartes tiers depuis les clients (web et applications mobiles) afin d'afficher la carte. Ces requêtes contiennent l'adresse IP du client, l'URL de l'instance Immich, ainsi que les coordonnées et le niveau de zoom des tuiles de carte demandées.",
+    "map_implications": "Activer la carte implique l'envoi de requêtes vers un serveur de cartes tiers depuis les clients (web et applications mobiles) afin d'afficher la carte. Ces requêtes contiennent l'adresse IP du client, l'URL de l'instance Immich, ainsi que les coordonnées et le niveau de zoom des tuiles de carte demandées. Le founisseur de tuiles par défaut est cofractal.com",
     "map_light_style": "Thème clair",
     "map_manage_reverse_geocoding_settings": "Gérer les <link> paramètres de géocodage inversé</link>",
     "map_reverse_geocoding": "Géocodage inversé",
@@ -868,6 +868,7 @@
+  "onboarding_privacy_description": "Pour fonctionner correctement, Immich utilise des services tiers tels qu'un fournisseur de tuiles utilisé pour afficher la carte et Github pour détecter les nouvelles versions",
   "onboarding_theme_description": "Choisissez un thème de couleur pour votre instance. Vous pouvez le changer plus tard dans vos paramètres.",
   "onboarding_welcome_description": "Mettons votre instance en place avec quelques paramètres communs.",

@martabal
Copy link
Member Author

Oh thanks, you're making it really easy 😄

@pcouy
Copy link
Contributor

pcouy commented Jul 26, 2024

I like having a clean git history, but we squash commits so it doesn't really matter.

Should the chores commit I created live in a different branch/PR (and get its own commit, separate from this feature, when everything gets merged) then ?

@martabal
Copy link
Member Author

IMO, that's a small change and it's absolutely fine to have it in one of our PRs, preferably yours, so we can discuss about the wording (if we need to) there.

Nothing has been merged yet, so let's keep it simple.

"map_light_style": "Light style",
"map_manage_reverse_geocoding_settings": "Manage <link>Reverse Geocoding</link> settings",
"map_reverse_geocoding": "Reverse Geocoding",
"map_reverse_geocoding_enable_description": "Enable reverse geocoding",
"map_reverse_geocoding_settings": "Reverse Geocoding Settings",
"map_settings": "Map Settings",
"map_settings_description": "Manage map settings",
"map_settings_description": "Manage map settings. <link>Alternative tile providers can be chosen by changing the style.json map theme below.</link>",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both of these links go to the same place. I'm also not a huge fan of having the entire row be a clickable button, and then also having a link embedded it in . Can we move this note and associated link to the top of the "Map & GPS Settings" section instead? (no more links in accordion descriptions).

image

Something like:

For more information about these settings, refer to the documentation.

That could be something like admin.refer_to_docs and we could link it to reverse geocoding in this case.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed them all and links can be added on the web once the explanations are added in the doc.

@@ -127,13 +127,14 @@
"map_enable_description": "Enable map features",
"map_gps_settings": "Map & GPS Settings",
"map_gps_settings_description": "Manage Map & GPS (Reverse Geocoding) Settings",
"map_implications": "Enabling the map implies clients (web and mobile apps) sending requests to a third-party map server in order to display the map. These requests include the client's IP address, the Immich instance URL, as well as the coordinates and zoom level of the requested map tiles. The default tile provider is tiles.immich.cloud",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to be so detailed here. The settings page don't need to be 100% self documenting. A general statement is fine and more details can live at immich.app. I would prefer to see something like:

The map feature relies on external service to function properly. Read more about those implications here

@@ -841,6 +842,7 @@
"ok": "Ok",
"oldest_first": "Oldest first",
"onboarding": "Onboarding",
"onboarding_privacy_description": "To work properly, Immich needs to rely on external services such as a tile provider used for the map feature and Github to be aware of new releases",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is a bad idea to list specific features in this translation. That just means it will be wrong whenever we add another service. What about something like:

The following features rely on external services to function properly:

If we add another service, we can just refer to new keys/translations in the card. We can also change/remove services as needed without requiring existing translations to be updated.

@jrasm91 jrasm91 enabled auto-merge (squash) August 13, 2024 16:56
@jrasm91 jrasm91 merged commit fdf0b16 into main Aug 13, 2024
22 checks passed
@jrasm91 jrasm91 deleted the feat/onboarding-privacy branch August 13, 2024 17:01
Yuvi-raj-P pushed a commit to Yuvi-raj-P/immich that referenced this pull request Aug 19, 2024
* feat: add privacy step in the onboarding

* fix: remove console.log

* feat:Details the implications of enabling the map on the settings page

Added a link to the guide on customizing map styles as well

* feat: add map implication

* refactor: onboarding style

* fix: tile provider

* fix: remove long explanations

* chore: cleanup

---------

Co-authored-by: pcouy <contact@pierre-couy.dev>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants