[Cozy Banks] Développement konnector Bankin'

Salut,

Malheureusement pour l’instant j’ai une erreur au moment de la synchronisation

Aug 16 12:08:55 sd-47961 cozy[22943]: time="2019-08-16T12:08:55+02:00" level=error msg="Stderr: /usr/src/konnector/index.js:71739\n    token: credentials.token.accessToken,\n                             ^\n\nTypeError: Cannot read property 'accessToken' of undefined\n    at getCozyClient (/usr/src/konnector/index.js:71739:30)\n    at Object.e.(anonymous function) (/usr/src/konnector/index.js:71767:20)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.Client.Client (/usr/src/konnector/index.js:71403:20)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.<anonymous> (/usr/src/konnector/index.js:71076:22)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.env2formats.env2formats (/usr/src/konnector/index.js:265:26)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.<anonymous> (/usr/src/konnector/index.js:129:5)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at BaseKonnector.BaseKonnector (/usr/src/konnector/index.js:117:18)\n    at Object.<anonymous> (/usr/src/konnector/index.js:120:10)\n    at Module._compile (module.js:653:30)\n    at Object.Module._extensions..js (module.js:664:10)\n    at Module.load (module.js:566:32)\n    at tryModuleLoad (module.js:506:12)\n    at Function.Module._load (module.js:498:3)\n    at Function.Module.runMain (module.js:694:10)\n    at startup (bootstrap_node.js:204:16)\n    at bootstrap_node.js:625:3\n" domain=moncozy.instance job_id=330fba7a4475066a7f80f69c7f0240b0 nspace=jobs slug=bankin worker_id=konnector/3
Aug 16 12:08:55 sd-47961 cozy[22943]: time="2019-08-16T12:08:55+02:00" level=warning msg="Error while performing job: exit status 1 (retry in 61.484647ms)" domain=moncozy.instance job_id=330fba7a4475066a7f80f69c7f0240b0 nspace=jobs worker_id=konnector/3
Aug 16 12:08:56 sd-47961 cozy[22943]: time="2019-08-16T12:08:56+02:00" level=error msg="Stderr: /usr/src/konnector/index.js:71739\n    token: credentials.token.accessToken,\n                             ^\n\nTypeError: Cannot read property 'accessToken' of undefined\n    at getCozyClient (/usr/src/konnector/index.js:71739:30)\n    at Object.e.(anonymous function) (/usr/src/konnector/index.js:71767:20)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.Client.Client (/usr/src/konnector/index.js:71403:20)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.<anonymous> (/usr/src/konnector/index.js:71076:22)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.env2formats.env2formats (/usr/src/konnector/index.js:265:26)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at Object.<anonymous> (/usr/src/konnector/index.js:129:5)\n    at __webpack_require__ (/usr/src/konnector/index.js:26:30)\n    at BaseKonnector.BaseKonnector (/usr/src/konnector/index.js:117:18)\n    at Object.<anonymous> (/usr/src/konnector/index.js:120:10)\n    at Module._compile (module.js:653:30)\n    at Object.Module._extensions..js (module.js:664:10)\n    at Module.load (module.js:566:32)\n    at tryModuleLoad (module.js:506:12)\n    at Function.Module._load (module.js:498:3)\n    at Function.Module.runMain (module.js:694:10)\n    at startup (bootstrap_node.js:204:16)\n    at bootstrap_node.js:625:3\n" domain=moncozy.instance job_id=330fba7a4475066a7f80f69c7f0240b0 nspace=jobs slug=bankin worker_id=konnector/3
Aug 16 12:08:56 sd-47961 cozy[22943]: time="2019-08-16T12:08:56+02:00" level=info msg="Konnector failure: exit status 1" account_id=330fba7a4475066a7f80f69c7f0223aa domain=moncozy.instance exec_time=1.903325877s job_id=330fba7a4475066a7f80f69c7f0240b0 nspace=jobs slug=bankin version=1.1.0-beta.1 worker_id=konnector/3
Aug 16 12:08:56 sd-47961 cozy[22943]: time="2019-08-16T12:08:56+02:00" level=error msg="error while performing job: exit status 1" domain=moncozy.instance job_id=330fba7a4475066a7f80f69c7f0240b0 nspace=jobs worker_id=konnector/3

Je suis un peu perdu pour le moment :thinking:

C’est une erreur inhabituelle, je vais regarder :face_with_raised_eyebrow:

Je ne sais pas trop comment débogué ça, donc si tu as des conseils je suis preneur ^^

C’était une régression que j’ai causé tous seul dans cozy-konnector-libs :sweat_smile:

cozy-konnector-libs@4.21.0 vient de sortir et corrige ce problème

Je viens de mettre à jour bankin et du coup j’ai sorti une nouvelle beta (2). Tu peux me dire si ça fonctionne cette fois @Naji ?

On s’en approche, on y est presque ! :smiley:
La récupération des données est fonctionnelle. Toutefois, il y a une erreur qui survient au moment de la sauvegarde dans Cozy. Malheureusement l’erreur qui survient n’est pas logué correctement. Du coup j’ai corrigé le problème de log et j’ai rajouté commit beta3 qui permettra d’identifier l’erreur qui survient.
Par contre, je ne sais pas comment publier ça sur le registre, je n’ai pas l’impression que Travis l’ait fait :thinking:

Nickel

Travis a bien fait la publication mais il reste l’étape de validation à faire de mon côté pour que cette nouvelle version soit visible. Je fais ça tout de suite… c’est fait :slight_smile:

1 Like

Malheureusement le log n’est pas très utile, puisqu’il n’y a pas la call stack… :upside_down_face:

Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="Found #3589 operations before filtering" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="Found #1862 operations after filtering" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="request: POST cozy6f24cd18535faa406bdb84da7f77671f%2Fio-cozy-permissions/_find {\"selector\":{\"$and\":[{\"type\":\"konnector\"},{\"source_id\":\"io.cozy.konnectors/bankin\"}]},\"use_index\":\"by-source-and-type\",\"limit\":1}" domain=moncozy.local nspace=couchdb
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="response: {\"docs\":[\r\n{\"_id\":\"330fba7a4475066a7f80f69c7f021432\",\"_rev\":\"8-3607d4ea2fd80269f37a2d0cf79cea6d\",\"type\":\"konnector\",\"source_id\":\"io.cozy.konnectors/bankin\",\"permissions\":{\"referenced folders\":{\"type\":\"io.cozy.files\",\"description\":\"folders referenced by the konnector\",\"selector\":\"referenced_by\",\"values\":[\"io.cozy.konnectors/bankin\"]},\"saveFolder\":{\"type\":\"io.cozy.files\",\"verbs\":[\"GET\",\"POST\",\"PATCH\"],\"values\":[\"330fba7a4475066a7f80f69c7f023335\"]},\"bank.accounts\":{\"type\":\"io.cozy.bank.accounts\",\"description\":\"Required to save the list of bank accounts\"},\"bank.operations\":{\"type\":\"io.cozy.bank.operations\",\"description\":\"Required to save your bank operations\"},\"accounts\":{\"type\":\"io.cozy.accounts\",\"description\":\"Required to get the account's data\",\"verbs\":[\
"GET\"]},\"bank.balancehistories\":{\"type\":\"io.cozy.bank.balancehistories\",\"description\":\"Required to save balance histories\"}},\"cozyMetadata\":{\"doctypeVersion\":\"1\",\"metadataVersion\":1,\"createdAt\":\"2019-08-16T12:08:13.7
32655307+02:00\",\"createdByApp\":\"bankin\",\"createdByAppVersion\":\"1.1.0-beta.1\",\"updatedAt\":\"2019-08-20T20:31:00.229932073+02:00\",\"updatedByApps\":[{\"slug\":\"bankin\",\"date\":\"2019-08-16T12:08:13.732655935+02:00\",\"version\":\"1.1.0-beta.1\"},{\"slug\":\"home\",\"date\":\"2019-08-16T12:08:54.499298224+02:00\"}]}}\r\n],\r\n\"bookmark\": \"g1AAAAB9eJw9zMESQCAUheHGio29nScgSvE05iqNRHeGNjw9Ldj-Z76zEUKSJdEkPwMcwc3XqFFZvb-9ZIyaCSRwLjsqBEjTUyMGJQ1tG87a6NLPbfEpssJipfC-KofezyrgcdYTeGd9XLO_rusDSAUkHg\"}" domain=moncozy.local nspace=couchdb
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=error msg="format is not a function" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="Saving account data..." domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3

Du coup l’erreur format is not a function intervient ici : https://github.com/konnectors/bankin/blob/master/src/index.js#L39

C’est quand même assez curieux car j’arrive à faire fonctionner le konnector en standalone et en dev (avec des bidouilles).

Je rencontre malheureusement le même problème que toi @Naji sur les Konnectors Fortuneo & Boursorama. Je ne suis pas parvenu encore à identifier précisement la ligne où cela pose soucis…

J’ai l’impression que cela doit venir des dates vu que c’est le seul endroit où l’on fait appel à cette fonction. :confused:

Ok, merci pour le retour, je suis sur le coup

@Naji @orandin Le problème est résolu dans la version 4.22.1 de cozy-konnector-libs. C’est cozy-logger 1.5.0 le fautif. Je suis passé la version précédente sur cozy-konnector-libs et je suis en train de corriger le problème sur cozy-logger lui-même.

Il y a eu pas mal de travail de fond pendant l’été et ça cause quelques régressions, mais on devrait en voir le bout. Merci pour vos retours rapides en tous cas.

2 Likes

Merci pour ta réactivité ! Pas de soucis, comme on dit “move fast and break things”.
Je viens de build une beta4 pour pouvoir essayer les changements ^^

Je viens de build une beta4 pour pouvoir essayer les changements ^^

C’est validé

2 Likes

@Naji tu es d’accords pour sortir une version stable pour tout le monde ?

Désolé pour le retard de réponse, j’étais en vacances. :upside_down_face:
C’est presque prêt ! Le problème du logger a été corrigé avec la mise-à-jour des dépendances. Toutefois, j’ai l’impression que la sauvegarde en bulk des opérations prend beaucoup plus de temps qu’auparavant. Du coup j’ai cette erreur qui apparaît au bout d’un moment :

Sep 10 18:24:27 sd-47961 cozy[22943]: time="2019-09-10T18:24:27+02:00" level=info msg="Konnector failure: context deadline exceeded" account_id=330fba7a4475066a7f80f69c7f0348a5 domain=moncozy.local exec_time=10m0.163160601s job_id=330fba7a4475066a7f80f69c7f12d8b2 nspace=jobs slug=bankin version=1.2.1-f43fdbe2957bace439e7c96c5d5d400fd325bd44 worker_id=konnector/2
Sep 10 18:24:27 sd-47961 cozy[22943]: time="2019-09-10T18:24:27+02:00" level=error msg="error while performing job: context deadline exceeded" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f12d8b2 nspace=jobs worker_id=konnector/2 

Autrefois il fallait 15 secondes environ pour sauvegarder 2000 opérations, là c’est plus long. Est-ce qu’il faudrait que je mette en place un mécanisme pour ne pas re-sauvegarder les opérations déjà enregistrées ?

Salut, j’étais pas en vacances mais sur d’autres sujets. Désolé pour le temps de réponse.

Je ne sais pas pourquoi le temps est si long effectivement.

Mails il est vrai que tu dois pouvoir limiter les opération sauvées au mois en cours par exemple.

Pour les opérations des mois précédents, le temps des connecteurs étant limité à 5 min, tu dois pouvoir les sauver par batch 100 par exemple et définir un timeout et finir l’exécution de ton connecteur de manière propre et retenter l’import des autres opérations à la prochaine exécution.

Pour ce qui est du temps d’exécution plus long, ça va être à nous de voir ce qui se passe je crois.

Bon courage

En attendant, ce que tu peux faire éventuellement c’est sauver les operations par batch de 100 et définir un timeout.
Les connecteurs disposent d’un temps limité pour s’exécuter (5min) donc tu peux déjà limiter les dégats de cette façon.

Si @Naji arrive à faire un truc pour splitter l’import des opérations, ça m’intéresse : j’ai le même problème de timeout en utilisant le connecteur Fortuneo de @orandin, l’import de quelques années d’opérations prenant trop de temps.

C’est sale mais comme vous hébergez vos propres serveurs, et avez peut-être moins de souci de partages de ressources, peut-être pouvez-vous simplement augmenter la durée maximale d’exécution autorisée des connecteurs. Je pense que ça se configure dans le fichier de configuration https://github.com/cozy/cozy-stack/blob/master/cozy.example.yaml#L136

1 Like

Bonjour,

