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

[Harvest / Konnector] Timeout des 8s pour le "LOGIN_SUCESS" #752

Open
Crash-- opened this issue Sep 2, 2019 · 9 comments
Open

[Harvest / Konnector] Timeout des 8s pour le "LOGIN_SUCESS" #752

Crash-- opened this issue Sep 2, 2019 · 9 comments

Comments

@Crash--
Copy link
Contributor

Crash-- commented Sep 2, 2019

Aujourd'hui, nous avons une notion côté front (ie Harvest) de "timeout" pour le "login_success". En effet, certains konnecteurs ne sont pas capables de nous donner un "login_success" et donc ils nous donnent un "success" que quand le konnecteur s'est exécuté correctement. Afin de ne pas bloquer les utilisateurs et les interfaces pendant le temps d'execution d'un konnecteur (qui peut être très long lors de la première utilisation par exemple), Harvest part du principe que s'il n'a reçu aucun EVENT (de success ou d'error) au bout de 8s (que le job soit running ou pas cf #748) , il considère que le login est en succès.

Cependant, à cause de la 2FA, cette hypothèse doit être remise en cause, car il n'est pas rare de mettre plus de 8s entre le début du login et la fin (le temps d'aller chercher le code de 2FA etc).

Nous venons d'ajouter à konnector-lib, le fait de pouvoir désactiver le timer (konnectors/libs#575). Mais, ça n'est pas la solution la plus optimale. En effet, amener une notion front "celle du timer" dans un konnecteur n'est pas idéal.

Proposition : Ajouter l'information dans le manifest du konnector que celui-ci sait géré l'event LOGIN_SUCESS. Ainsi le konnecteur n'a pas besoin de dispatcher de dispatcher un event pour désactiver le timer. En lisant le manifeste, Harvest saura que le konnector gère le login_sucess et ne déclenchera pas le timer.

On pourrait ajouter une clé events dans le manifeste pour lister l'ensemble des EVENT que le konnecteur sait gérer par lui-même ?

manifest.konnector:

{
  name: "MyKonnector",
  events: {
    "LOGIN_SUCESS": true
  }
}

Des avis ?

@ptbrowne
Copy link
Contributor

ptbrowne commented Sep 2, 2019

Je n'ai pas l'impression qu'on ait assez de recul pour avoir une clé events, personnellement je ferais juste une clé autoSuccess: false.

@gregorylegarec
Copy link
Contributor

J'aime beaucoup l'idée de la clé events qui est extensible et plutôt agnostique. 👍

Nous n'avons jamais descendu la gestion du LOGIN_SUCCESS jusque dans les konnecteurs puisque ça nous a toujours paru être une logique purement UX/UI.

@doubleface
Copy link
Contributor

Cette clé events serait aussi intéressante pour les captchas du coup et nous laisse pas mal d'ouverture pour la suite. Je vote pour

@edas
Copy link
Contributor

edas commented Sep 2, 2019

Ca me gêne un peu d'ajouter une métadonnée pour dire "ce connecteur va se comporter comme on aimerait que tous les connecteurs se comportent". Je préférerais voir le fonctionnement inverse et changer les métadonnées des connecteurs qui n'implémentent pas tout ce qu'on attends (ou mieux : les corriger pour qu'ils envoient les bons événements)

@ptbrowne
Copy link
Contributor

ptbrowne commented Sep 2, 2019

Nous n'avons jamais descendu la gestion du LOGIN_SUCCESS jusque dans les konnecteurs puisque ça nous a toujours paru être une logique purement UX/UI.

Perso ca ne me semble pas juste UI/UX, c'est intéressant aussi par exemple pour les métriques, si on a une erreur de connecteur, c'est intéressant de savoir à quelle étape du connecteur on en est (login / récupération des données).

@ptbrowne
Copy link
Contributor

ptbrowne commented Sep 2, 2019

Cette clé events serait aussi intéressante pour les captchas du coup et nous laisse pas mal d'ouverture pour la suite.

As tu un peu plus de données sur l'utilisation de cette clé, un cas d'usage ? Effectivement events paraît agnostique et générique, perso je serais sûreemnt pour mais j'aimerais bien avoir des cas d'usages un peu plus nombreux et précis. Est ce qu on pourrait les lister dans cette PRs ?

@gregorylegarec
Copy link
Contributor

Perso ca ne me semble pas juste UI/UX, c'est intéressant aussi par exemple pour les métriques, si on a une erreur de connecteur, c'est intéressant de savoir à quelle étape du connecteur on en est (login / récupération des données).

Je me suis mal exprimé, je parlais du timeout de LOGIN_SUCCESS, celui qui permet de simplement supposer qu'on est logué, côté front. En effet le LOGIN_SUCCESS a tout son sens côté konnector, y compris pour les metrics.

@Crash--
Copy link
Contributor Author

Crash-- commented Sep 3, 2019

@edas Si c'est au konnecteur de dire LOGIN_SUCESS quid des OAuth ? Vu que le Callback arrive sur une instance particulière de la stack qui redirige (actuellement) sur la Home. Ce serait donc à la Home / Harvest de dispatcher un LOGIN_SUCESS et non au konnecteur ?

@edas
Copy link
Contributor

edas commented Sep 5, 2019

Je n'avais pas pensé aux connecteurs OAUTH, effectivement

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants