#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
| Flag | Rules | Rollout | Changed | On / off |
|---|---|---|---|---|
Explain recommendations (beta)
beta-recommend-explainShows the score parts behind each recommendation. 30 % + two testers. |
ploy.staff, nina.admin
|
30% |
26 Oct 22:09 · seed | |
Chatbot quick replies
chatbot-quick-repliesSuggestion buttons under the chatbot. Rolled out to 50 % of users. |
everybody | 50% |
26 Oct 22:09 · seed | |
Route simulator
geofence-route-simThe '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-heroShows the big welcome banner on the dashboard. Only for two companies. |
northwind, blueharbor
|
100% |
26 Oct 22:09 · seed | |
OCR letter boxes
ocr-glyph-boxesDraws a box around every recognised letter on the OCR page. |
everybody | 100% |
26 Oct 22:09 · seed | |
Sentiment topics
sentiment-aspectsTopic breakdown (price, delivery, quality ...) on the Sentiment page. |
jay.staff
|
100% |
26 Oct 22:09 · seed | |
Voice search
voice-searchMicrophone 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
| User | beta-recommend-explain | chatbot-quick-replies | geofence-route-sim | new-dashboard-hero | ocr-glyph-boxes | sentiment-aspects | voice-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