[Cozy Bank] Développement connecteur CIC


#1

Hello la communauté !

J’ai été séduit par Cozy bank et alors que j’installe cozy sur mon propre serveur, j’ai compris que j’allais devoir mettre la main à la patte ! :smiley:

Souhaitant synchroniser mes comptes bancaires sur ma propre instance, j’ai commencé le développement de mon premier connecteur pour récupérer les infos du CIC : cozy-konnector-bank-cic. Et je ne pense pas que ce sera le dernier… :slight_smile:

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

Vos remarques et avis sont les bienvenus !


[Cozy Banks] Développement connecteur Fortuneo
#2

Bonjour @orandin,

Bienvenue et bord et merciiiii pour ce premier connecteur :slight_smile:

Je demande tout de suite à l’équipe de regarder ton code (ça va probablement prendre quelques jours, leurs journées ne font malheureusement que 24h et ils sont très occupés).


#3

Merci @Clochix pour l’accueil et d’avoir transmis à l’équipe ! :slight_smile:

Pas de soucis, rien ne presse. Le code est de toute manière disponible pour tout ceux qui passent par là et sont intéressés ! :wink:

Souhaite leur bon courage de ma part !


#4

Petite question, peut-être sauras-tu me répondre @Clochix !

J’utilise mon connecteur sur ma propre instance depuis quelques jours. Néanmoins, la fréquence d’exécution est fixée sur hebdomadaire. Pas hyper pratique pour les alertes de solde … :confused:

Est-il possible de changer la fréquence pour qu’elle s’exécute quotidiennement ? Si oui, comment faire ?


EDIT: J’ai finalement trouvé comment faire. Désolé pour le ping ! :smiley:

Je suis tombé sur la doc Konnectors doctype et en fouillant un peu le code source de cozy, j’ai trouvé les arguments autorisés. Je vais faire une proposition d’amélioration de la doc pour renseigner les arguments autorisés.


#5

Hello,

Tu peux préciser une fréquence dans le manifeste du connecteur : https://github.com/cozy/cozy-apps-registry/#properties-meaning-reference

Par défaut, la fréquence est hebdromadaire, mais un "frequency": "daily" devrait permettre de lancer le connecteur tous les jours.

(par contre ça ne sera pas pris en compte directement, il faut que tu installes la nouvelle version du connecteur, supprime et re-crée ton compte (ou ailles bidouiller la fréquence en base :wink: ))


#6

Au top @Clochix ! Merci pour le lien vers ce manifest qui m’a échappé ! Il me sera très utile ! :slight_smile:

Si j’ai un peu de temps, j’en profiterai pour reporter la description de chaque propriété du manifest dans la doc Konnectors doctype.


#7

Je viens de sortir un patch pour corriger le cas où cozy bank détecte une opération qu’il a manqué et la résolution génère une erreur : TypeError: date.slice is not a function

L’erreur en question est générée à cet endroit :

Or les attributs date de mes objets io.cozy.bank.operations sont du type Date et non du type String. J’ai donc changé le type pour résoudre cette erreur lorsque vous avez une opération manquée.


@Clochix : Pour information, le Konnector CRAGR est aussi impacté par ce bug si une transaction a été manquée.


[Cozy Banks] Développement connecteur Fortuneo
#8

Bonjour @Clochix !

Actuellement, j’utilise mon propre système de catégorisations des transactions. J’ai découvert récemment vos fonctions de catégorisation des transactions, qui prend notamment en compte des catégorisations manuelles de l’utilisateur.

Je vais donc les implémenter, mais je cherche aussi à voir si je ne peux pas me débarrasser de mon système au profit du votre. Histoire d’un peu standardiser tout cela. :slight_smile:

Je sais que la doc’ précise que le modèle global n’est pas utilisé dans le cas des cozy self hosted, mais je trouve cela dommage. C’est justement ce qui pourrait remplacer mon système. En fouillant dans le code source, j’ai découvert que la lib réalise une requête GET vers /remote/assets/bank_classifier_nb_and_voc (code: categorization/globalModel/parameters.js)

Mes questions sont les suivantes :

  • (je pense avoir la réponse) Le format de données est identique au fichier utilisé pour le mock globalModel/mocks/set_label_cat.json ?
  • Faut-il modifier la configuration nginx pour délivrer le fichier ?
    • Si non, où se trouve le dossier cozy des assets pour y mettre le fichier json ?

Merci à toi pour tes réponses ! :slight_smile:


