Northwind Electronics ENTERPRISE
#507

Feature Flags

Turn features on or off per user, role, company or percentage rollout - without a deploy.

Technique: Rule evaluation with reasons, sticky percentage buckets, audit log
Read the code: src/main/java/com/study/advlab/flags/FeatureFlagService.javasrc/main/java/com/study/advlab/flags/FlagController.java
Flags are checked in this order: 1 on/off switch 2 blocked users 3 target users 4 companies 5 roles 6 % rollout
New flag
FlagRulesRolloutChangedOn / off
Explain recommendations (beta)
beta-recommend-explain
Shows the score parts behind each recommendation. 30 % + two testers.
ploy.staff, nina.admin
30%
26 Oct 22:09 · seed
Chatbot quick replies
chatbot-quick-replies
Suggestion buttons under the chatbot. Rolled out to 50 % of users.
everybody
50%
26 Oct 22:09 · seed
Route simulator
geofence-route-sim
The 'Walk a route' button on the Geofencing page - managers and admins only.
ADMIN, MANAGER
100%
26 Oct 22:09 · seed
New dashboard banner
new-dashboard-hero
Shows the big welcome banner on the dashboard. Only for two companies.
northwind, blueharbor
100%
26 Oct 22:09 · seed
OCR letter boxes
ocr-glyph-boxes
Draws a box around every recognised letter on the OCR page.
everybody
100%
26 Oct 22:09 · seed
Sentiment topics
sentiment-aspects
Topic breakdown (price, delivery, quality ...) on the Sentiment page.
jay.staff
100%
26 Oct 22:09 · seed
Voice search
voice-search
Microphone button in Natural Language Search (uses the browser's speech recognition). Switched off.
everybody
100%
26 Oct 22:09 · seed
Who gets what every user × every flag - hover a cell for the reason
Userbeta-recommend-explainchatbot-quick-repliesgeofence-route-simnew-dashboard-heroocr-glyph-boxessentiment-aspectsvoice-search
nina.admin ADMIN
tom.manager MANAGER
ploy.staff STAFF
ken.staff STAFF
arthit.admin ADMIN
mali.manager MANAGER
jay.staff STAFF
grace.admin ADMIN
lena.manager MANAGER
omar.staff STAFF
Change log
  • No changes yet.
Use a flag
In a template:
<div th:if="${@featureFlags.on('new-dashboard-hero')}">
In Java:
if (featureFlags.on("voice-search")) { ... }
From another app (JSON):
GET /api/flags/chatbot-quick-replies?user=nina.admin