From 2679d87190e9502c900d750eb637e47e5dc71427 Mon Sep 17 00:00:00 2001 From: Ninja Date: Wed, 7 Dec 2022 23:48:20 +0000 Subject: [PATCH] - Add more code and tests --- ClassDiagram.png | Bin 0 -> 148959 bytes README.md | 154 +++++++++++++++--- src/FeatureOne/ClassDiagram.cd | 154 ++++++++++++++++++ src/FeatureOne/Configuration.cs | 10 ++ src/FeatureOne/Core/Stores/FeatureStore.cs | 12 +- src/FeatureOne/Core/Stores/IStoreProvider.cs | 18 +- .../Core/Stores/NullStoreProvder.cs | 10 ++ src/FeatureOne/FeatureConfiguration.cs | 9 - src/FeatureOne/FeatureOne.csproj | 4 + src/FeatureOne/Features.cs | 7 +- src/FeatureOne/IFeatureLogger.cs | 22 ++- src/FeatureOne/ServiceRegistrations.cs | 34 ++++ test/FeatureOne.Tests/FeatureOne.Tests.csproj | 4 + test/FeatureOne.Tests/FeaturesTests.cs | 6 +- .../Registeration/RegistrationTests.cs | 59 +++++++ .../Stores/FeatureStoreTests.cs | 21 ++- 16 files changed, 455 insertions(+), 69 deletions(-) create mode 100644 ClassDiagram.png create mode 100644 src/FeatureOne/ClassDiagram.cd create mode 100644 src/FeatureOne/Configuration.cs create mode 100644 src/FeatureOne/Core/Stores/NullStoreProvder.cs delete mode 100644 src/FeatureOne/FeatureConfiguration.cs create mode 100644 src/FeatureOne/ServiceRegistrations.cs create mode 100644 test/FeatureOne.Tests/Registeration/RegistrationTests.cs diff --git a/ClassDiagram.png b/ClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a83ad7ab31194598576b28bfb8a683f263f19d5b GIT binary patch literal 148959 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�SI!{^5@0@j==s7_*NbUUWrql+; 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 z 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 the logical check is evaluated at runtime against the status of toggle from store provider. +> the logical check evaluates status of the toggle configured for the feature in store at runtime. ``` -var featureName = "dashboard_widget"; // Name of functionality or feature to toggle. -if(Features.IsEnable(featureName, claimsPrincipal){ + var featureName = "dashboard_widget"; // Name of functionality or feature to toggle. + if(Features.IsEnable(featureName, claimsPrincipal){ showDashboardWidget(); } ``` -Step 2. Add toggles to the store (database or file or other medium) in order to conditionally enable/disable the feature. A `toggle` can consitute a collection of `conditions` that evaluate separately when the toggle runs. You can additionally specify an `operator` on the toggle to determine the overall success to include success of `any` constituent condition or success of `all` consituent conditions. -> Toggles run at runtime based on consitituent conditions that evaluate seperaely against user claims (generally logged in user principal). + +### Step 2. +Add `toggle` to the store (ie. a store in database or file or other medium) in order to conditionally enable/disable the feature. +A toggle constitutes a collection of `conditions` that evaluate separately when the toggle is run. You can additionally specify an `operator` on the toggle to determine the overall success to include success of `any` constituent condition or success of `all` consituent conditions. +> Toggles run at runtime based on consitituent conditions that evaluate separately against user claims (generally logged in user principal). There are two types of conditions that can be used out of box for the toggles. -- `Simple` condition - allows simple toggle to enable or disable of the feature +#### i. Simple Condition +`Simple` condition allows simple toggle to enable or disable of the feature. User claims are not taken into account for this condition. + Below is the serialized representation of feature toggle with simple condition to enable or disable a given feature. ``` { @@ -49,16 +55,17 @@ Below is the serialized representation of feature toggle with simple condition t } } ``` +#### ii. Regex Condition +`Regex` condition allows evaluating a user claim against a regex expression. -- `Regex` condition - allows evaluating a user claim against a regex expression. Below is the serialized representation of feature toggle with regex conditions to enable or disable a given feature. ``` -{ - "dashboard_widget":{ -- Feature name + { + "dashboard_widget":{ -- Feature name "toggle"{ -- Toggle details for the feature - "operator":"any|all", -- evalue overall toggle to true - -- when any condition is met or all conditions are met. + "operator":"any|all", -- evaluate overall toggle to true + -- when `any` condition is met or `all` conditions are met. "conditions":[{ "type":"Regex", "claim":"email", -- email claim to be used for evaluation. @@ -70,11 +77,12 @@ Below is the serialized representation of feature toggle with regex conditions t expression":"*@gbk.com" -- Regex expression for evaulation. }] } - } -} + } + } ``` -Step 3. Implement `IStoreProvider` interface to return all configured feature toggles from custom store. +### Step 3. +Implement `IStoreProvider` interface to return all configured feature toggles from custom store. Return a collection of key-value pairs with key mapping to `featureName` and value mapping to string representation of json serialized `toggle` ``` ///

@@ -95,28 +103,128 @@ Return a collection of key-value pairs with key mapping to `featureName` and val /// "type":"Regex", /// "claim":"email", /// "expression":"*@gbk.com" - /// }, - /// { + /// }, + /// { /// "type":"RegexCondition", /// "claim":"user_role", /// "expression":"^administrator$" /// }] /// } - /// - /// + /// + /// KeyValuePair Array IEnumerable> Get(); } ``` -Step 4. Example - IoC Container Registrations -``` -TBC .... +### Step 4. +Example - IoC Container Registrations ``` + services.UseFeatureOne(new Configuration + { + // Optional logger implementation + Logger = new CustomLoggerImpl(), + // Custom store provider implementation. + StoreProvider = new SQlStoreProviderImpl() + } +``` +How to Extend FeatureOne +-- +### Toggle Condition +You could add your own conditions by extending the `ICondtion` interface. The interface provides `evaluate()` method that returns a boolean as a result of evaluating logic against list of input claims. +``` + /// + /// Interface to implement toggle condition. + /// + public interface ICondition + { + /// + /// Implement method to evaulate toggle condition. + /// + /// List of user claims; could be null + /// + bool Evaluate(IDictionary claims); + } +``` +`Please Note` The condition class should only include primitive data type properties. +Example below +``` + public class TimeCondition : ICondition + { + // toggle to show feature after given hour during the day. + public int Hour {get; set;} = 12; // Primitive int property. + + bool Evaluate(IDictionary claims) + { + return (DateTime.Now.Hour > 12); + } + } + + -- Example toggle to allow non-admin users access to a feature only after 14 hrs. + + { + operator":"any", + "conditions":[{ + "type":"Regex", + "claim":"user_role", + "expression":"^administrator$" + }, + { + "type":"Time", + "Hour":14 + }] + } +``` +### Store Provider +To use FeatureOne, you need to provide implementation of `Store Provider` to get all the feature toggles from storage medium of choice. Implement `IStoreProvider` interface to return the key-value pairs with feature name and json string toggle. +Below is an example of dummy provider implementation. +> A production implementation should be a provider with `API` or `SQL` or `File system` backend. Ideally, you may also use caching of feature toggles in the provider implementation to optimise calls to storage medium. +``` +public class CustomStoreProvider : IStoreProvider + { + public IEnumerable> Get() + { + return new[] { + new KeyValuePair("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), + new KeyValuePair("feature-02", "{\"operator\":\"all\",\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": false}, {\"type\":\"RegexCondition\",\"claim\":\"email\",\"expression\":\"*@gbk.com\"}]}") + }; + } + } +``` +### Logger +You could optionally provide an implementation of logger by wrapping your favourite logging libaray under `IFeatureLogger` interface. Please see the interface definition below. This implementation is optional and when no logger is provided FeatureOne will not log any errors. +``` + /// + /// Interface to implement custom logger. + /// + public interface IFeatureLogger + { + /// + /// Implement the debug log method + /// + /// log message + void Debug(string message); + /// + /// Implement the error log method + /// + /// log message + void Error(string message); + /// + /// Implement the info log method + /// + /// log message + void Info(string message); + /// + /// Implement the warn log method + /// + /// log message + void Warn(string message); + } +``` \ No newline at end of file diff --git a/src/FeatureOne/ClassDiagram.cd b/src/FeatureOne/ClassDiagram.cd new file mode 100644 index 0000000..b17c4b9 --- /dev/null +++ b/src/FeatureOne/ClassDiagram.cd @@ -0,0 +1,154 @@ + + + + + + AAAAAAAAAAAAAAAAAAEAAAQAAAAAABAAAAAAAAAAAAA= + Core\Feature.cs + + + + + + + + + AAAAAAAAAAAAAAAAAAEAAgAAAAAAAAAAAAAAAAAAAAA= + Core\Toggles\Conditions\SimpleCondition.cs + + + + + + + AAAAIAAAAAAAAAAAAAAAAgAAAAAAAAAQAAAAAAAAAAA= + Core\Toggles\Conditions\RegexCondition.cs + + + + + + + AAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAIAI= + Core\Toggle.cs + + + + + + + + + + AgAAAAAAAAAAAQAAAAGAAAAAAAAAAAAAgAAAAAAAAAA= + Features.cs + + + + + + + + + + + + + + + + + + + + + + + + + + EAAAAAAAAAAAAQAAAAAAAAAAAAAgAAAAggAAAAAAAAA= + Core\Stores\FeatureStore.cs + + + + + + + + + + + + + + + + + + + AAAAAAAAAAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA= + Configuration.cs + + + + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA= + Core\Stores\ToggleDeserializer.cs + + + + + + AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAA= + Core\ICondition.cs + + + + + + AAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAIAI= + Core\IToggle.cs + + + + + + AAAAAAAAAAAAAAAAAAEAAAQAAAAAABAAAAAAAAAAAAA= + IFeature.cs + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAgAAAAAAAAA= + IFeatureStore.cs + + + + + + AAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + Core\Stores\IStoreProvider.cs + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA= + Core\Stores\IToggleDeserializer.cs + + + + + + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAEAAAAAAEAAAAA= + IFeatureLogger.cs + + + + \ No newline at end of file diff --git a/src/FeatureOne/Configuration.cs b/src/FeatureOne/Configuration.cs new file mode 100644 index 0000000..0b31a5d --- /dev/null +++ b/src/FeatureOne/Configuration.cs @@ -0,0 +1,10 @@ +using FeatureOne.Core.Stores; + +namespace FeatureOne +{ + public class Configuration + { + public IFeatureLogger Logger { get; set; } = new NullLogger(); + public IStoreProvider StoreProvider { get; set; } + } +} \ No newline at end of file diff --git a/src/FeatureOne/Core/Stores/FeatureStore.cs b/src/FeatureOne/Core/Stores/FeatureStore.cs index 7b482d3..d309b46 100644 --- a/src/FeatureOne/Core/Stores/FeatureStore.cs +++ b/src/FeatureOne/Core/Stores/FeatureStore.cs @@ -3,18 +3,18 @@ public class FeatureStore : IFeatureStore { private IStoreProvider storeProvider; - private readonly FeatureConfiguration Configuration; + private readonly Configuration Configuration; private IToggleDeserializer toggleDeserializer; - public FeatureStore(IStoreProvider storeProvider) : this(storeProvider, new ToggleDeserializer(), new FeatureConfiguration()) + public FeatureStore(IStoreProvider storeProvider) : this(storeProvider, new ToggleDeserializer(), new Configuration()) { } - public FeatureStore(IStoreProvider storeProvider, IToggleDeserializer toggleDeserializer) : this(storeProvider, toggleDeserializer, new FeatureConfiguration()) + public FeatureStore(IStoreProvider storeProvider, IToggleDeserializer toggleDeserializer) : this(storeProvider, toggleDeserializer, new Configuration()) { } - public FeatureStore(IStoreProvider storeProvider, IToggleDeserializer toggleDeserializer, FeatureConfiguration configuration) + public FeatureStore(IStoreProvider storeProvider, IToggleDeserializer toggleDeserializer, Configuration configuration) { this.storeProvider = storeProvider; Configuration = configuration; @@ -37,11 +37,11 @@ public IEnumerable GetAll() { try { - result.Add(new Feature(feature.Name, toggleDeserializer.Deserializer(feature.Toggle))); + result.Add(new Feature(feature.Key, toggleDeserializer.Deserializer(feature.Value))); } catch (Exception ex) { - Configuration.Logger?.Error($"Action='Failed to Deserialize', Feature='{feature.Name}', Exception='{ex}'."); + Configuration.Logger?.Error($"Action='Failed to Deserialize', Feature='{feature.Key}', Exception='{ex}'."); } } diff --git a/src/FeatureOne/Core/Stores/IStoreProvider.cs b/src/FeatureOne/Core/Stores/IStoreProvider.cs index 0fba2bf..3586807 100644 --- a/src/FeatureOne/Core/Stores/IStoreProvider.cs +++ b/src/FeatureOne/Core/Stores/IStoreProvider.cs @@ -10,8 +10,8 @@ public interface IStoreProvider /// /// /// Example: - /// Name - Feature-01 - /// Toggle - Json string as + /// Key - Feature-01 + /// Value - Json string as /// { /// "operator":"all", /// "conditions":[{ @@ -27,18 +27,6 @@ public interface IStoreProvider /// } /// /// - FeatureRecord[] Get(); - } - - public class FeatureRecord - { - public FeatureRecord(string name, string toggle) - { - Name = name; - Toggle = toggle; - } - - public string Name { get; set; } - public string Toggle { get; set; } + IEnumerable> Get(); } } \ No newline at end of file diff --git a/src/FeatureOne/Core/Stores/NullStoreProvder.cs b/src/FeatureOne/Core/Stores/NullStoreProvder.cs new file mode 100644 index 0000000..a7de65a --- /dev/null +++ b/src/FeatureOne/Core/Stores/NullStoreProvder.cs @@ -0,0 +1,10 @@ +namespace FeatureOne.Core.Stores +{ + public class NullStoreProvder : IStoreProvider + { + public IEnumerable> Get() + { + return Enumerable.Empty>(); + } + } +} \ No newline at end of file diff --git a/src/FeatureOne/FeatureConfiguration.cs b/src/FeatureOne/FeatureConfiguration.cs deleted file mode 100644 index c019d09..0000000 --- a/src/FeatureOne/FeatureConfiguration.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace FeatureOne -{ - public class FeatureConfiguration - { - public bool UseCache { get; set; } = true; - public TimeSpan SlidingExpiry { get; set; } = TimeSpan.FromMinutes(5); - public IFeatureLogger Logger { get; set; } = new NullLogger(); - } -} \ No newline at end of file diff --git a/src/FeatureOne/FeatureOne.csproj b/src/FeatureOne/FeatureOne.csproj index 3302866..88f8326 100644 --- a/src/FeatureOne/FeatureOne.csproj +++ b/src/FeatureOne/FeatureOne.csproj @@ -42,4 +42,8 @@ + + + + diff --git a/src/FeatureOne/Features.cs b/src/FeatureOne/Features.cs index 1045013..320c17d 100644 --- a/src/FeatureOne/Features.cs +++ b/src/FeatureOne/Features.cs @@ -8,17 +8,16 @@ namespace FeatureOne public class Features { private readonly IFeatureStore featureStore; - private readonly FeatureConfiguration Configuration; + private readonly Configuration Configuration; public static Features Current { get; private set; } - public Features(IFeatureStore featureStore) : this(featureStore, new FeatureConfiguration + public Features(IFeatureStore featureStore) : this(featureStore, new Configuration { - UseCache = true, Logger = new NullLogger() }) { } - public Features(IFeatureStore featureStore, FeatureConfiguration configuration) + public Features(IFeatureStore featureStore, Configuration configuration) { this.featureStore = featureStore; this.Configuration = configuration; diff --git a/src/FeatureOne/IFeatureLogger.cs b/src/FeatureOne/IFeatureLogger.cs index b3543c0..ac19b42 100644 --- a/src/FeatureOne/IFeatureLogger.cs +++ b/src/FeatureOne/IFeatureLogger.cs @@ -1,13 +1,29 @@ namespace FeatureOne { + /// + /// Interface to implement custom logger. + /// public interface IFeatureLogger { + /// + /// Implement the debug log method + /// + /// log message void Debug(string message); - + /// + /// Implement the error log method + /// + /// log message void Error(string message); - + /// + /// Implement the info log method + /// + /// log message void Info(string message); - + /// + /// Implement the warn log method + /// + /// log message void Warn(string message); } } \ No newline at end of file diff --git a/src/FeatureOne/ServiceRegistrations.cs b/src/FeatureOne/ServiceRegistrations.cs new file mode 100644 index 0000000..9b256ac --- /dev/null +++ b/src/FeatureOne/ServiceRegistrations.cs @@ -0,0 +1,34 @@ +using FeatureOne.Core.Stores; +using Microsoft.Extensions.DependencyInjection; + +namespace FeatureOne +{ + public static class ServiceRegistrations + { + public static void UseFeatureOne(this ServiceCollection services, Configuration configuration) + { + if (configuration?.Logger == null) + services.AddTransient(); + + if (configuration?.StoreProvider == null) + services.AddTransient(); + + services.AddTransient(); + services.AddTransient(c => configuration?.StoreProvider ?? c.GetService()); + + services.AddTransient(c => + new FeatureStore(c.GetService(), c.GetService(), new Configuration + { + Logger = configuration?.Logger ?? c.GetService(), + StoreProvider = configuration?.StoreProvider ?? c.GetService() + })); + + services.AddTransient(c => + new Features(c.GetService(), new Configuration + { + Logger = configuration?.Logger ?? c.GetService(), + StoreProvider = configuration?.StoreProvider ?? c.GetService() + })); + } + } +} \ No newline at end of file diff --git a/test/FeatureOne.Tests/FeatureOne.Tests.csproj b/test/FeatureOne.Tests/FeatureOne.Tests.csproj index 7a7aa3e..bfb3c1a 100644 --- a/test/FeatureOne.Tests/FeatureOne.Tests.csproj +++ b/test/FeatureOne.Tests/FeatureOne.Tests.csproj @@ -21,6 +21,10 @@ + + + + diff --git a/test/FeatureOne.Tests/FeaturesTests.cs b/test/FeatureOne.Tests/FeaturesTests.cs index 818ede1..023032a 100644 --- a/test/FeatureOne.Tests/FeaturesTests.cs +++ b/test/FeatureOne.Tests/FeaturesTests.cs @@ -25,11 +25,9 @@ public void Setup() store.Setup(x => x.FindStartsWith(It.IsAny())).Returns(new[] { feature.Object }); - features = new Features(store.Object, new FeatureConfiguration + features = new Features(store.Object, new Configuration { - Logger = logger.Object, - SlidingExpiry = TimeSpan.FromSeconds(10), - UseCache = true + Logger = logger.Object }); principal = new ClaimsPrincipal(new ClaimsIdentity(new List diff --git a/test/FeatureOne.Tests/Registeration/RegistrationTests.cs b/test/FeatureOne.Tests/Registeration/RegistrationTests.cs new file mode 100644 index 0000000..ef28d55 --- /dev/null +++ b/test/FeatureOne.Tests/Registeration/RegistrationTests.cs @@ -0,0 +1,59 @@ +using Castle.DynamicProxy.Generators; +using FeatureOne.Core.Stores; +using Microsoft.Extensions.DependencyInjection; +using Moq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; + +namespace FeatureOne.Tests.Registeration +{ + [TestFixture] + internal class RegistrationTests + { + private Mock storeProvider; + private Mock logger; + private ServiceProvider serviceProvider; + + [SetUp] + public void Setup() { + + logger = new Mock(); + storeProvider = new Mock(); + storeProvider.Setup(x => x.Get()) + .Returns(new[] + { + new KeyValuePair("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), + new KeyValuePair("feature-02", "{\"operator\":\"all\",\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": false}, {\"type\":\"RegexCondition\",\"claim\":\"email\",\"expression\":\"*@gbk.com\"}]}") + }); + + var services = new ServiceCollection(); + services.UseFeatureOne(new Configuration + { + StoreProvider = storeProvider.Object, + Logger= logger.Object + }); + + serviceProvider = services.BuildServiceProvider(); + + + } + + [Test] + public void TestRegistration() + { + var features = serviceProvider.GetService(); + var principal = new ClaimsPrincipal(new ClaimsIdentity(new List + { + new Claim("user", "ninja") + })); + + var isEnabled = features.IsEnabled("feature-01", principal); + + Assert.That(isEnabled, Is.True); + } + } +} diff --git a/test/FeatureOne.Tests/Stores/FeatureStoreTests.cs b/test/FeatureOne.Tests/Stores/FeatureStoreTests.cs index a483e2c..daf2cba 100644 --- a/test/FeatureOne.Tests/Stores/FeatureStoreTests.cs +++ b/test/FeatureOne.Tests/Stores/FeatureStoreTests.cs @@ -21,11 +21,11 @@ public void Setup() storeProvider.Setup(x => x.Get()) .Returns(new[] { - new FeatureRecord("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), - new FeatureRecord("feature-02", "{\"operator\":\"all\",\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": false}, {\"type\":\"RegexCondition\",\"claim\":\"email\",\"expression\":\"*@gbk.com\"}]}") + new KeyValuePair("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), + new KeyValuePair("feature-02", "{\"operator\":\"all\",\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": false}, {\"type\":\"RegexCondition\",\"claim\":\"email\",\"expression\":\"*@gbk.com\"}]}") }); - featureStore = new FeatureStore(storeProvider.Object, new ToggleDeserializer(), new FeatureConfiguration + featureStore = new FeatureStore(storeProvider.Object, new ToggleDeserializer(), new Configuration { Logger = logger.Object }); @@ -71,8 +71,8 @@ public void TestGetAllToReturnAnyDeserializedFeaturesInStoreProvideAndLogErrorsF storeProvider.Setup(x => x.Get()) .Returns(new[] { - new FeatureRecord("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), - new FeatureRecord("feature-02", "Invalid Toggle String") + new KeyValuePair("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), + new KeyValuePair("feature-02", "Invalid Toggle String") }); var features = featureStore.GetAll(); @@ -92,4 +92,15 @@ public void TestGetAllToReturnAnyDeserializedFeaturesInStoreProvideAndLogErrorsF logger.Verify(x => x.Error(It.Is(msg => msg.Contains("feature-02"))), Times.Once()); } } + + public class CustomStoreProvider : IStoreProvider + { + public IEnumerable> Get() + { + return new[] { + new KeyValuePair("feature-01", "{\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": true}]}"), + new KeyValuePair("feature-02", "{\"operator\":\"all\",\"conditions\":[{\"type\":\"Simple\",\"isEnabled\": false}, {\"type\":\"RegexCondition\",\"claim\":\"email\",\"expression\":\"*@gbk.com\"}]}") + }; + } + } } \ No newline at end of file