#9

Salut @orandin ce connecteur me semble très clean. Je viens de faire une micro PR (https://github.com/orandin/cozy-konnector-bank-cic/pull/1) mais rien qui ne concerne le code.

L’étape suivante est : est-ce que tu veux que le code du connecteur soit hébergé dans l’organisation https://github.com/konnectors/ ? Cela permettra facilement de bénéficier de la mise à jour automatique des dépendances, du déploiement automatique grâce à travis et nous permettra aussi d’intervenir dessus plus facilement en ton absence. Tu resterais bien sûr administrateur du repository avec nous.

Sinon, tu peux aussi garder le dépôt chez toi et gérer tout comme tu veux et dans ce cas, je te communiquerai le token permettant de publier ton connecteur sur le registry pour le mettre à la disposition des autre utilisateurs auto-hébergés.


[Cozy Banks] Développement connecteur Fortuneo
#10

Pour ce qui est de la catégorisation locale, je l’impression que tu as fait tout ce qu’il fallait sur la branch master. Est-ce que ça fonctionne bien chez toi ?


#11

Salut @doubleface

J’avais prévu de changer le nom de ce connecteur, mais je n’avais pas pris le temps de le faire. Merci pour ta PR ! :slight_smile:

Je pense qu’il est préférable que le connecteur soit hébergé dans l’organisation Konnectors pour toutes les raisons que tu as évoqué. Dis-moi comment tu souhaites que l’on procède !

Pour ce qui est de la catégorisation locale, je l’impression que tu as fait tout ce qu’il fallait sur la branch master. Est-ce que ça fonctionne bien chez toi ?

Tout fonctionne à merveille, y compris la catégorisation globale ! Je n’ai pas su résister à la tentation de faire du reverse engineering. J’ai pu écrire un petit script qui me crée le fichier JSON nécessaire à la catégorisation globale. Je l’ai publié ici : https://github.com/orandin/cozy-global-model-classificator

Le plus long reste à écrire le fichier data.json, mais une fois écrit, tout fonctionne à merveille !

Cela me permettra ainsi d’enlever mon système de classification trop basique ! :slight_smile:


#12

Une version beta du connecteur cic existe maintenant pour les utilisateurs autohébergés \o/ et le nouveau repository est https://github.com/konnectors/cic/. @orandin, tu y est invité comme administrateur et tout le déploiement automatique est configuré.

Je viens d’y faire une première PR pour y mettre à jour les dépendances mais par la suite, c’est renovate qui s’en occupera. Est-ce que tu peux vérifier que tout fonctionne bien sur ton cozy avec ces mises à jour ?

Cette version beta n’est pas encore visible dans le store puisque c’est une version beta justement. Si tu souhaites l’installer chez toi, tu peux faire :

cozy-stack konnectors update cic registry://cic/beta

Si tu souhaites publier une nouvelle version, tu peux utiliser l’outil cozy-release, installable globalement, qui va gérer le fait de garder tes tags git et ton numéro de version dans package.json et manifest.konnector en concordance, travis s’occupera du reste. Il est par contre un peu plus contraignant en ce qui concerne le process.

Important, les applications et connecteurs sont soumis à validation de l’équipe Cozy. Donc même si les logs de travis disent que le connecteur est publié, il reste encore l’étape de validation. Dans ce cas, n’hésite pas à me pinger ici pour qu’elle se fasse plus vite.

Si tu as des questions, n’hésite pas et encore merci pour cette superbe contribution :+1:


#13

Une version stable du connecteur cic est maintenant disponible pour les autohébergés. Merci @orandin :+1:


#14

Merci @doubleface & @Clochix ! C’est une excellente nouvelle et ce n’est que le début ! :smiley:


#15

Suite à la directive DSP2, le CIC a activé la double authentification rendant le connecteur inopérant pour le moment. Un développement est en cours pour gérer cette nouvelle authentification, en essayant de minimiser les actions d’autorisation de connexion de votre part.

Note : Le Konnector fonctionnant actuellement toutes les heures, vous êtes pour le moment susceptible de recevoir une notification 2FA (double authentification) de la part du CIC chaque heure à la même minute (ex: 9h12, 10h12, …).


#16

Nouvelle release : v1.3.0

Elle prend en charge la double authentification avec confirmation via l’application CIC. Cette double authentification vous sera demandé tous les 90 jours (durée de validité du token).

(Release bientôt disponible via le store ; cc @doubleface)