Development #73805
settings.CONNECTORS_SETTINGS pour définir des substitutions simples sur du contenu texte (et autres, plus tard)
0%
Description
Pour pallier aux proxys idiots et autres API gateways.
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ un an
- Sujet changé de settings.REQUESTS_SUBSTITUTION pour définir des substitution simple sur du contenu texte à settings.REQUESTS_SUBSTITUTION pour définir des substitutions simples sur du contenu texte
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Nouveau à Solution proposée
Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://gitea.entrouvert.org/entrouvert/passerelle/pulls/63
- Titre : misc: add setting to define string substitutions on HTTP responses (#73805)
- Modifications : https://gitea.entrouvert.org/entrouvert/passerelle/pulls/63/files
Mis à jour par Frédéric Péters il y a environ un an
Je suis plutôt de manière globale à encourager l'exposition dans les interfaces du paramétrage, plutôt que confier ça à des settings synonymes d'interventions de CPT et d'oublis lors de migrations ou d'export/import.
Mais une fonctionnalité de substitution d'URL assez générique, quand on est face à des services qui exposent des URL internes, je trouve oui que ça serait régulièrement utile, exemple encore aujourd'hui #73736#note-6, pour Cart@DS à Grand Lyon j'avais été aussi obligé https://git.entrouvert.org/passerelle-grandlyon-cartads-cs.git/tree/grandlyon_cartads_cs/models.py#n54
Cela étant, je trouve que c'est ici trop générique, que ça devrait être par connecteur. (cf #73736#note-6 qui utilise un http://localhost:8080/, pour lequel on pourrait facilement vouloir selon le connecteur une substitution différente).
Ça me va de mettre de côté l'aspect UI, qui serait vu "plus tard", et d'avoir simplement une clé permettant de préciser un/des slugs de connecteurs dans la configuration (et qu'en l'absence ça concerne tout le monde, même).
Mis à jour par Benjamin Dauvergne il y a environ un an
- configuration par connector-slug :
settings.REQUESTS_SUBSTITUTIONS = { "cmis": [ { 'url': 'https://service.example.com/api/', 'search': 'http://service.example.internal/software/api/', 'replace': 'https://service.example.com/api/' } ] }
- un deuxième commit pas tellement gratuit pour que les regexps sur les content-types pour savoir si on doit logger leur body ou pas soit là même que pour les substitutions, je me suis fait avoir avec CMIS, le content-type est
application/atom+xml
et pas justeapplication/xml
ça fait pareil avec SOAP où le type de contenu peut parfois êtreapplication/soap+xml
(et idem avec json, avec par exempleapplication/geo+json
). J'ai modifié aussi le nom de la fonction qui calcule le match, je ne trouvais pas le nom très clair.
Mis à jour par Benjamin Dauvergne il y a environ un an
Et dernier ajustement, c'est configuré par "{instance.get_connector_slug()}.{instance.slug}" comme ça le jour où veut passer ça en modèle ce sera simple de savoir à quelle ressource accrocher le bazar.
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution proposée à En cours
Thomas NOEL (tnoel) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a environ un an
Thomas NOEL (tnoel) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution proposée à Solution validée
Thomas NOEL (tnoel) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Thomas Noël il y a environ un an
- Sujet changé de settings.REQUESTS_SUBSTITUTION pour définir des substitutions simples sur du contenu texte à settings.CONNECTORS_SETTINGS pour définir des substitutions simples sur du contenu texte (et autres, plus tard)
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution validée à Résolu (à déployer)
Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://gitea.entrouvert.org/entrouvert/passerelle/pulls/63
- Titre : misc: add setting to define string substitutions on HTTP responses (#73805)
- Modifications : https://gitea.entrouvert.org/entrouvert/passerelle/pulls/63/files
Mis à jour par Transition automatique il y a environ un an
- Statut changé de Résolu (à déployer) à Solution déployée
misc: add setting to define string substitutions on HTTP responses (#73805)
CONNECTORS_SETTINGS is a new setting to contain any setting pertaining
requests_substitutions is the first defined key in this dictionnary,to a specific connector, it's a dictionnary of dictionnaries indexed by
connectors identifier constructed from the appname and the connector's
slug.
it's a list of dictionnaries:
text/*, application/(.*\+)?json, application/(.*\+)?xml
REQUESTS_SUBSTITUTIONS_CONTENT_TYPES setting.
prefix,
escaping is used.