Skip to main content

Features

In Izanami, feature flags are just called "features" for the sake of simplicity.

Boolean features

Boolean features can only take two values: true or false (active or inactive).

In this section, we'll see how Izanami allows to define flexible boolean features, that can be activated based on time, user or both.

Feature activation

Two elements are used to decide if a feature is active:

  • Feature status: enabled / disabled
  • Feature activation conditions

If a feature is disabled, then this feature is not active, regardless of activation conditions.

If a feature is enabled, activation conditions are used to compute feature activation.

If you just want an on / off feature, don't define any activation condition. In this scenario, feature activation is deduced from feature status (enabled -> active, disabled -> inactive).

A feature can have 0, 1 or more activation conditions, however only one of them need to match to make the whole feature active.

A condition is composed of one time rule and/or one user rule. Possible rules are detailled below.

If both rule are defined, both need to be active to activate condition.

There is a logical "OR" between activation conditions. Inside a condition, there is a logical "AND" between time and user rules.

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bW1PbyFx1MDAxMn7nV7g4r2F2pue+L6dcdTAwMDImQMItXHUwMDA0SLJnt7aELbBcdTAwMGVCMpa4mK3899MjwJIlyzbBXHUwMDA2c3ZVLrCl0Uxrpr/ur3tafy01XHUwMDFhy2m/6y//2lj2b1teXHUwMDE4tHvezfI7d/7a7yVBXHUwMDFj4SXIfifxVa+VteykaTf59Zdf8jtIK764v8tcdTAwMGb9XHUwMDBiP0pcdTAwMTNs91x1MDAxZvzdaPyV/S2M01x1MDAwZbyLOGpnzbNcdTAwMGL5QFxmoHx2N46yQZlgwCXn2lx1MDAwZVpcdTAwMDRJXHUwMDEzR0v9Nl4+9cLEz6+4U8uwXHUwMDFlJSv+nrCbcXhcdTAwMTd/+tY/XHUwMDEyN0E+7GlcdTAwMTCGX9J+mFx0lcT4IPm1JO3F5/7XoJ12XHUwMDFln79wvu6uXnx11on8xD08XHUwMDFinI27XitI++5cdTAwMWOlg7NedJb1kZ+5xV+WW8JcdTAwMTRXVlkhXGbIwcXsdsYk0UIqJbmQVEFZrrU4jHtOrn8xq1lcdTAwMGJyyU681vlcdTAwMTmKXHUwMDE3tfM2p9mRt7l5fFrOXHQvXHUwMDFlYtCk41x1MDAwN2ed1LVhlmjJqVFcdTAwMDKHwmXJJfGz9WCWgVIoRb5cXG787lY704w/8lXoeVx1MDAxN/6WuyW6XG7D4lRG7YepfNSgXFyH4OHMj/xcdTAwMDFd+/Wy7lx1MDAxNfVvSFx1MDAwN1P/Nlx1MDAxZDx5QWV+27lsr653Op917+jrl61+5889tro8aPfj3ehu729utb7vXHUwMDFld0+/JZ3VpHcjdlx1MDAwZSRnN8OjPI7v9XrxzbT9qlx1MDAwYlxi9d7J9vbd973e7blvgV7uT9fvw7d8uq+6be9cdTAwMWUxTDNqpNFcdTAwMTREQc/CIDovr0VcdTAwMTi3znOQLVx1MDAxNVx1MDAwNK5ge2heXHUwMDBiwOamXHUwMDE216jpVFx1MDAxOU7Z1LhcdTAwMWW9SFx1MDAwYo1rRlx1MDAxOSXKXHUwMDAx21x1MDAwMOLbUlNCtjGEXHUwMDE5brGBpHjIuSDbOlx1MDAxOfC4N6WSqSqwtSwjmVx1MDAwYjS6XGbNzvOBPHShgthZKmkuVVx1MDAxY6VfgrvMaNChs1x1MDAxZryLIOxcdTAwMGataKa9OIFbSeP36NT30quej9/8yDtcdP1249/LQy3fh8FZlOFcdTAwMWWfwO9ccql9XHUwMDFhoGdcdTAwMWM0uFxi2m1UikGDXHUwMDE2XHUwMDBl71x1MDAwNZHf25rGT8W94CyIvPAwl+5Rtlx1MDAxMZLh3Pibj6vJXGLIsXi9t1x1MDAxNyNcdTAwMDArhSifXHUwMDFkIFYqYOhcdTAwMTX01IBcdTAwMWRvXHUwMDE4X1x1MDAwMbB2XCJemeZEWEXBclx1MDAwZTJ/1P49S5FcdTAwMGVI6KyNlMaALomVI1x1MDAxMU6tL8TPoZVRIFRcYmqp1ZqjgVx1MDAxY+GHmZKEolx1MDAxZrZMXCJbsEZUXHUwMDFkMVx1MDAxM0ppLV/NXHUwMDExj4E1XHUwMDFhOy1NUXWnhXWSer10NYjaQXQ2LNhcdTAwMDP/nFx1MDAwNlmZIWhdOSlXKE61loIzXHUwMDAzVjFpXHUwMDE1h0KzM6/rpK48rFx1MDAxZrWnXHUwMDEwXCI4h32WfvxcdTAwMWNs362mx+tBbz9sLld65yiBotQwQHdcIkFwPUJOSnDikP5RQI1Ar4GUsFwiVOgl6Vp8cVx1MDAxMaQ42ftxXHUwMDEwpeVJzWbvvYN+x/cqK45cdTAwMGZVvFa2XHUwMDExXdfjMMXKvzVyXHUwMDFjZT9cdTAwMDbf/3g3srVhXHUwMDA0fVx1MDAwYpWUXHUwMDAzUoChZ27gjChprFx1MDAwNoFPK62lVEzqrlx1MDAxZTLZ1VxuWPL+lor/n8puXG6OtGQrOdNg0HnlXHIm2sr47HBn7aDJr06aQeez+rZ2vFx1MDAwYottK0FcdTAwMWFimdKGcyWkNnkv99zGXHUwMDAyXHUwMDAxY4yWgNyHSlVcdTAwMTJsNtaSXHUwMDAzYS5YkYxxXHSS5+YuXHUwMDBmWircXHUwMDA2KIZUXHUwMDE4vlx1MDAxNMzmi5JcdTAwMWJqMEhcdTAwMTKcKp5P6bzJzXc/qeExoX+ajmExadytozBDwpb5ytCAM6InQrDy2Vx1MDAwMT3hlFx1MDAxYqGLrnBcdTAwMTLmxlx1MDAwN1iLiDnLMV5QXG6UlsqI0Vx1MDAwNFx1MDAwNdsogeGEtfX8xKeccfaT0YQgXHUwMDBlPkh/jDZcdTAwMTZd+lxiesJcdTAwMDQxXFxcdTAwMDBohW0whqhGXHUwMDE3klx1MDAwM0U7PVx1MDAwM1x1MDAwMM6Fndii5r5cdTAwMTY7Qa/PgGqca4aSIU9RhUbP4iY7zVx1MDAxZC43Vz59+66PzjdiuDW+ulx1MDAxZC1cdTAwMDJFcoLmVWlcXCxcXE90n1UhNDFcdTAwMTjpKlx0XHUwMDE2l5tLId80OVmp1XB3WGKstFKhXHLHsFx1MDAxZKid2J1cdTAwMTGEWytBo4tSYHIwuKNcbpUnkpOe30rvjcUohjKGolxiVC75lLzqeKVZyPyLXHUwMDA2RdDOICe0hlx1MDAxOVx1MDAwNbm5ye7nyGA4R1KoLddKSl5cdTAwMTJsNlx1MDAwNlx1MDAxM2eZXGYypvhlRPol01x1MDAwMiZcdTAwMWU/spBcdTAwMTV7NJgopstcdTAwMWblNn2GXHUwMDA285FcdTAwMTDPPK9qt3zvtHeysfNx66Cz0kzuPkfnL5H/XHUwMDFj2+/Kp5Om+XquvKOweaM6yUdxSO/eVl5cdTAwMTXGbJhotNiCXG47PVx1MDAwZlx1MDAxYb1Ki1xybCGdZ1JcdTAwMTSJXHUwMDBlRlx1MDAxZbZEhFx1MDAwNOVcdTAwMDRcbjsm82FCwCThLrGKq85w/Y2pXCK7XHUwMDFhfDCnXCLoQfjfKLP64SFxXHUwMDE5JI0oTlx1MDAxYl4rXHKu/Zpw5Llp1Vx0bqpcdTAwMWOmTFx1MDAxMO1pgUstXmvDXHUwMDE2pHWOXHUwMDFjiFx1MDAxYzqT0HpwvN47/vP91rn6mFxcXHUwMDFmNu0+xr7fXHUwMDE2OmpBykNcdTAwMDDjM21cdTAwMTXSJl1IMT8kXG5cdTAwMDTR0iCEUCmpXHUwMDE2c1x1MDAwMisn1iVcbkAgj+WaXHUwMDE39lrGZVxutJFWWZY/9/99omA3ftk8QXG8p6FtTEVcdTAwMDEqUlx1MDAxZOKk1lx1MDAxYVx1MDAxZKR9QkHB2EzuQvpHXHUwMDE3MFx1MDAxMrBW4Idxi56yxHwtJ1x1MDAxMjhigVx1MDAwMVx1MDAxOHSXtZh7zsYjoo1QjFx0lUTM4ZdRyTnFiC2WXHUwMDE0VFx1MDAxMKiEXHUwMDE2is6F9/50PcG8Nv4n8enw/cbOxiexu3HbOlpb+TPdV3diY+o6hVx1MDAwM9DR5vX5bnfztnUl4p2Tzfi3f/j0vX+uzytcdTAwMDJcdTAwMDaHlksxvb1cdTAwMTi9SottL4BqwqhGm4D+TtlypCyMJpRpwOUwQ6VBszRcdTAwMTeMXHUwMDBiXCKyyiMuqUTHO2Lns1qowNBHovWAWYTGb4VPN2M/acSR34hPXHUwMDFiv0dpx2+gw21cdTAwMDcp6i3+vvDSVmd+ZVx1MDAwYuO9Ydm9XHUwMDE3RVx1MDAxZFx1MDAxNrRcIuaMNlx0dD3bZoaDVJzrfKYnbsyNtZqLSLeZXHUwMDEwjLhcdTAwMWFcdTAwMDWMSFx1MDAxNVx1MDAxN6BLvl9cdTAwMDJcdTAwMTCdJZrAKs2g3vc/Z2POWGKtQnBcbuBIQMSI2NgywjD+0VZQXHRmSJBcdTAwMDdouy1Us2i7XHUwMDA0zyTl0+5cdTAwMTJMKlx1MDAxZijWMGgqXHUwMDE1gMLJXHUwMDE2XHUwMDE0f9hCs/tcdTAwMTQ98jDKlWKo+i7T/JPbXHUwMDA2bS/YS1x1MDAwZU7ew9rK+lx1MDAxZbuOXHUwMDA1P+zdjJLJiYS8zyVnLFPcXGJcdTAwMThRViEwIFNcdTAwMWFcdChFLUBcdTAwMTVcdTAwMTBcdTAwMTWh3tKugUFQMeXyblx1MDAwNrSr9SvezYmmfPBRVvKJ3dXBx1x1MDAxZFx1MDAxNeDkvS1cdTAwMTX/P9l0KlZcdTAwMWI2MYnhs0QwTl//NZ5cdTAwMTgupOlk1Fx1MDAxMmms4I7zof5WTCdGVeBoXHUwMDEyzkQhgpztdlx1MDAwMXN7vFS79eV2ZLmmK3hcdTAwMTHKulxyXGZnXCItrbBcIuG2pqidRfnm29tgndZ0UlwiqKLIeNHFoF00XHUwMDA1XG5XsJxu245pvGrQUCla3dyc9ZYrQppaaykwLYTAXHUwMDAwuGo7XHUwMDE5QfduXFz5lOKubsxWhHpLtnNcdTAwMDU1g+S2k2LEX7xfWuSCdvDhcmJ/9Vx1MDAxOMouXHUwMDBiTqCQl9BPNJ91UaSor3bnOJSrMHxcdTAwMDLvVNur/e+X9LLr71x1MDAxZXtcdTAwMWJh/7ZcdTAwMTP3XHUwMDE32niiNydcbi2OYlxmnVx1MDAxNv4r2U6JXHUwMDFl0rhcYlx1MDAxMldcdTAwMTn1u/4tlldI82Loa5Gk0Fx1MDAxOVTL/pPnfdCcmeV5x5Y4XHUwMDAwq61YR1tcdTAwMDLSbbVNXHK68Vx1MDAwNHcxMzfI+Fx0d6+XMG2U0KaUuVFIWdDlupJaylxy1/MpWp9JjYNcdTAwMDJcZlx1MDAxNtDtzYWzzK3GwWzoXHUwMDBm/uVcdNDWYT8+WO9cXFx1MDAxZtxsfX2BnOyjq6onWi/0jldevV3Zalx1MDAwMXAvXHSa6VOnoydzwVx1MDAwMSgocaVUyqDnXHUwMDAzxUsxXHUwMDAzhrjEbTkpZGpcZkT9K17PemlcdTAwMDRcdTAwMDdR7lxyMqRcdTAwMThcXLpXdaZxe0y7Slx1MDAwNPQ+r+T2XrlcdTAwMTRhrmVcYlx1MDAxM1xcyZgyhDmVINRWXHUwMDAyMio1Olx1MDAxMFDT1yB80CdHfOe/l3x9Y3tNNrfvZLpyvNDkXHUwMDE0/VxyXHUwMDA2VkJbdIXAOaWlXCJcdTAwMDRhgChDXeaGXHUwMDFiauo3OF78ZVx1MDAwNaal4Uqje//7cNOFfFlh6cHZLnvd7pdcdTAwMTTnZ8Azlq9cdTAwMDP/ZrVeXHUwMDExllx1MDAxZeDqgOFn9OTH0o//XHUwMDAxVlTb5SJ9Is feature enabled ?YesFeature is not activeNoDoes one of the condition match ?NoFeature is activeYes
Feature activation decision tree

