Flagsmith / Flagsmith/flagsmith

Inconsistent data schema returned by edge-features endpoints

Open
#2,176 1 comment 0 reactions 3 assignees Assigned to @khvn26 View on GitHub
edge-api improvement
Dominant language
Python
Stars
6.6k
Forks
567
Avg merge
1d 14h
Merged PRs (30d)
124

Description

**Is your feature request related to a problem? Please describe.**

The `/api/v1/environments/{environment_api_key}/edge-identities/{edge_identity_identity_uuid}/edge-featurestates/` endpoint returns a list of results with: `feature_state_value`, `feature`, `multivariate_feature_state_values`, `enabled`, `identity_uuid` and `uuid`.
This unfortunately only returns a partial list of the overriding states for a feature, and doesn't include the name of the feature.

On the other hand, the `/api/v1/environments/{environment_api_key}/edge-identities/{edge_identity_identity_uuid}/edge-featurestates/all` returns a complete list of states with: `feature` (including the `name`, `type` and `id`), `enabled`, `overridden_by`, `segment` and `multivariate_feature_state_values`.

Now this returns all the feature states for a identity, but there is a problem. It doesn't return the identity or feature uuid. This is an issue as all other endpoints which reference feature states require the UUIDs.
Currently, I have to make use of both endpoints above and this is far from ideal.

**Describe the solution you'd like**
I would expect the `/api/v1/environments/{environment_api_key}/edge-identities/{edge_identity_identity_uuid}/edge-featurestates/all` endpoint to be an extension of the first, but as a complete list.
Instead, it returns a completely different schema with different fields.
This is quite misleading, and the reason for that disparity doesn't seem to be mentioned anywhere in the docs.
My proposed solution would be a combination of both schemas, giving access to all fields without making extra calls.

**Describe alternatives you've considered**
I make use of the 2 endpoints, but this is really inefficient as there a lot of extra calls being made.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.