diff --git a/flags/metadata-flags.json b/flags/metadata-flags.json index 0a2b8c6..5297348 100644 --- a/flags/metadata-flags.json +++ b/flags/metadata-flags.json @@ -23,6 +23,21 @@ "external" ] } + }, + "metadata-flag": { + "state": "ENABLED", + "variants": { + "true": true, + "false": false + }, + "defaultVariant": "false", + "targeting": {}, + "metadata": { + "string": "a", + "integer": 1, + "float": 1.2, + "boolean": true + } } } } diff --git a/flags/selector-flag-combined-metadata.json b/flags/selector-flag-combined-metadata.json index 57246f4..6f060a3 100644 --- a/flags/selector-flag-combined-metadata.json +++ b/flags/selector-flag-combined-metadata.json @@ -14,6 +14,15 @@ "float": 1.2, "boolean": true } + }, + "only-set-metadata-flag": { + "state": "ENABLED", + "variants": { + "true": true, + "false": false + }, + "defaultVariant": "false", + "targeting": {} } }, "metadata": { diff --git a/flags/selector-flag-metadata.json b/flags/selector-flag-metadata.json deleted file mode 100644 index 3fccde3..0000000 --- a/flags/selector-flag-metadata.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "flags": { - "metadata-flag": { - "state": "ENABLED", - "variants": { - "true": true, - "false": false - }, - "defaultVariant": "false", - "targeting": {}, - "metadata": { - "string": "a", - "integer": 1, - "float": 1.2, - "boolean": true - } - } - } -} diff --git a/flags/selector-flag-set-metadata.json b/flags/selector-flag-set-metadata.json deleted file mode 100644 index da917cc..0000000 --- a/flags/selector-flag-set-metadata.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "flags": { - "set-metadata-flag": { - "state": "ENABLED", - "variants": { - "true": true, - "false": false - }, - "defaultVariant": "false", - "targeting": {} - } - }, - "metadata": { - "string": "a", - "integer": 1, - "float": 1.2, - "boolean": true - } -} diff --git a/gherkin/metadata.feature b/gherkin/metadata.feature index c8bb1d5..cdbd9e3 100644 --- a/gherkin/metadata.feature +++ b/gherkin/metadata.feature @@ -6,8 +6,7 @@ Feature: flag and flag set metadata # It should be used in conjunction with the suites supplied by the OpenFeature specification. Scenario: Returns metadata - Given an option "selector" of type "String" with value "rawflags/selector-flag-metadata.json" - And a stable flagd provider + Given a stable flagd provider And a Boolean-flag with key "metadata-flag" and a default value "true" When the flag was evaluated with details Then the resolved metadata should contain @@ -18,20 +17,24 @@ Feature: flag and flag set metadata | boolean | Boolean | true | Scenario: Returns flag set metadata - Given an option "selector" of type "String" with value "rawflags/selector-flag-set-metadata.json" - And a stable flagd provider - And a Boolean-flag with key "set-metadata-flag" and a default value "true" + Given an option "selector" of type "String" with value "rawflags/selector-flag-combined-metadata.json" + And a metadata flagd provider + And a Boolean-flag with key "only-set-metadata-flag" and a default value "true" When the flag was evaluated with details Then the resolved metadata should contain - | key | metadata_type | value | - | string | String | a | - | integer | Integer | 1 | - | float | Float | 1.2 | - | boolean | Boolean | true | + | key | metadata_type | value | + | string | String | b | + | integer | Integer | 2 | + | float | Float | 2.2 | + | boolean | Boolean | false | + | flag-set-string | String | c | + | flag-set-integer | Integer | 3 | + | flag-set-float | Float | 3.2 | + | flag-set-boolean | Boolean | false | Scenario: Flag metadata overwrites flag set metadata Given an option "selector" of type "String" with value "rawflags/selector-flag-combined-metadata.json" - And a stable flagd provider + And a metadata flagd provider And a Boolean-flag with key "combined-metadata-flag" and a default value "true" When the flag was evaluated with details Then the resolved metadata should contain diff --git a/launchpad/configs/default.json b/launchpad/configs/default.json index f0fbb32..484d2be 100644 --- a/launchpad/configs/default.json +++ b/launchpad/configs/default.json @@ -7,18 +7,6 @@ { "uri": "rawflags/selector-flags.json", "provider": "file" - }, - { - "uri": "rawflags/selector-flag-metadata.json", - "provider": "file" - }, - { - "uri": "rawflags/selector-flag-set-metadata.json", - "provider": "file" - }, - { - "uri": "rawflags/selector-flag-combined-metadata.json", - "provider": "file" } ], "context-value": { diff --git a/launchpad/configs/metadata.json b/launchpad/configs/metadata.json new file mode 100644 index 0000000..ccb0f90 --- /dev/null +++ b/launchpad/configs/metadata.json @@ -0,0 +1,8 @@ +{ + "sources": [ + { + "uri": "rawflags/selector-flag-combined-metadata.json", + "provider": "file" + } + ] +} diff --git a/launchpad/configs/ssl.json b/launchpad/configs/ssl.json index 5e306dd..550c2a7 100644 --- a/launchpad/configs/ssl.json +++ b/launchpad/configs/ssl.json @@ -9,18 +9,6 @@ { "uri": "rawflags/selector-flags.json", "provider": "file" - }, - { - "uri": "rawflags/selector-flag-metadata.json", - "provider": "file" - }, - { - "uri": "rawflags/selector-flag-set-metadata.json", - "provider": "file" - }, - { - "uri": "rawflags/selector-flag-combined-metadata.json", - "provider": "file" } ], "context-value": {