Below schema givena an example of feature that define several activation conditions.

Conditions are used here to progressively activate feature for all users, while keeping feature active for two "admin" users: Alice and Bob.

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daXPiyLL9Pr/C0S9uxHtcdTAwMTFjTVVlLVnzXHIvXHUwMDE4t3fwXHUwMDA2N244MIjdrLLB3Jj//rJwt8Gy1Vx1MDAwNlx1MDAxYdqiTc/StiSgkPLUOblU1n//2Nj4XHUwMDEyPLb9L39vfPFcdTAwMDeFfKNa7Ob7X/50x1x1MDAxZvxur9pq0ikx+r3Xuu9cdTAwMTZGV1aCoN37+6+/xq/wXG6tu6dX+Vxy/85vXHUwMDA2Pbru3/T7xsZ/R/+f+JyuX1xi8s1yw1x1MDAxZr1gdGr8UVJi+Ohxqzn6WG5cdTAwMDTTXFwqq56vqPZ26PNcdTAwMDK/SKdL+UbPXHUwMDFmn3GHvlx1MDAwNMlcdTAwMGVcdTAwMGXKyZy4XHUwMDFlnN/r4/1cdTAwMWOH0/r4Y0vVRiNcdTAwMTM8NkbD6rXoq4zP9YJuq+5fVYtBxX126HjUq7qt+3Kl6fd6L17TaudcdTAwMGLV4NFcdTAwMWRj7Pno0z34e2N8ZEC/oWKe1lZcdTAwMWJAoyWI55NPL0fjaTquhVBKcFx1MDAxMVx1MDAxYdZ2q9HqumH9XHUwMDBmt4ZcdTAwMTfEeGC3+UK9TKNrXHUwMDE2x9f41i/4pfE1/W9fXHUwMDE2gXtKM6FcdTAwMTWCNMDM81x1MDAxNVx1MDAxNb9arlx1MDAwNHSJQeFJQI6gXHUwMDA1ILLxQ+v5o6chmEUupVXjb+c+vr1fXHUwMDFjWcZ/xs+gm7/z991LmveNxuSNbFx1MDAxNr/dyFx1MDAxNydu3YndXHQjXHUwMDFiv9V9u5h/slx1MDAwNW7oTilEXHIg4fl8o9qsh9+u0SrUx+YzOvrPn3PYLVc8ym6FMXSXtLJTm61/gNu5bT3of+2wZFx1MDAwZm/VYSXFYm62iFx1MDAxZVx1MDAxN1x1MDAxYyyzZLxswmZGr+eAnuaabEkg/SvDXHUwMDAzm81wS6M/r1xyXHUwMDE3XHUwMDA0epYs1mHHKCPgteFcdTAwMDJTXHUwMDFlU5IrXHUwMDBi1pB1glxmW65cdTAwMDRrXHUwMDE1Sil+3nC/m9DYiODbkX/mtGcmOVuUPVx1MDAwN/4geMuUNURZspaMSSWEntqSXHUwMDBmMlubeVx1MDAwYvleut2s90/vL7PJxO5HWrJ915AteFJK7r4rmfIrQ+bgMZqfLf0nUf3cXGZcdTAwMWN0881eO9+lR//amLnlZKmMMTJZTtaMr41ZqLDxcklcdTAwMTNcdTAwMWWisVx1MDAxZjTtMlx1MDAxNJpuXHUwMDFlXHUwMDAzLWcw0/GoWs0gU1x1MDAxZI5mTfbiaDJ/V208vnioI/ulu5goXHUwMDA01Yd8QHa6UWg1i1X305dcdTAwMTdXJVx1MDAxYdWys+wvXHK/9NLkgyopmOfTQas9PkvvXHUwMDE15KtNv/v6LrW61XK1mW+cTzVcdTAwMDL6/n7q+yPjnlDzs1xm8UikOqIpjbSDVWODfVx1MDAwZpyNo27qtF9Wg4NyrpWwN4VOJ52KN81wXHUwMDEw0vFcZlNGabpcdTAwMWPGXGJ45lx1MDAxOU64RJKJXFxYXGJccuxcdTAwMTfSjPWMdFxmo0mmKTsxTTxcdTAwMDHVgiBIXHUwMDBiWFx1MDAwME5Xk2VIXHUwMDA3RFx1MDAwYn1gKK2eoOD3TNlkXHUwMDFmTju1m0Hz1tTTfjZ1cle63Yo1z5AlW1wiXHUwMDFhQGCacWYnhMg3olx1MDAxMZ6yVlx1MDAxOJIj9EjiRTNWXHRNxs/XLDNx1SqxjLv6LVTa8LFnTFrLjVx1MDAwNDVcdTAwMDMmu7vZ8/Q9PtaaJ7VKPlx1MDAxNVx1MDAxY5+K64d4Y1JY5jEkbVx1MDAwN8CZXHUwMDA0XHUwMDFlXHUwMDEyf8DdxE/yj1SwXCJcdTAwMTZYXHUwMDFlKI0nrFaktYnoOPlLY/w/o3I89G+gJK+L2MYswuN+TSliXkr5Saz2gnw32KqSuTfL4Zf4zWLEmUa+XHUwMDE3bLfu7qpcdTAwMDFccuO0VW1cdTAwMDbhK0bvm+h2W/2Kn391L+idI8+13duNw1vuz/injfFjXHUwMDE5/fL883/+fPPq6Fx1MDAwN1x1MDAxZHr5XHUwMDFmk3/PimrNwlx1MDAwN589Olx1MDAxMoxWWjE9qlx1MDAwYtuZo+Ovl7Ujv1Qt7tXuXHUwMDFld64z2ZijWlx1MDAxOI9cdTAwMWJjNLn9JFxmQ5LRgZpLQrTUoIDrJXp086CaIzmb9Fx1MDAxNSYuXsP6c8H6x1x1MDAwMXOIXGaYXHUwMDBi0nTGklx1MDAxYjJ+RO+h++7iVqTrnTRcdTAwMWXe9NnXg2p55z6VWCi6i/lexV8kvK2L6Fx1MDAxOVx1MDAxON1nTX+Pb8dcYt6CXHUwMDE5z1xiYnSFdNXydLRA8IQhJY9cdTAwMWO0XHUwMDFizHiaeVx1MDAwNrdcdTAwMDLPMvJcdTAwMDZJPoPVXHUwMDAyx2rrO9hcdTAwMTVaXHUwMDAyvFxchLBeoFs4XHUwMDFm2H9o05FuYTRXXHSiKY3WsKmt2SRNTnUu9KDWyO9v1Tf7pW77MObWTF4hV2SwUlvOJnNdj9+pTIqRV6iAPDa1PHtcdTAwMDb0XHUwMDE0XHUwMDAyqVxcIVxyM+yNIId4TVZcdTAwMWGVXCJcdTAwMWaSLSB4/rGOIdcvjr7nXHUwMDE4+lx1MDAxYqVu626D8b/oX8GE3MBcbrBcdTAwMGbwXHUwMDBm31x1MDAxYshsbmJcdTAwMTRKOURcdTAwMDdvXHUwMDA0WaY2fGJcdTAwMWV+XHUwMDBmpnT53YlcdTAwMGVyj1x1MDAxZMzoq9J94343UYu1pLREKmCRXHUwMDE4hSOS2YVjN0Z7gFx1MDAxYVxmwdVN+MtjXHUwMDFk8ldcdTAwMDVcdTAwMTBIrTHipY7/UZJAaeJKJj9TkuC8eudvdO8nNdSvwORcdTAwMWJcdTAwMWa7wHSA4pFJZzI/48J60zt2R5XKQCaGg/pxNZ3N3iRrUK/amJMlQ8JcdTAwMTl3Opv0n7RjPfXk2Wn0pFwiSciIMdHIJZLlXCLEXHUwMDFmMFx1MDAxMFxullx1MDAxNL9ZXHUwMDA17Vx1MDAwNzYy82xcdTAwMTg9QeAzZJ4vXG63eJpMXZxcZnvHW92H+2Ilw77G3JyV8uhOM5f84JpcXLeQOaPykDHJR6LMLs+aOVx1MDAxMru5lICmx66ILd5ildfaz1x1MDAxYXpC5GItIFCxatqv1d1Q/9polTbue2S3XHUwMDFmI/uixrBcdTAwMTjFJ4RcZlx1MDAxZv2OTUnOXGLNWjg91Vxc7Mr0eVtcXO3Z/fOgX+5ov6eTsVx1MDAxN3xcdTAwMTKZJlx1MDAwMydcdTAwMTdcdTAwMWQmgnFP0Fx1MDAwNO1cdTAwMTHBoFx1MDAwMm4lOfDLwyZcdD6aXHUwMDFkrEVpJFx1MDAxN1x1MDAxM/z/XHUwMDAzvadBKiXZRKBoRYE5vdy7IFxmfIDce+NjXHUwMDE3XHUwMDAzP1x1MDAxYok+wZkhXHUwMDFmhJnp/a3bvjy5qp2L87Pri8zd3aXJVtNcIt7UyJkg8rOW5JFUgCBD3CgsXHQwwlx1MDAwNFrNiUbN8oL44D5cYmaMi1x1MDAwMLOgtLIrj8BcdTAwMTmo8XjnXHUwMDE38+DkXHUwMDA3LiZcdTAwMWI+qeNf1agocu5cdTAwMDHt9LDLXHUwMDE1zk72XHUwMDEzN7vX3Urb5tJ8V1xc80qsWY+0qPDIsVx1MDAxMsRcdTAwMWZcdTAwMDQ8hFBsnTxcdTAwMTZSpNpcbkZcdTAwMDDU4ueqelx1MDAxN586XHUwMDEzo1HRINdcdTAwMTnxz5o6i0S2inQ1iUolkoSbQc9uZnrt8+vj5LWod1x1MDAxZa5cdTAwMTOFXHUwMDAyaz/cxlx1MDAxY9lcdTAwMWE8yThcdTAwMDf9lPVcdTAwMWXfjmdka8e0dFxyWK5kaGBcdTAwMWaNbKOZIDd1XHUwMDAxfLpcdTAwMDb2Slx1MDAwMvvHOXFcdTAwMWKZXHUwMDEzl9ZcdTAwMThkMENKXHUwMDFjUru9rVYhXeTFvZ1O41x1MDAwMZL15EHM1TJI4UkrXHUwMDE5jkr2VDg/IZj0tNJE3CRjmZbLK2RbTFZcdTAwMWNcdTAwMDXTXHUwMDA2xSeOjE5cdTAwMDQ+w3RFd0zTfD09W2WH4vzyonssav1cdTAwMWR9N2xAOdHejrtBa01C1EFcdTAwMTeBXHUwMDEwXHUwMDFjtmchPVBcdTAwMTaASUOExZbn/Vx0KT1O3lx1MDAxZpC0RFx1MDAxNMinXHUwMDBijWojnX5Wn8n/m8xGq7ikxaNcdTAwMDayoLS4jU6L69FakcnywnfDNKp2y1xu/lx1MDAwMZ6dn9ab27fb5dq2jLeqXHUwMDA0glx1MDAwN3JcdTAwMGIuJ61cdTAwMTHDi3NcZngkNaVAY60hp3FpMJ0rLW6JKVx1MDAxZMmsfP7is2fFVWSwVFx1MDAwM9KUbWZII57zrVxcaqvX71x1MDAxZO330/v9q9MqP/LjTpZSe1pcYmtJclx1MDAxMVx1MDAxOWI4aqONp6TlLoeATKrlwXAx6o9LSVxuZ1x1MDAxMbHT1Vx1MDAxNH9CR7KKJFx1MDAwN94qukNT23O7t91vnrKLXHUwMDAyXHUwMDFj9NXFQ/XgcudAx51UlGeEYMi4kYKHl3xcdTAwMDIoz2pNZlx1MDAwNsaCMj+15nPhuTdO2lxckFx1MDAwZraI8v1VYZXfLfkmVeSqa02G+TIw/lx1MDAxZVx1MDAwMOtcdTAwMDNcdTAwMWaLqbafb2dqlzzX2bwpJTtxJ1x1MDAxNOu8XHUwMDFloUi3XHTLw7k3QO1xmuHR5cPEMvmESGCewlx1MDAxNGW14fTPXHUwMDE4XHUwMDAxK1xuwflcblNYXHUwMDFjKlPeXHUwMDFjxILgXHUwMDE5uWKAPFx1MDAxMVx1MDAwNdq1KZpcdTAwMWGemZv2YXsvk3rQ+DWb3GpcdTAwMGWuhpVCzOEplPK4VFpzknUvepJ8i+VcdTAwMWJcdTAwMGbpOLlcXEqRmFpcdTAwMWVBXG7hSU1/jMuO0lTxRuOot+rG3NXqU61cdTAwMTk4Sf9aJE5+3oJCXHUwMDFk0Vx1MDAxMUlSRiBcdTAwMTjAXGZcdLStwmG/lareXe/flpvsMJHwh/o85qiTRnjcXG5mRuFcdTAwMGUlQlx1MDAxOTRhXHSUYI1m7kqtl4e6uSpSuFx1MDAxNjRXgIHPRIq/Q0mKinRcdTAwMDZHKkeoXHUwMDE51nKz/eJVrWaCYj29edYo7O3fIG8uXHUwMDE0dlx1MDAwYndcdTAwMDalRFx1MDAwZl3vLSslKcHXXFynPOJBtEyTJ1xiy1x1MDAwM918a7mtK2GncS+lt9w6b/39XFyM89aRuMbIUjPLgHE7Q+OVi20hhJ9N3Z5vXHUwMDFk7V6d+J3ro+1SvGGtmPW0deUmipE7XHLh+mqCtXLdvqSSjrli1nmFXHUwMDBiYFxiWi2CTNe4XklcXP84I8Gi+yo5XHUwMDFmlVxmfvrmsGf1nf1dU9l+TGxcdTAwMWVjLt3ePNovnX4kuqdpXHUwMDBlXHUwMDBintVMXHUwMDEy/YGL9IfS91xuLDmoXHUwMDFj6DJcdTAwMDdu+Cl0L7Vrn1bIXHUwMDE16k/bXHUwMDFhVkJkak1cdFx1MDAxZIpzv2fIMtPPXHUwMDFjXl5cdTAwMWNVyjk7qDZO2fZWaT/WNIVonatF3lx1MDAxYye/XHUwMDBlX9kxl1x1MDAxZUjyXGJccllcdTAwMTdOZmVi0bSPNFx1MDAwNGiDk4WtK+ryfdaufT8kXHUwMDE5LaNcdTAwMTcrSCO1UDCDa1g3/leRvm9vZVVi96G9k2432ovNXHUwMDEzLmE1uPBgXHUwMDE0iWGcSSnGbzKyXHLNtFx1MDAwN5ZcdTAwMWNHzVx1MDAxNF1cdTAwMTHzTkCSnpmBheQsVjPrLc1cdTAwMGY0kyRu5lpNn/bu6Ua9m9xp71/lt9qPlaNS+S4xjLk5XHUwMDBi7Ulu6Hs6W9DhvlaaTnMmOEhu3aq3uHVcdTAwMDJcdTAwMDJuybr16i86na/kkbOYlDxGXHUwMDBlZDF5XHUwMDAwkNErU5k0XGKoZ1hcIne7f9roXHUwMDE267vls6vbfHazl0hfwWOsJaFcdTAwMWSV0qNbXHUwMDE1zjk5XHUwMDE2oXikMm67XHRXZ6+E1GaJknCukkfytlxmyYJ1yWP8S1x1MDAxZSN5kkdcdTAwMDKQXHUwMDA0v7HMilx0I35cdTAwMGaAx2elbKWQOkmUL7NcdTAwMTem1LxcdTAwMWaaXi7mXHUwMDAwVJ5cIvrjrlx1MDAwMZBcdTAwMGLlvFx1MDAwNCD5+55hVpGfxCSwJTZSn6s6zFgjULF1ddjqVoeZ6OBcdTAwMWXNrJKmfjO9Tt1M7lx1MDAxNVxu+btkoXeWNYc3JjGs+q2Y61SOnluMXHRcZujHyc2Bnlx1MDAwMIjKo1x1MDAxOUi5lJ2jp+XJVMM8l/JcdTAwMDMjmVx1MDAwMFx05lxyt+u1TjXGWNDwsbVhku7cLLG7n5Opx61RXHUwMDFk1lxiXGZcdTAwMWL/m1x1MDAxZlx1MDAxN2n5ZL6Prab/f79cdTAwMTaZs4xnQc2MTPTqb8mcu6VmWKdz1GHy6vxKY7qhN7Pl9Fx1MDAwMWvXXHUwMDE3275yXHTtVEB4XGZcXMRcdTAwMTItkoZcdTAwMGbVVGurPUTh3DcjXHUwMDA0N8sr6ZyzeEVKy1x1MDAxOP+ozVx1MDAwNdfFK/NcdTAwMTWvXHUwMDAwi9Sqxi1ENrM0+DtM2M395E5FS8xcZlKPje2vw9qH7l41TTtcdTAwMTUkMUqgUsxFR0SokNq4JmOkXHUwMDA1rVx1MDAwNOJRhOVx5XxZbk6403xJMcl1lvv7uVx1MDAxOGe5I4FccpErJOwou61nXHUwMDAwdtmcXHJ327mdMyVPK489c7d7MVjskrsldFOxnqKbYFxc107Hm6+BLSTRLZmq26Fnibt5zVx1MDAwM2zS5fSQXHUwMDA0LsBcdF3j+rfCNeeROUXBjEbJZ2mAtnupsqrfUUe3e6XS5sN5q8B7Md+kj2np0fckW0QkvzJcdTAwMTRcXJLGeswtZTfo1lYsscH0fIStrFJo9Zqw18BcdTAwMWVcdTAwMWSdXHUwMDAwto5cdTAwMDa20qNMxvRBq0Swc6TKmaDQkK30jayldlxum9cxxzXjXHUwMDFl0lx1MDAxN3UrIJSc7J7zXGZs7Tb6My6DY8RcdTAwMTIreeZcdTAwMDG2JP9hMtC2RvXnQnXkoixcdTAwMTnd90xZg2KGhZCXm9ed8mU1n+yUXHUwMDBl91x1MDAwNtfn983DYLG7dy6jSbD1UEiGnFx1MDAwYo2TfVx1MDAxM55QrdGj26/JizVcdTAwMDImY02xWFxiSSOzwCaf0W9cdTAwMWbUWp11kD/uNygjXHUwMDE3Q/JRiZexXHUwMDEzS5HeLYLYfCg8nGRcdTAwMTK7qdNqr1wi89VS6utid65YxrbsxtOkNumbopvlQlx1MDAwZbBcdTAwMDL0JFx1MDAwMVx1MDAwZYC5yFx1MDAxN8a3wpvTK4VE+Lw13jBcdTAwMTHtXHUwMDBmx3LQMpJcdTAwMWUz1N1d6kZNVsxDf6+fPlx1MDAxZZ5cdTAwMWWrzcvz3XhLQzJSj5Ew5K7nvJJcIpRcdTAwMWFRXFx4VtA54lx1MDAxObJcIlx1MDAxZLNcIm+QrjLdfKaCgt+rxjsyZ4mRsORcdTAwMTJcXHdcdTAwMTY9Q3n32Xbu9v6elS+vL4uDo/6BychhPua4lOiBXHUwMDA1ZGC0XHUwMDAzaSh5olxmeK7VhzFcdTAwMDROKZaIy/n23Fx1MDAxM25JXGIz9kNcdTAwMGJcctaldj+t9XT0fstKkIJcdTAwMTdyhp0vz/JcdTAwMDCdUlx1MDAwZi80b/Xzj3Bw0r7YjLmTXHUwMDA1inlcdTAwMDQh12nXKGlCZelGXHUwMDFiXHUwMDBmXHKz5GshXHUwMDFhtcSC18U0XHUwMDE3ZE4rSv15u1x1MDAwYoKKlntgmeV8hvLRYHNQYcUgXHUwMDEznN3Uj2vXRp2flDNxp1x1MDAxNTtcbs1opixqPVx1MDAxMer7Vj+qPYEonc/AmF7iXHUwMDA24vPUj1x1MDAwMnDlOn58XCK197uVjypcdTAwMWRdv22Qpi422ZH4PVx1MDAwMDYy+WRj5zqRK1xy+Vll/7G2XHUwMDA3RYg7oVjlNs9TnHNcdTAwMDWah1x0XHUwMDA1tadcdTAwMThcdFxccsjIbefL6+3OrfSUi9rRI7GSS/ZGKP6tWjRyXHRccoeJbelXXHUwMDE0g3N1XHUwMDE33GrdbuSbxVxyXHUwMDAyWOFcdTAwMTdD8v1RLMjzit5lXHUwMDE5ubNcdTAwMTeup1x1MDAwN2hnXHUwMDBmXHUwMDBm29vNQrVxwMo53jmqbLGjmFx1MDAwM1RcdTAwMWHlXHUwMDE5goVyqlx1MDAwZl/1XFzShF9JKGColFvPXHUwMDEwt2JRl3JcdTAwMDFjXHUwMDE3XHUwMDEx0VtcdTAwMTmA/lx1MDAwNsWiQkbWlFx0d0+VXHUwMDE2M9SepHd3XG5cdTAwMGbJ5O49/5rh7LA4yO63Y56jlkp4ZDiSvqa2UrFQINIw5VlcdTAwMDRNXCJdI7kxMatcdTAwMTbVbqMlLlx1MDAxN5HNWmepVzJLXHUwMDFkXHTsXHSp9HpXTcbJXHUwMDFih+kzXGaid9ztXHUwMDA3XHUwMDBmW5nLYau8fXF8l9/rxTySqTjxmEZcdTAwMTBubSZxWXjJXCJcdTAwMDFcdTAwMWKFSzG4sFx1MDAwNbCYVYtyoVx1MDAxOYdcdTAwMTeT71x1MDAxYdlrZD81J432ZSWCXHUwMDE0Qs7QxjDln1x1MDAwNcNcdTAwMGUmOn6lU0zs3Vx1MDAwNs10q1x1MDAxOH9kS1x1MDAxMDR/XHTjJMpq1YuiZlx1MDAwNtxCzjWw18B+SdnRXHUwMDBit5TblVx1MDAxZNFMXHUwMDFmJL5NZCqFXHUwMDAzdlNp7p43j7NcdTAwMGYyaZOLXeO8XHUwMDA0Kc48JUabTohcdTAwMTdphFWoXHUwMDE2Jb3FaMLha1h/VlhH1oti9H6FpDuZ20B9elxc71x1MDAxNVx1MDAwNvqoV+lcdTAwMDSJ0rCSkDs7X+9qi93fflx1MDAxOaEt9CSiXHUwMDA1objRqEI+dswrRlxyMsLRZ2qxtTpcdTAwMDWjczTw55JszPWun14jK9Mq5qrmsndzVOqfNbP3TFx1MDAxY8RcXCOTOibIKZcxUVx1MDAwMGhetVx1MDAxZSCNLN2OMMxcdTAwMWHS0nFr9Vxyxj0lvV4s+WnZNFokR1wiW2mQrtnGXGaLoMuDdi44TVx1MDAwZk6z2cRe6Vp0XHUwMDFmN+NcdTAwMGVsIJFswFW7M+5s8TWwXHUwMDE10r133VxypIpbWMtqq13ThXVU67PiOnpX78h4NVx1MDAxYausXHUwMDE0dvpwdYbrM//84vDw6lwikTvtPfZcdTAwMWLD1EXMRbJQ6Cm31axTpiQ5w/lfJJHMlHTb7pDzu8RcdTAwMTZ7c4lkcJlraeQnSv+ujkqOwpyNbNDlUlwi1rJcdTAwMTkgXHUwMDE37G5cciuF5jDZym1cdTAwMGUv673EZjJcdTAwMTf7XHUwMDFkV7X0uGudol2DLlxmXHUwMDE1JWrOPPJcXIVcdTAwMTGGULfEMDKZLolxa9G4nV81TtdTT9O4adT8Q0vdhZistf9cdTAwMDU99YLvZefPPezyjcZGUPFHZ359T72px1x1MDAxM4HYP77R7pd8u51cdOjuPiubL1x1MDAwZlW/v1x1MDAxNb0w749veHfQ8keC6J8//vl/vXynNCJ9Activation conditionActivation conditionActive from 01/01/2024 8h30Time ruleActive for 5% of usersUser ruleANDActive from 05/01/2024 8h30Time ruleUser ruleActive for 50% of usersORANDActivation conditionActive from 10/01/2024 8h30Time ruleUser ruleNo user rule (active for everyone)ANDORActivation conditionTime ruleUser ruleActive for Bob and AliceANDORORNo time rule (active all the time)
Multi condition feature example

Activation rules

Time rules

With this kind of rules, Izanami will activate feature when current time is in provided range.

These startegies are used to implement release or ops flags.

There is several variation for this catrgory of feature, that can be composed to craft exactly what you need.

  • Date range feature: define a start and/or end date for feature activation
  • Hour range: feature will be active every day on provided range(s)
  • Activation days: feature will be active only on provided days

Here is an example of conditions combination for time features:

  • has a date range condition from 1st January to 31 January of 2024
  • has two hour ranges: 08h00 -> 10h00 and 14h00 -> 18h00
  • has following activation days: monday, tuesday
  • ✅ Will be active on Monday 8 January at 9h00
  • ❌ Won't be active on Friday 26 January at 9h00
  • ❌ Won't be active on Tuesday 16 January at 13h00
  • ❌ Won't be active before 1st Januar or after 31 January

User based rules

With user based rules, activation conditions are based on provided user.

Three is two types of user based conditions:

  • user list: define a list of user for which feature will be active. This rule is used to implement permission flags.
  • percentage: feature will be active only for given percentage of users. Percentage is based on user hash (using murmum3), this means that activation is consistent for a given user (if feature is active once, it'll remain active). This rule is used to implement canary flags.

String / number features

Sometimes a fature that can only be active or inactive is not enough.

For such cases, Izanami allows to define features that can take any string or number value.

Feature value

String and number features have a base value. The feature will take this value if feature is active and if there is no active alternative values.

When a string or number feature is inactive, it has null value.

Alternative values

A string or number feature can define alternative values. Feature will take first alternative value whose conditions are satisfied.

Alternative values conditions are the same as activation rules listed above, therefore you can think of alternatives values as activation conditions with a value.

For boolean, features, activation conditions order is not important: one matching condition is enough to make the feature active.


For string an number features, order of alternative values matters: feature value will be the first active alternative value.

Scripted feature

Sometimes above rules are not enough. For instance feature activation (or value) may depend on more than "just" the user.

In such a case, Izanami offers (with the help of WASMO) the possibility to define "script feature".

Such features rely on an underlying wasm script, which will be executed with provided the input each time feature activation is required.

To learn more about these script, refer to the wasm script guides.