From 1600af39dc510e21e8dfb5f802a68f873dc026d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Thu, 22 Nov 2018 21:30:05 +0100 Subject: [PATCH] chore: Add documentation for custom strategies closes #338 --- docs/acitvation-strategies-custom.md | 80 ++++++++++++++++++++++ docs/assets/timestamp_create_strategy.png | Bin 0 -> 30001 bytes docs/assets/timestamp_use_strategy.png | Bin 0 -> 34563 bytes website/sidebars.json | 4 +- 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 docs/acitvation-strategies-custom.md create mode 100644 docs/assets/timestamp_create_strategy.png create mode 100644 docs/assets/timestamp_use_strategy.png diff --git a/docs/acitvation-strategies-custom.md b/docs/acitvation-strategies-custom.md new file mode 100644 index 0000000000..38accebc44 --- /dev/null +++ b/docs/acitvation-strategies-custom.md @@ -0,0 +1,80 @@ +--- +id: activation_strategy_custom +title: Custom Activation Strategy +--- + +Even though Unleash comes with a few powerful [build in activation strategies](activation-strategies.md) there might be scenarios where you would like to extend Unleash with your own custom strategies. + +### Example: TimeStamp Strategy + +In this example we want to define an activation strategy where we want a feature toggle to be activated after a given date and time. + +#### Define custom strategy + +First we need to "define" our new strategy. You can do that under the "Strategy" section the the Unleash Admin UI. + +![timestamp_create_strategy](assets/timestamp_create_strategy.png) + +We name our strategy `TimeStamp` and add one required paramter of type string, which we call `enableAfter`. + +#### Use custom strategy + +After we have have created the strategy definition, we can now decide to use that activation strategy for our feature toggle. + +![timestamp_use_strategy](assets/timestamp_use_strategy.png) + +In the example we want to use our custom strategy for the feature toggle named `demo.TimeStampRollout`. + +#### Client implemenation + +For the clients to understand the new custom strategy we need to implement the logic to understand the new custom strategy. All official client SDK's for Unleash provides abstractions for you to implement your own custom strategies. + +> Before you have provided support for the custom strategy; the client will return false, because it does not understand the activation strategy. + +In Node.js the implementation for the `TimeStampStrategy` would be: + +```javascript +class TimeStampStrategy extends Strategy { + constructor() { + super('TimeStamp'); + } + + isEnabled(parameters, context) { + const enableAfterTimeStamp = moment(parameters.enableAfter); + return moment().isAfter(enableAfterTimeStamp); + } +} +``` + +In the example implemenation we make use of the libarary called moment to parse the timestamp and verify that current time is after the specified `enabledAfter` parameter. + +We also have to remember to register the custom strategy when initalizing the Unleash client. Full working code example: + +```javascript +const moment = require('moment'); +const { Strategy, initialize, isEnabled } = require('unleash-client'); + +class TimeStampStrategy extends Strategy { + constructor() { + super('TimeStamp'); + } + + isEnabled(parameters, context) { + const enableAfterTimeStamp = moment(parameters.enableAfter); + return moment().isAfter(enableAfterTimeStamp); + } +} + +const instance = initialize({ + url: 'http://unleash.herokuapp.com/api/', + appName: 'unleash-demo', + instanceId: '1', + strategies: [new TimeStampStrategy()], +}); + +instance.on('ready', () => { + setInterval(() => { + console.log(isEnabled('demo.TimeStampRollout')); + }, 1000); +}); +``` diff --git a/docs/assets/timestamp_create_strategy.png b/docs/assets/timestamp_create_strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..67e5332867cb15d83c3fe2f8201e6550049817ff GIT binary patch literal 30001 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 B7Bv6> literal 0 HcmV?d00001 diff --git a/docs/assets/timestamp_use_strategy.png b/docs/assets/timestamp_use_strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..3e92644ec4f031e9d5508fbadfb9ba11b370269d GIT binary patch literal 34563 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 YBk<$u_|(^n@Ed`IsLZ2m;peaa1NC?gO8@`> literal 0 HcmV?d00001 diff --git a/website/sidebars.json b/website/sidebars.json index 27993126bd..11fff22faf 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -1,6 +1,6 @@ { "documentation": { - "Getting Started": [ + "User Documentation": [ "getting_started", "securing_unleash", "unleash_context", @@ -13,7 +13,7 @@ "database_schema", "database_backup" ], - "Guides": ["guides/google_auth"] + "Guides": ["guides/google_auth", "activation_strategy_custom"] }, "api": { "Client": [