Sur une instance auto hébergée j’essaie d’utiliser ce connecteur Bankin et dès le début de l’execution du connecteur j’obtiens les erreurs suivantes:

Apr 26 15:01:08 cozy cozy[597]: time=“2020-04-26T15:01:08+02:00” level=error msg=“format is not a function” domain=cloud.exemple.me job_id=e1fa44c4cc38fed971de4d06d600198f nspace=jobs slug=bankin worker_id=konnector/2
Apr 26 15:01:08 cozy cozy[597]: time=“2020-04-26T15:01:08+02:00” level=error msg="{“error”:“code=403, message=Forbidden”}" domain=cloud.exemple.me job_id=e1fa44c4cc38fed971de4d06d600198f nspace=jobs slug=bankin worker_id=konnector/2

Si quelqu’un a une idée je suis preneur car ce konnector Bankin est vraiment une bonne idée.

Merci

Edit 28/04
Après avoir activé le mode debug, j’observe dans les logs que le konnector se connecte bien au compte Bankin, il récupére bien la liste des comptes et le nombre d’opérations et fait une requête du type

Apr 28 09:32:09 cozy cozy[1295]: time=“2020-04-28T09:32:09+02:00” level=debug msg=“request: POST cozy0718c2af598610ac4177d8753b867336%2Fio-cozy-permissions/_find {“selector”:{”$and":[{“type”:“konnector”},{“source_id”:“io.cozy.konnectors/bankin”}]},“use_index”:“by-source-and-type”,“limit”:1}" domain=cloud.exemple.me nspace=couchdb

Bankin lui réponds, mais la réponse ne semble pas plaire au konnector :roll_eyes:

Salut à tous,

J’ai exactement le même problème que @Oliv
Je suis preneur d’une piste, le konnector Bankin est très interessant à mes yeux.

Jun  4 11:33:43 vm-cozy cozy-stack[604]:   http server admin started on "127.0.0.1:6060"
Jun  4 11:34:02 vm-cozy cozy[604]: time="2020-06-04T11:34:02+02:00" level=error msg="format is not a function" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin worker_id=konnector/0
Jun  4 11:34:02 vm-cozy cozy[604]: time="2020-06-04T11:34:02+02:00" level=error msg="{\"error\":\"code=403, message=Forbidden\"}" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin worker_id=konnector/0
Jun  4 11:34:02 vm-cozy cozy[604]: time="2020-06-04T11:34:02+02:00" level=error msg="Stderr: (node:1) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.\n" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin worker_id=konnector/0
Jun  4 11:34:02 vm-cozy cozy[604]: time="2020-06-04T11:34:02+02:00" level=warning msg="Error while performing job: {\"error\":\"code=403, message=Forbidden\"} (retry in 56.814398ms)" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs worker_id=konnector/0
Jun  4 11:34:05 vm-cozy cozy[604]: time="2020-06-04T11:34:05+02:00" level=error msg="format is not a function" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin worker_id=konnector/0
Jun  4 11:34:06 vm-cozy cozy[604]: time="2020-06-04T11:34:06+02:00" level=error msg="{\"error\":\"code=403, message=Forbidden\"}" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin worker_id=konnector/0
Jun  4 11:34:06 vm-cozy cozy[604]: time="2020-06-04T11:34:06+02:00" level=error msg="Stderr: (node:1) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.\n" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin worker_id=konnector/0
Jun  4 11:34:06 vm-cozy cozy[604]: time="2020-06-04T11:34:06+02:00" level=info msg="Konnector failure: {\"error\":\"code=403, message=Forbidden\"}" account_id=71c9c0b02d8e5a9aa7c32e0d871c0ece domain=cloud.exemple.me exec_time=7.387118965s job_id=9c934234390179e84fe76271a20005a7 nspace=jobs slug=bankin version=1.1.0 worker_id=konnector/0
Jun  4 11:34:06 vm-cozy cozy[604]: time="2020-06-04T11:34:06+02:00" level=error msg="error while performing job: {\"error\":\"code=403, message=Forbidden\"}" domain=cloud.exemple.me job_id=9c934234390179e84fe76271a20005a7 nspace=jobs worker_id=konnector/0

Bonjour,

J’ai le même problème que @reglisse69 est-ce que ce problème est chez tout le monde ?

Merci d’avance.