Closed mguihal closed 8 months ago
Problème avec LDPNavigator visiblement qui a été ajouté en surcouche à l'action ldp.resource.get. Ping @simonLouvet
Je regarde ça ce matin
Je ne comprends pas, même après la correction que tu as mergé, j'ai toujours le souci :/ Je suis un peu coincé sur ce sujet... je pense que je vais être obligé de mettre les mains dedans pour comprendre ce que fait le LDPNavigator exactement 😬
@mguihal Pour info l'usage de LdpNavigator est un hack donc ne te prend pas trop la tête.
Comme on est au niveau middleware, on pourrait simplement appeler l'action ldp.resource.get
sans passer par LdpNavigator.
Mais la vraie solution serait de réécrire proprement les composants utilisés pour les relations réifiées. Voir cette issue notamment: https://github.com/assemblee-virtuelle/semapps/issues/894
Après investigations, j'ai trouvé le pourquoi du comment. Il se trouve que LdpNavigator utilise l'api fetch de Node, qui a du mal avec les requêtes sur les serveurs locaux selon leurs paramètres visiblement (merci à cette réponse qui m'a aiguillé sur StackOverflow https://stackoverflow.com/questions/74165121/next-js-fetch-request-gives-error-typeerror-fetch-failed)
Il se trouve que par défaut, l'adresse locale du middleware est configurée comme http://localhost:3000/, mais que moleculer-web utilisé dedans lance son serveur par défaut sur l'ip 0.0.0.0, d'où l'erreur. Cette ip est personnalisable soit via les settings de moleculer-web, soit via la variable d'environnement IP (https://github.com/moleculerjs/moleculer-web/blob/master/src/index.js#L61).
En ajoutant cette variable IP=localhost
dans le fichier .env du middleware, ça marche nickel 👌
C'est bon à savoir ^^
Merci pour l'info !
Cela donne une raison de plus d'utiliser des actions type ldp.resource.get
plutôt que LdpNavigator lorsqu'on est sur le middleware. @simonLouvet Faire un fetch sur son propre serveur comporte des risques, j'en ai aussi fait l'expérience avec certaines config Docker.
son propre serveur comport
L'intérêt d'utiliser LdpNavigator plutôt que ldp.resource.get
c'est de pouvoir paramétrer simplement un plan de déréférencement qui peut être complexe. C'est configurable par un object json. Avec ldp.resource.get
il faudra faire du code spécifique sur mesure pour chaque container custom.
Je suis d'accord que la solution cible est de déréférencer et desasembly sur navigateur.
@mguihal je n'ai pas vraiment compris comment molecurer peut choisir son ip car pour moi c'est de la responsabilité de docker mais je suis curieux de comprendre et pourquoi ça n'arrive pas sur nos (moi et bastien) machines et le serveur. peut être windows?
Décrivez le bug Quand j'essaye d'ajouter un membre à une organisation, celui-ci n'est pas persisté après rafraîchissement.
Etapes pour reproduire
next
, base de données vide, dépendances à jour, etc.) [juste pour être sûr que ça ne dépend pas d'un autre facteur]Dans les logs du middleware, on constate l'erreur suivante :
Suis-je le seul à reproduire ? cc @BastienSig