mirror of
https://github.com/Unleash/unleash.git
synced 2024-11-01 19:07:38 +01:00
e55ad1a21e
* Feat: return reasons why a feature evaluated to true or false
Note: this is very rough and just straight ripped from the nodejs
client. It will need a lot of work, but is a good place to start
* Feat: add suggested shape for new payload
* Chore: minor cleanup
* Wip: make server compile again
* Remove unused schema ref
* Export new schemas
* Chore: fix some tests to use sub property
* Fix: fix some tests
* Refactor: rename some variables, uncomment some stuff
* Add segments type to bootstrap options
* Add segments capability to offline feature evaluator
* Fix function calls after turning params into an option abject
* Feat: test strategy order, etc
* Feat: add test to check that all strats are returned correctly
* Feat: allow you to include strategy ids in clients
* Wip: hook up segments in the offline client.
Note: compared to regular clients, they still fail
* Feat: add segments validation
* Fix: fix test case invariant.
* Chore: revert to returning only `boolean` from strategies.
This _should_ make it work with custom strategies too 🤞
* Feat: make more properties of the returned feature required
* Wip: add some comments and unfinished tests for edge cases
* Feat: add `isEnabledInCurrentEnvironment` prop
* Feat: consider more strategy failure cases
* Feat: test that isenabledinenvironment matches expectations
* Feat: add unknown strategies
* Fix: fix property access typo
* Feat: add unknown strategy for fallback purposes
* Feat: test edge case: all unknown strategies
* Feat: add custom strategy to arbitrary
* Feat: test that features can be true, even if not enabled in env
* Chore: add some comments
* Wip: fix sdk tests
* Remove comments, improve test logging
* Feat: add descriptions and examples to playground feature schema
* Switch `examples` for `example`
* Update schemas with descriptions and examples
* Fix: update snapshot
* Fix: openapi example
* Fix: merge issues
* Fix: fix issue where feature evaluation state was wrong
* Chore: update openapi spec
* Fix: fix broken offline client tests
* Refactor: move schemas into separate files
* Refactor: remove "reason" for incomplete evaluation.
The only instances where evaluation is incomplete is when we don't
know what the strategy is.
* Refactor: move unleash node client into test and dev dependencies
* Wip: further removal of stuff
* Chore: remove a bunch of code that we don't use
* Chore: remove comment
* Chore: remove unused code
* Fix: fix some prettier errors
* Type parameters in strategies to avoid `any`
* Fix: remove commented out code
* Feat: make `id` required on playground strategies
* Chore: remove redundant type
* Fix: remove redundant if and fix fallback evaluation
* Refactor: reduce nesting and remove duplication
* Fix: remove unused helper function
* Refactor: type `parameters` as `unknown`
* Chore: remove redundant comment
* Refactor: move constraint code into a separate file
* Refactor: rename `unleash` -> `feature-evaluator`
* Rename class `Unleash` -> `FeatureEvaluator`
* Refactor: remove this.ready and sync logic from feature evaluator
* Refactor: remove unused code, rename config type
* Refactor: remove event emission from the Unleash client
* Remove unlistened-for events in feature evaluator
* Refactor: make offline client synchronous; remove code
* Fix: update openapi snapshot after adding required strategy ids
* Feat: change `strategies` format.
This commit changes the format of a playground feature's `strategies`
properties from a list of strategies to an object with properties
`result` and `data`. It looks a bit like this:
```ts
type Strategies = {
result: boolean | "unknown",
data: Strategy[]
}
```
The reason is that this allows us to avoid the breaking change that
was previously suggested in the PR:
`feature.isEnabled` used to be a straight boolean. Then, when we found
out we couldn't necessarily evaluate all strategies (custom strats are
hard!) we changed it to `boolean | 'unevaluated'`. However, this is
confusing on a few levels as the playground results are no longer the
same as the SDK would be, nor are they strictly boolean anymore.
This change reverts the `isEnabled` functionality to what it was
before (so it's always a mirror of what the SDK would show).
The equivalent of `feature.isEnabled === 'unevaluated'` now becomes
`feature.isEnabled && strategy.result === 'unknown'`.
* Fix: Fold long string descriptions over multiple lines.
* Fix: update snapshot after adding line breaks to descriptions
|
||
---|---|---|
.. | ||
__snapshots__ | ||
addon-parameter-schema.ts | ||
addon-schema.test.ts | ||
addon-schema.ts | ||
addon-type-schema.ts | ||
addons-schema.test.ts | ||
addons-schema.ts | ||
api-token-schema.test.ts | ||
api-token-schema.ts | ||
api-tokens-schema.ts | ||
application-schema.ts | ||
applications-schema.ts | ||
bootstrap-ui-schema.test.ts | ||
bootstrap-ui-schema.ts | ||
change-password-schema.test.ts | ||
change-password-schema.ts | ||
client-application-schema.test.ts | ||
client-application-schema.ts | ||
client-feature-schema.ts | ||
client-features-query-schema.test.ts | ||
client-features-query-schema.ts | ||
client-features-schema.test.ts | ||
client-features-schema.ts | ||
client-metrics-schema.test.ts | ||
client-metrics-schema.ts | ||
client-variant-schema.ts | ||
clone-feature-schema.ts | ||
constraint-schema.test.ts | ||
constraint-schema.ts | ||
context-field-schema.test.ts | ||
context-field-schema.ts | ||
context-fields-schema.ts | ||
create-api-token-schema.ts | ||
create-feature-schema.ts | ||
create-feature-strategy-schema.ts | ||
create-user-schema.ts | ||
date-schema.ts | ||
email-schema.test.ts | ||
email-schema.ts | ||
environment-schema.ts | ||
environments-schema.ts | ||
event-schema.test.ts | ||
event-schema.ts | ||
events-schema.test.ts | ||
events-schema.ts | ||
export-query-parameters.ts | ||
feature-environment-metrics-schema.ts | ||
feature-environment-schema.test.ts | ||
feature-environment-schema.ts | ||
feature-events-schema.test.ts | ||
feature-events-schema.ts | ||
feature-metrics-schema.test.ts | ||
feature-metrics-schema.ts | ||
feature-schema.test.ts | ||
feature-schema.ts | ||
feature-strategy-schema.ts | ||
feature-strategy-segment-schema.ts | ||
feature-tag-schema.ts | ||
feature-type-schema.test.ts | ||
feature-type-schema.ts | ||
feature-types-schema.ts | ||
feature-usage-schema.test.ts | ||
feature-usage-schema.ts | ||
feature-variants-schema.ts | ||
features-schema.test.ts | ||
features-schema.ts | ||
feedback-schema.ts | ||
group-schema.ts | ||
group-user-model-schema.ts | ||
groups-schema.test.ts | ||
groups-schema.ts | ||
health-check-schema.ts | ||
health-overview-schema.ts | ||
health-report-schema.ts | ||
id-schema.ts | ||
legal-value-schema.ts | ||
login-schema.ts | ||
me-schema.test.ts | ||
me-schema.ts | ||
name-schema.ts | ||
override-schema.ts | ||
parameters-schema.ts | ||
password-schema.ts | ||
patch-schema.ts | ||
patches-schema.ts | ||
permission-schema.ts | ||
playground-constraint-schema.ts | ||
playground-feature-schema.test.ts | ||
playground-feature-schema.ts | ||
playground-request-schema.test.ts | ||
playground-request-schema.ts | ||
playground-response-schema.test.ts | ||
playground-response-schema.ts | ||
playground-segment-schema.ts | ||
playground-strategy-schema.ts | ||
project-environment-schema.ts | ||
project-schema.ts | ||
projects-schema.ts | ||
reset-password-schema.ts | ||
role-schema.test.ts | ||
role-schema.ts | ||
sdk-context-schema.test.ts | ||
sdk-context-schema.ts | ||
segment-schema.ts | ||
set-strategy-sort-order-schema.test.ts | ||
set-strategy-sort-order-schema.ts | ||
sort-order-schema.test.ts | ||
sort-order-schema.ts | ||
splash-schema.ts | ||
state-schema.ts | ||
strategies-schema.ts | ||
strategy-schema.test.ts | ||
strategy-schema.ts | ||
tag-schema.ts | ||
tag-type-schema.ts | ||
tag-types-schema.ts | ||
tag-with-version-schema.ts | ||
tags-schema.ts | ||
token-user-schema.test.ts | ||
token-user-schema.ts | ||
ui-config-schema.test.ts | ||
ui-config-schema.ts | ||
update-api-token-schema.ts | ||
update-feature-schema.ts | ||
update-feature-strategy-schema.ts | ||
update-tag-type-schema.ts | ||
update-user-schema.ts | ||
upsert-context-field-schema.ts | ||
upsert-strategy-schema.ts | ||
user-schema.ts | ||
users-groups-base-schema.test.ts | ||
users-groups-base-schema.ts | ||
users-schema.test.ts | ||
users-schema.ts | ||
users-search-schema.test.ts | ||
users-search-schema.ts | ||
validate-password-schema.test.ts | ||
validate-password-schema.ts | ||
validate-tag-type-schema.ts | ||
variant-schema.ts | ||
variants-schema.ts | ||
version-schema.ts |