Projet

Général

Profil

Development #86422

Validation des schémas JSON cassée suite au passage en bookworm

Ajouté par Benjamin Dauvergne il y a 3 mois. Mis à jour il y a 3 mois.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
-
Début:
01 février 2024
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

On est passé de jsonschema 3.2.0 à jsonschema 4.10.3, visiblement la validation "string" de ce dernier est plus stricte et n'accepte pas les chaînes paresseuse produites par gettext_lazy() dans les schémas, il faut normaliser le schéma avant de le passer à validate.

Les connecteurs concernés (grosso modo):

$ git grep -l "'title': _(" 
passerelle/apps/adullact_pastell/models.py
passerelle/apps/astre_rest/models.py
passerelle/apps/cmis/models.py
passerelle/apps/filr_rest/schemas.py
passerelle/apps/qrcode/models.py
passerelle/contrib/toulouse_foederis/models.py


Demandes liées

Lié à Passerelle - Development #54661: cmis, décrire les attributs du message à posterFermé08 juin 2021

Actions

Révisions associées

Révision 3ca8e984 (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

packaging: relax version constraint on jsonschema (#86422)

Révision 3c30a76f (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

ci: use jsonschema version from debian bookworm (#86422)

Révision 45f6ee9e (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

utils: simplify subclassing APIError (#86422)

By making err, http_status and log_error class variables with their
default values.

Révision f2b64b6e (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

utils: factorize json schema validation (#86422)

It was already used in two places (views.py and photon connector), and
wrongly (photon connector was ignoring some errors for no reason).

META_SCHEMA manipulation is removed and will be replaced by a
normalization of the schema to remove lazy strings in a later commit.

A new JSONValidationError subclass of APIError is introduced.

Révision a1d4c44a (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

utils: normalize schema before validation (#86422)

To allow using lazy strings in JSON schemas we cast lazy strings to str
before validating the schema itself. The resulting validator is cached.

Historique

#2

Mis à jour par Benjamin Dauvergne il y a 3 mois

  • Description mis à jour (diff)
#3

Mis à jour par Benjamin Dauvergne il y a 3 mois

#4

Mis à jour par Benjamin Dauvergne il y a 3 mois

  • Assigné à mis à Benjamin Dauvergne
#5

Mis à jour par Robot Gitea il y a 3 mois

  • Tracker changé de Support à Development
  • Statut changé de Nouveau à En cours

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

#6

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de En cours à Solution proposée
#7

Mis à jour par Benjamin Dauvergne il y a 3 mois

C'était un peu plus complexe que ça, le cas des lazy string avait déjà été traité dans #54661 en monkeypatchant jsonschema, mais il se trouve que le validateur utilisé avec le schéma n'est pas le même que celui utilisé pour valider le schéma lui même en version 4.10.3. Plus simple et plus propre à long terme le nouveau code de validation des schémas nettoie le schéma des chaînes paresseuses avant de le passer au validateur. Le validateur est mis en cache au cas où.

#8

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution proposée à Solution validée

Corentin Sechet (csechet) a approuvé une pull request sur Gitea concernant cette demande :

#9

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution validée à Résolu (à déployer)

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

#10

Mis à jour par Transition automatique il y a 3 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#11

Mis à jour par Transition automatique il y a 21 jours

Automatic expiration

Formats disponibles : Atom PDF