Flagsmith / Flagsmith/flagsmith-python-client

Identity overrides don't work in offline local evaluation mode

Aberta
#109 3 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Python
Estrelas
24
Forks
12
Merge médio
15h 43min
PRs com merge (30d)
4

Descrição

I'm using version 3.8.0 and have identity overrides enabled for my environment.

I'm using a copy of a config for local development and initialize Flagsmith as follows:
```
local_file_handler = LocalFileHandler(
environment_document_path=f"./feature_flags_configuration.local.json"
)
flagsmith = Flagsmith(
environment_key=settings.FLAGSMITH_API_KEY,
enable_local_evaluation=True,
offline_handler=local_file_handler,
offline_mode=True,
)
```

I have following settings on my config:
```
"feature_states": [
{
"feature": {
"id": 103972,
"name": "ipqs_geo_ip",
"type": "STANDARD"
},
"enabled": true,
"django_id": 576867,
"feature_segment": null,
"featurestate_uuid": "04dcc7d5-b387-4668-8264-d30a2da2e111",
"feature_state_value": null,
"multivariate_feature_state_values": []
}
],
"identity_overrides": [
{
"identifier": "146433",
"environment_api_key": ...,
"created_date": "2024-08-26T17:45:31.959128Z",
"identity_features": [
{
"feature": {
"id": 103972,
"name": "ipqs_geo_ip",
"type": "STANDARD"
},
"enabled": false,
"django_id": null,
"feature_segment": null,
"featurestate_uuid": "964dd1e9-b34a-4bf7-9984-937abbba3f0e",
"feature_state_value": null,
"multivariate_feature_state_values": []
}
],
"identity_traits": [],
"identity_uuid": "8fd6de03-b834-41d2-b5ec-7076d00e6cd3",
"django_id": null,
"composite_key": "cfWNJQwEQkcAiKxSPFL2rv_146433"
}
],
```

However, identity overrides are ignored unless I disable offline mode.

The root cause must be that it is updated only [here](https://github.com/Flagsmith/flagsmith-python-client/blob/56cdcc1c9f0596bb40466fd4d42c0a30fbb6633b/flagsmith/flagsmith.py#L273) when API request is made and are not loaded from offline handler [here](https://github.com/Flagsmith/flagsmith-python-client/blob/56cdcc1c9f0596bb40466fd4d42c0a30fbb6633b/flagsmith/flagsmith.py#L117).

In production, I'm also using the local file as a fallback for the case when Flagsmith is unavailable during app start, so it might become a problem in production in rare cases.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.