[Cozy Banks] Développement connecteur Boursorama


#1

Hello la communauté !

Voici un nouveau connecteur pour la banque Boursorama : cozy-konnector-bank-boursorama. :slight_smile:

La doc technique se trouve ici : https://orandin.github.io/cozy-konnector-bank-boursorama/

Vos remarques et avis sont les bienvenus !


#2

Merciiiiiiiiiiiiii :heart_eyes_cat: !!!


#3

Par contre, le build du connecteur pose problème… :confused:
La lib canvas inclut un binaire (.node) que je n’arrive pas à intégrer dans le build de webpack… Sans cette dépendance, le code ne peut pas s’exécuter.

Je ne suis hélas pas un pro de webpack. J’ai déjà tenté le module “node-loader”, sans succès. Il intègre certes le binaire, mais il écrit le chemin absolu du fichier “/home/USERNAME_SUR_MON_PC/…”. Cela marche évidemment moins bien une fois en production … :stuck_out_tongue:

Si quelqu’un a une piste, je suis preneur !


#4

Hello @orandin,

Apparemment ça n’est pas un problème simple.
Nos experts conseillent de vérifier si cette dépendance est vraiment indispensable et dans le cas contraire, d’essayer de la remplacer comme expliqué ici https://webpack.js.org/configuration/resolve/


#5

Hello,
Si je comprends bien, tu utilise une lib de comparaison d’images, sans doute pour le calvier virtuel ?
Si c’est le cas, j’ai utilisé récemment cette lib : https://github.com/reg-viz/img-diff-js
qui s’appuie sur celle-ci, en pure js : https://github.com/mapbox/pixelmatch

=> est ce que cette dernière lib résoud ton pb ?


#6

Sinon j’avais commencé à faire un connecteur Bourso, et pour passer le clavier virtuel je m’étais appuyé sur ce que fait Weboob, avec de la détection des limites des chiffres dans les images.

Si vous voulez voir ce que ça donne, j’ai un snippet dispo.


#7

excellent le coup de comparaison des limites des chiffres :slight_smile:
Si les images sont à chaque fois strictement identiques, calculer un hash de l’image serait asse simple.
Si les images sont volontairement légèrement modifiées, l’approche de @orandin sera plus robuste (pixelmatch donne le nombre de pixel différents, dont on peut tolérer des écarts).

Anecdote : je tiens de quelqu’un chez Dashlane (gestionnaire de mots de passe) que cette pratique des claviers virtuels avec déplacement aléatoire n’éxiste pratiquement qu’en France. Et on comprend pourquoi : ça gêne l’utilisateur et du point de vue sécurité, ça ne sert à rien…

Pour dire à quel point ça ne sert à rien : chez Amundi il y a un clavier virtuel, les touches sont random, mais l’envoi du mot de passe se fait lui en “clair” dans le body de la requête, c’est à dire qu’ils ne prennent même pas la peine d’envoyer le mote de passe dans l’ordre du clavier : il n’y a même pas de transposition à faire avant de leur envoyer le mot de passe :slight_smile:

Avec des aberrations pareilles, le ciel va bien finir par nous tomber sur la tête !


#8

@Clochix : C’est exactement ce que je me suis dit en tombant sur cette erreur… J’ai découvert à mes dépens l’obligation d’avoir cette dépendance pour que le code fonctionne … :confused:

@Benji : En effet car Boursorama modifie à chaque fois légèrement ses images pour que la base64 envoyée soit toujours différente. Cela aurait trop simple sinon… :roll_eyes:

Un exemple de différence d’une comparaison de deux générations de l’image 4 par rapport à une image de référence :

Noir = transparence
Rose = les différences

boursorama-4-diff

J’ai agrandi pour que l’on voit mieux les endroits où les modifications sont apportées. Les modifications ne semblent pas impacter le chiffre, ni les lettres. Il y a juste quelques pixels autour sont modifiés. La solution de @dohseven pourrait fonctionner !

Merci pour les liens. Je vais regarder ça attentivement. :slight_smile:

Tu viens de répondre à une de mes questions, @Benji. Je me demandais justement si ces claviers étaient monnaie courante ailleurs… Car c’est vraiment une plaie et l’aspect sécurité laisse à désirer comme tu dis. Finalement, je crois que l’on tient une belle spécificité française… :smiley:


#9

Comme j’en avais discuté avec @doubleface sur IRC, j’ai proposé une PR pour ce konnecteur : elle change la méthode d’authentification pour utiliser la méthode des limites que j’avais proposé dans mon snippet, ça devrait permettre de passer outre le problème de webpack.


#10

J’avais commencé à regarder ton snippet pour essayer de fixer ce problème empêchant le déploiement de ce Konnector. Très bon boulot @dohseven ! Je viens de tester ta PR et tout fonctionne. Elle vient d’être intégrée à la branche master.

Encore merci pour ta contribution ! :+1:


#11

Le connecteur boursorama est maintenant disponible pour les autohébergés \o/ . Merci à @orandin et @dohseven :+1:


#12

@dohseven rencontres-tu également la même erreur que moi en production : Konnector failure: format is not a function ?

Je n’arrive pas à reproduire le problème en dev’ et les logs sur la prod ne sont pas assez parlant pour identifier où peut se situer le problème. J’ai l’impression qu’il y a un soucis au niveau du build depuis peu… Avant cela fonctionnait pourtant bien :confused:

EDIT:

L’erreur semble provenir juste après que la catégorisation locale se termine. Cela semble être au moment d’enregistrer les données, une donnée doit être mal formatée… Mais je n’arrive pas à m’expliquer pourquoi je ne rencontre pas ce problème en dev… :confused:

[...]
{"time":"2019-08-13T21:11:16.294Z","type":"info","namespace":"categorization/localModel/model","message":"localCategory: 600110"}
{"time":"2019-08-13T21:11:16.294Z","type":"info","namespace":"categorization/localModel/model","message":"localProba: 0.6942447700571304"}
{"time":"2019-08-13T21:11:16.544Z","type":"info","namespace":"BaseKonnector","message":"Error caught by BaseKonnector"}
{"time":"2019-08-13T21:11:16.545Z","type":"critical","namespace":"BaseKonnector","message":"format is not a function"}
{"time":"2019-08-13T21:11:16.546Z","type":"info","message":"Capture exception and die"}```

#13

@orandin penses-tu pouvoir ajouter le téléchargement des factures présent maintenant dans la rubrique document de boursorama.
Cela nous permettrai d’avoir accès à toutes leurs implémentations.


#14

Je n’ai pas encore regardé cette partie, mais j’aimerai bien l’implémenter au sein du konnector dans les futures itérations. :slight_smile:


#15

Je n’ai pas pu tester en prod, puisque malheureusement je n’ai plus de Cozy sous la main pour l’instant. J’essaierai dès que je peux.


#16

La version 1.2.1 vient d’être publiée sur GitHub. Elle corrige les quelques regressions dont souffrait la précédente version.

@doubleface peux-tu la publier sur le store ? :slight_smile:


#17

C’est fait pour boursorama et fortuneo :+1:


#18

Bonjour,

depuis hier, j’essaye d’installer le connecteur Boursorama sur mon cozy auto hébergé et je bute sur le message “Something went wrong when installing the application on your Cozy. Reason: Error when installing the application”

En allant fouiller dans les logs, je vois ce message :

"Sep 13 04:03:41 xxxxx cozy[xxxxxx]: time=“2019-09-13T04:03:41Z” level=error msg=“Could not commit installer process: Application checksum does not match”

C’est normal ?


#19

L’installation semble fonctionner en ligne de commande :

cozy-stack konnectors install --domain oupsman.moncloudprive.eu boursorama git://github.com/orandin/cozy-konnector-bank-boursorama.git#master


#20

Salut @oupsman !

Tu as en effet le moyen d’installer le konnector en ligne de commandes, mais tu as installé le konnector en utilisant l’ancien dépôt. Depuis, cela a été migré vers le github konnectors.

D’ailleurs, depuis cette migration, le Konnector Boursorama est disponible officiellement sur cozy store. Je te conseille de l’installer depuis le store. Tu bénéficieras des mises à jour automatique. :wink: