1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00

chore: fix typos in custom strategy guide

This commit is contained in:
ivaosthu 2018-11-23 10:25:11 +01:00 committed by Ivar Conradi Østhus
parent ab1282c1c5
commit dab134ea22
2 changed files with 15 additions and 11 deletions

View File

@ -1,39 +1,41 @@
---
id: activation_strategy_custom
id: custom_activation_strategy
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.
Even though Unleash comes with a few powerful [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.
In this example we want to define an activation strategy offers a scheduled release of a feature toggle. This means that we want the 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.
First we need to "define" our new strategy. To add a new "Strategy", open the Strategies tab from the sidebar.
![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`.
We name our strategy `TimeStamp` and add one required parameter 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.
After we 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
#### Client implementation
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.
All official client SDK's for Unleash provides abstractions for you to implement support for 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
const moment = require('moment');
class TimeStampStrategy extends Strategy {
constructor() {
super('TimeStamp');
@ -46,9 +48,11 @@ class TimeStampStrategy extends Strategy {
}
```
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.
In the example implementation we make use of the library 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:
All parameter injected to the strategy are handled as `string` objects. This means that the strategies needs to parse it to a more suitable format. In this example we make use of the [moment](https://github.com/moment/moment) library. This library makes it also very convenient to check if we have passed the date/time specified via the `enabledAfter` parameter.
We also have to remember to register the custom strategy when initializing the Unleash client. Full working code example:
```javascript
const moment = require('moment');

View File

@ -13,7 +13,7 @@
"database_schema",
"database_backup"
],
"Guides": ["guides/google_auth", "activation_strategy_custom"]
"Guides": ["guides/google_auth", "guides/custom_activation_strategy"]
},
"api": {
"Client": [