Skip to content

[BUG - OFREP] Flag Metadata not working (parsing issues) #522

@askpt

Description

@askpt

Observed behavior

When I am trying to retrieve some values from Flag Metadata, it seems it is not working correctly. Please check the code examples attached in the steps to reproduce.

Image

In this case, when you try to do a Get operation, the result will always be null, even if there are values in the dictionary.

Expected Behavior

It should be possible to retrieve the values from Flag Metadata.

Steps to reproduce

  • flagd flag definition:
{
    "$schema": "https://flagd.dev/schema/v0/flags.json",
    "flags": {
        "show-welcome-banner": {
            "state": "ENABLED",
            "variants": {
                "on": true,
                "off": false
            },
            "defaultVariant": "off",
            "metadata": {
                "expireDate": "2015-12-01",
                "author": "admin",
                "numberOfViews": 100
            }
        }
    }
}
  • docker compose:
services:
  flagd:
    image: ghcr.io/open-feature/flagd:latest
    volumes:
      - ./flags:/flags
    command: ["start", "--uri", "file:./flags/demo.flagd.json"]
    ports:
      - "8013:8013"
      - "8016:8016"
  • sample for ofrep
#:package OpenFeature.Providers.Ofrep@0.1.3
#:package OpenFeature@2.9.0
#:property PublishAot=false
using OpenFeature;
using OpenFeature.Providers.Ofrep;
using OpenFeature.Providers.Ofrep.Configuration;

// Configure the provider
var config = new OfrepOptions("http://localhost:8016");

// Create and register the provider
var provider = new OfrepProvider(config);
await Api.Instance.SetProviderAsync(provider);

// Use feature flags
var client = Api.Instance.GetClient();

// Boolean flag
var boolFlag = await client.GetBooleanDetailsAsync("show-welcome-banner", false);

var date = boolFlag.FlagMetadata.GetString("expireDate");
var author = boolFlag.FlagMetadata.GetString("author");
var numberOfViews = boolFlag.FlagMetadata.GetInt("numberOfViews");
var numberOfViews2 = boolFlag.FlagMetadata.GetString("numberOfViews");

Console.WriteLine($"Boolean Flag: {boolFlag.Value}");
Console.WriteLine($"Expire Date: {date}");
Console.WriteLine($"Author: {author}");
Console.WriteLine($"Number of Views: {numberOfViews}");
Console.WriteLine($"Number of Views 2: {numberOfViews2}");

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingprovider:OFREPIssues related to provider OFREP

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions