Project

General

Profile

Development #73805

settings.REQUESTS_SUBSTITUTION pour définir des substitutions simples sur du contenu texte

Added by Benjamin Dauvergne 7 days ago. Updated about 22 hours ago.

Status:
En cours
Priority:
Normal
Target version:
-
Start date:
24 January 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Pour pallier aux proxys idiots et autres API gateways.

History

#1

Updated by Benjamin Dauvergne 7 days ago

  • Subject changed from settings.REQUESTS_SUBSTITUTION pour définir des substitution simple sur du contenu texte to settings.REQUESTS_SUBSTITUTION pour définir des substitutions simples sur du contenu texte
#2

Updated by Gitea (Bot) Gitea 6 days ago

  • Status changed from Nouveau to Solution proposée

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#7

Updated by Nicolas Roche 5 days ago

  • Private changed from No to Yes
#9

Updated by Nicolas Roche 5 days ago

  • Private changed from Yes to No
#14

Updated by Frédéric Péters 5 days ago

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).

#17

Updated by Benjamin Dauvergne 5 days ago

Pull request à jour avec :
  • 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 juste application/xml ça fait pareil avec SOAP où le type de contenu peut parfois être application/soap+xml (et idem avec json, avec par exemple application/geo+json). J'ai modifié aussi le nom de la fonction qui calcule le match, je ne trouvais pas le nom très clair.
#18

Updated by Benjamin Dauvergne 5 days ago

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.

#19

Updated by Gitea (Bot) Gitea 1 day ago

  • Status changed from Solution proposée to En cours

Thomas NOEL (tnoel) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

#20

Updated by Gitea (Bot) Gitea about 22 hours ago

Thomas NOEL (tnoel) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

Also available in: Atom PDF