OFREP Bulk flag evaluation (Core API)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 52/100
Rechercherichtung
Beginne mit dem bestehenden Endpunkt zur Auswertung von Identity-Flags und anderen abgerechneten Endpunkten; vergleiche anschließend ihr Verhalten mit der Spezifikation von OFREP evaluateFlagsBulk. Implementiere und teste POST /ofrep/v1/evaluate/flags, sodass Bulk-Auswertung, Persistenz, Abrechnung, ETag und bedingte Antworten abgedeckt sind, wobei SSE-Stream-Lookups ausgeschlossen sind; abgeschlossen ist die Aufgabe, wenn alle Akzeptanzkriterien erfüllt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
In order to implement the OFREP specification, our Core API needs a new endpoint that evaluates all flags in an environment given a set of identity traits. The Edge API counterpart is Flagsmith/edge-api#711.
An interpretation of the specification to our data model is as the following example:
(request)
POST /ofrep/v1/evaluate/flags HTTP/1.1
Host: {flagsmith_host}
X-API-Key: {client_side_environment_key}
Content-Type: application/json
{
"context": {
"targetingKey": "{identity.identifier}",
"trait1": "value1",
"trait2": "value2"
}
}
(response)
HTTP/1.1 200 OK
Content-Type: application/json
ETag: "{etag}"
{
"flags": [
{
"key": "{feature.name}",
"value": "{feature_state.feature_state_value}",
"reason": "TARGETING_MATCH"
},
{
"key": "{feature.name}",
"value": {feature_state.enabled},
"reason": "STATIC"
},
{
"key": "{feature.name}",
"value": "{multivariate_feature_option.value}",
"reason": "SPLIT",
"variant": "{multivariate_feature_option.key}"
}
],
"metadata": {
"version": "{environment.updated_at}"
}
}
Acceptance criteria
- Our API exposes a new endpoint
POST /ofrep/v1/evaluate/flagscompliant to the OFREP specification. As such, the endpoint:- Responds with an
ETagheader derived from the response body. - Accepts an
If-None-Matchheader which can lead to a304 Not Modifiedresponse. - Serves each flag's value as its remote configuration value, falling back to the flag's enabled state when no value is set.
- Reports each flag's evaluation reason using the vocabulary OFREP defines.
- Is billed similarly to other billed endpoints.
- Persists the identity and its traits on the same terms as identity flag evaluation.
- Responds with an
[!IMPORTANT]
Server-Sent Events stream lookups are out of scope for this issue.
- Vorherrschende Sprache
- Python
- Sterne
- 7.1k
- Forks
- 603
- Ø Merge
- 3 T. 8 Std.
- Gemergte PRs (30 T.)
- 102
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
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 Flagsmith/flagsmith
-
Expose whether an organisation is blocked for API usageEvtl. vergeben @PiUnknown hat das vor 27 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Flagsmith/flagsmith#8773 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Environment colors mismatch in audit log viewEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Flagsmith/flagsmith#8681 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
influx_query_manager doesn't catch ApiException, so Influx error responses 500Evtl. vergeben @SAY-5 hat das vor 1 Tag übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Flagsmith/flagsmith#8510 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Sales dashboard: download_org_data 500s with "Object of type generator is not JSON serializable"Evtl. vergeben @Iflaqbhat hat das vor 46 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Flagsmith/flagsmith
Ähnliche Issues
-
agents nolte-linux security skills
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
nolte/claude-shared#732 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 2 Tagen
-
[Bug] Source archive filter: dry run excludes SystemVerilog (.sv) files with no preflight warningOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
FinanceFlash/unvibecode#906 ·
Maintainer antworten meist innerhalb von 1 Tag