To content | To menu | To search


Doing bank's work...

"Doing bank's work", c'est la description que j'ai donné à un projet qui, comme son nom l'indique, fait ce que devrait faire ma banque: permettre de récupérer les soldes de mes comptes pour faire des jolis graphes, indiquer une tendance, et me prévenir si le montant d'un ou plusieurs comptes passe sous un seuil critique.

J'ai lancé ce projet il y a 5 ans. À l'époque et encore aujourd'hui, il n'y avait pas beaucoup de produits qui permettaient de faire ça, il n'y en avait même qu'un: weboob (qui est devenu woob depuis)

J'ai donc mis en place un petit wrapper autour de woob pour récupérer les soldes, et les envoyer ensuite dans une base InfluxDB pour pouvoir les grapher avec Grafana. Une boucle infinie, une interrogation toutes les heures avec des paramètres d'authentification stockés dans un password-store. Simple. Basique.

Tout a fonctionné à peu près toutes ces années, au gré des changements de site et d’authentification de ma banque (passage à la double authentification via SMS, puis via l'appli mobile). C'est cette dernière qui a posé de plus en plus de problème, avec un recours au 2FA beaucoup trop régulier pour être automatisable.

Malgré un énième problème j'ai réussi je ne sais pas trop comment à passer entre les gouttes, en réduisant à un appel toutes les 5 minutes j'arrivais à garder une "session" active et à ne revalider le 2FA qu'environ une fois par semaine (jusque là, il était valide 3 mois).

Malheureusement après plusieurs demandes de renouvellement journalières j'ai été faible ("dans le doute, reboot") et j'ai lancé une mise à jour de woob. Grossière erreur: le 2FA ne tient désormais pas plus de 5 minutes.

Pour palier à ça et éviter, pour l'instant, de fermer également ce service (qui ne sera pas le premier...) j'ai changé de fonctionnement: le script n'est plus lancé par une boucle infinie mais par ma nouvelle marotte, à savoir les minuteurs systemd. Après avoir sabré dans le code source de woob pour permettre la demande de validation 2FA même en mode non-interactif (un truc qu'il va falloir pérenniser), le script est lancé maintenant 4 fois par jour, en journée uniquement (la nuit, j'ai autre chose à faire que d'allumer mon tel pour valider une transaction).

On verra à la longue si c'est trop intrusif, une fois par jour devrait suffire pour mon usage, qui est d'avoir un graphe sur le long terme, soit plusieurs années.

En tout cas si vous connaissez une banque proposant une API permettant de faire ce genre de choses (j'ai regardé du côté de l'Open Banking mais ça n'a pas l'air trop ouvert aux particuliers), n'hésitez pas à me le dire, je signe chez eux tout de suite !

Add a comment

Comments can be formatted using a simple wiki syntax.

This post's comments feed