Comments (6)
(from Unleash/unleash#99)
from unleash-client-java.
After years of usage i finn we see that a UnleashContext with the following properties would make it simple to standardize a lot of strategies (all fields are of course optional):
UnleashContext::
userId: String,
sessionId: String,
remoteAddress: String,
properties: Map<String, String>
It should be possible to provide the context via a request-bound provider (e.g. in a request scoped spring bean, or similar).
It should also be possible to send in the UnleashContext
as part of the "isEnabled" call (just in time). This is very convenient in non-thread based environment where the user/request details is available just in place.
from unleash-client-java.
Suggestion:
should we change the properties
field to be a just a list of flags instead? The only use case we have for it at the moment us to flag a user as a beta-user. This feels a bit cumbersome in a key,value structure.
Aka:
userId: String,
sessionId: String,
remoteAddress: String,
flags: Array<String>
What do you think @sveisvei and @vsandvold ?
from unleash-client-java.
Key value feels a bit awkward, but is more flexible of course. For the abtest strategy I thought about providing context for device, referrer and other useful properties for segmentation. Currently it's only the USERID cookie value that is provided.
Another thing... Could it be useful to have multiple context providers, like BetaUserContextProvider and ABTestContextProvider?
from unleash-client-java.
Currently it's only the USERID cookie value that is provided
yes, then key/value is required i suppose, better keep the properties then.
Could it be useful to have multiple context providers, like BetaUserContextProvider and ABTestContextProvider?
No, the whole purpose is to provide one context and one entry point for it! It's better to make it flexible enough to add what we need, IMHO.
from unleash-client-java.
solved in #33
from unleash-client-java.
Related Issues (20)
- Refactor DefaultUnleash to make it customizable with different implementation of IFeatureRepository HOT 1
- Sanitize appName for backupFile HOT 5
- Why use a `BiFunction` when the desired interface was a `BiPredicate`? HOT 1
- Unleash Codegen Gradle Plugin HOT 8
- DefaultUnleash.isEnabled(toggleName, context) silently dropping context HOT 4
- FakeUnleash enable all except certain features HOT 6
- Make Backuphandler extensible HOT 1
- Impression data flag as part of getFeatureToggleDefinition HOT 1
- Client specification header makes server send stale information HOT 12
- SDK exposes Api key in logs
- Missing 8.3.0 release artifact in maven HOT 3
- Strategy check return only the first enabled HOT 3
- Compatability Matrix HOT 2
- Update from 8.3.1 to 9.1.0 changes variant on existing features flags HOT 7
- Remove (again) our deprecated hashing methods
- Filter for tags HOT 2
- Add featureEnabled to variant response HOT 1
- Proxy authentication not working HOT 1
- String operator STR_STARTS_WITH is not evaluated correctly when case-sensative is disabled HOT 6
- FakeUnleash doesn't take into account global activation/deactivation for certain isEnabled method HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unleash-client-java.