Feature flag keys with one trailing newline are accepted

Ouverte Adaptée aux débutants
#1,806 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
1/5
Temps estimé
1-3 heures
Accessibilité débutants
88/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
backend

Piste de recherche

Lisez le validateur de clés dans backend/app/schemas/feature_flag.py et vérifiez comment il traite les quatre exemples de clés décrits dans l’issue. Mettez à jour la validation afin qu’un saut de ligne final soit rejeté avec le message existant pour les clés non valides. Vérifiez ensuite que les clés valides sont toujours acceptées et que les clés non valides sont rejetées.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug

What happens. FeatureFlagCreate accepts a flag key that ends in one newline. FeatureFlagCreate(key="search_v2\n", name="x") is accepted and stores the key as 'search_v2\n'. Keys with a newline anywhere else ("a\nb") and keys with upper case or spaces are refused, as expected.

Why. The key validator in backend/app/schemas/feature_flag.py checks the key with re.match(r"^...$", key). In Python, $ also matches just before a final newline, so one trailing newline passes.

Expected. A key with a trailing newline is refused with the same message as any other invalid key (for example by using re.fullmatch or \Z).

Found while updating the Learn Python book (Hour 8 teaches $ versus \Z). Measured at main 09d815ea with a short script that builds FeatureFlagCreate for four keys.

Langage dominant
Python
Étoiles
0
Forks
4
Merge moyen
6 h 43 min
PR mergées (30 j)
414

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Controlvar/controlvar

Toutes les issues de Controlvar/controlvar

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.