Feature flag keys with one trailing newline are accepted

Offen Anfängerfreundlich
#1,806 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
1/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
88/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
backend

Rechercherichtung

Lies den Schlüsselvalidator in backend/app/schemas/feature_flag.py und prüfe, wie er die vier im Issue beschriebenen Schlüsselbeispiele behandelt. Aktualisiere die Validierung, sodass ein abschließender Zeilenumbruch mit der vorhandenen Meldung für ungültige Schlüssel abgelehnt wird. Überprüfe anschließend, dass gültige Schlüssel weiterhin akzeptiert und ungültige Schlüssel abgelehnt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Python
Sterne
0
Forks
4
Ø Merge
6 Std. 43 Min.
Gemergte PRs (30 T.)
414

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Controlvar/controlvar

Alle Issues in Controlvar/controlvar

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.