SearchOrganizations answers internal when filtering on name
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 72/100
Rechercherichtung
Beginne in internal/store/postgres/org_billing_repository.go bei addRQLFiltersInQuery, dessen Allowlist name nicht enthält, und vergleiche dann mit dem RQL-Schema zu AggregatedOrganization. Prüfe außerdem die Zuordnung von postgres.ErrBadInput im Handler, damit ein nicht unterstützter Filter invalid_argument zurückgibt. Fertig ist, wenn name-Filter funktionieren oder nicht unterstützte Felder invalid_argument mit einer klaren Meldung erhalten und kein internal zurückgegeben wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
What happens
AdminService.SearchOrganizations answers internal (HTTP 500) when the query filters on name.
Example request body:
{"query": {"filters": [{"name": "name", "operator": "eq", "string_value": "my-org"}]}}
The server log says addRQLFiltersInQuery: name is not supported in filters. Filtering on title or state works.
Why
nameis a valid field ofAggregatedOrganization(rql:"name=name"), so the request passesrql.ValidateQueryin the handler.addRQLFiltersInQueryininternal/store/postgres/org_billing_repository.gohas its own allow list. It hasid,title,state,created_at,plan_name,subscription_state,subscription_cycle_end_at,plan_intervalandpayment_mode. It has noname, and it also leaves out other fields that the RQL schema allows, such ascreated_by,country,plan_id,updated_atandavatar.- The error it returns is a plain error. The handler only maps
postgres.ErrBadInputtoinvalid_argument, so the client getsinternalfor what is really a bad request.
Expected
- Either support filtering on
name(and the other fields the RQL schema lists), or reject the unsupported fields in the handler asinvalid_argumentwith a clear message. - In both cases an unsupported filter should not answer
internal.
How it was found
Found while testing organization delete against a local sandbox. It has nothing to do with deletes, and it behaves the same on main.
- Vorherrschende Sprache
- Go
- Sterne
- 344
- Forks
- 48
- Ø Merge
- 2 T. 15 Std.
- Gemergte PRs (30 T.)
- 58
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus raystack/frontier
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
raystack/frontier#2030 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 55/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in raystack/frontier
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
limitlessprojects/Go-Hybrid#3342 ·
Maintainer antworten meist innerhalb von 1 Tag
-
status/ready type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
buildpacks/pack#2733 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
kind/bug needs-priority needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
konveyor/tackle2-hub#1166 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
router-for-me/CLIProxyAPI#7209 ·
Maintainer antworten meist innerhalb von 1 Tag