Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Feat: eval v2 sqlite (#1739) * feat(wip): rollout for boolean flags * feat(wip): strategy impl * feat: rollout rules > rollout strategy * chore: add namespace_key to tables * feat: list rules * feat: impl delete * chore: rm debug logs * chore: rename things * chore: compiles, start adding storage tests * feat(wip): update rollout * chore: compiles * chore: compiles/finish sqlite rollout tests for now * chore: fix countRollouts call * chore: rebase eval-v2 * chore: checkout ui from main * chore: replace ui with ui from main * chore: fix buflint * chore: fix lint errors * chore: rowserrcheck * chore: mage proto * feat: implement gRPC server for the Variant RPC method * chore: rename Server field to evaluator * chore: move around tests, and other fixes * chore: DRY up middleware and add extra field to otel metrics * feat: add boolean evaluation logic for the store * chore: add tests for boolean evaluate and address PR comments from upstream * chore: add batch evaluation functionality * chore: address comments and add more tests for behavior * feat: implement gRPC server for the Variant RPC method (#1798) * feat: implement gRPC server for the Variant RPC method * chore: rename Server field to evaluator * chore: move around tests, and other fixes * chore: DRY up middleware and add extra field to otel metrics * test(integration): ensure Evaluation.Variant returns as expected (#1800) * test(integration/api): ensure Evaluation.Variant returns as expected * test(integration/readonly): ensure Evaluation.Variant returns as expected * fix(build/testing): set production yaml version to 1.0 * fix(build/testing/api): ensure disabled flag is created and listed * fix(build/testing/api): fix disabled flag asserts and delete before ns is deleted * fix(build/testdata): typo on name field case * fix(server/middleware): set request IDs on evaluation req/resp type * fix(build/integration): ensure 51 flags exist * fix(build/integration): ensure flag not found error is returned * fix(build/integration): explicitly set enabled false in testdata * chore: rearrange some files and make some new declarations * chore: move around some structures and address other feedback around passing flag into Evaluate * chore: set timestamps and request id on Variant responses * chore: add test and move invalid flag type to evaluator --------- Co-authored-by: George <[email protected]> * chore: readd tests and other couple fixes * chore: add middleware bits for timestamp and duration * chore: remove storage implementation of getting rollouts * chore: use lowercase package names, and return nil instead of real value * chore: add tests for coverage * chore: add error response for batch evaluation * fix(api/rollouts): ensure tx rollback (#1805) * test(integration/api): ensure Boolean type flag create * fix(api/rollouts): ensure tx rollback and drop create rollout type * fix(storage/rollout): ensure tx rollback and fixed rollout type on update * fix(storage/sql/rollout): validate rule is supplied on create * chore(rpc): add rollout request types validation * fix(integration/readonly): add flag_disabled to end of set * chore: commit proto version comment updates * chore: use different enum for batch evaluation responses * chore: make small optimization for struct initialization * refactor!(rpc/flipt): rename RolloutPercentage to RolloutThreshold * fix(tests): change assertions to match threshold not percentage enum string * refactor(storage): rename RolloutPercentage to RolloutThreshold * chore: change proto definition for evaluation and error evaluation reasons * chore: implement storage queries for rollout evaluation * chore: add integration test for boolean, batch * feat(ui): add flag type radio (#1830) * feat(wip): flag type select/render * chore: make disabled on update * chore: fix default checked * chore: address PR comments * feat(ext): add support for flag type and rollout definitions (#1826) * test(ext): add failing cases for new version 1.1 and rollouts * feat(ext): add support for flag type and rollout definitions * fix(ext): adding missing error not-nil check * test(readonly): bump testdata import version * fix(ext): support rename from rollout percentage to threshold * fix(ext): ensure minimum version enforced as expected * test(readonly): update suite with boolean flag assertions * feat(ext): support implicit rank in flag state version 1.1 * chore(ext): correct typos in comments * fix(test/cli): update assertion for import/export * feat(validate): add support for state version 1.1 * chore(build): address comment fix suggestions * fix(test/migration): use an import file valid for latest * fix(test/migration): import using latest build not tip * feat: add fs storage implentation and readonly tests * feat: address all the missing links with rollouts in regards to fs store * feat: create eval rollout threshold (#1835) * feat(wip): ui rollout threshold crud * feat(wip): show new rollout button * chore: add type to flag table * feat(wip): threshold rule form * feat(wip): rollout thresholds * chore: rename to 'rules' for now * chore: rm un-needed prop * chore: fix small issues * chore: extract some more constants * feat: add missing description, set max/min for threshold client side * fix: typing * chore: type the form values * chore: move value to common form * chore: disable evaluation tab for boolean flag * chore(fs/rollouts): address PR comments and add relevant tests * fix: broken ui build (#1838) * feat: add audit logging for rollout actions (#1834) * feat: add audit logging for rollout actions * chore(tests): add unit tests for delete in the middleware * feat: eval rollout segment ui (#1839) * feat(wip): start * feat(ui): finish segment rollout creation form * fix(rollouts): add order rollouts and validate requests (#1850) * feat(rollouts): add order rollouts RPC * fix(rollouts): implement server.OrderRollouts and add unit tests * fix(proto): add gateway routes for order rollouts * test(readonly): ensure list rollout pagination * chore(rpc/flipt): add validation around create and update rollouts * fix(ext): add variant description to testdata yaml * fix(build/testing/migration): use previous release versions test suite (#1852) * fix(build/testing/migration): use previous release versions test suite * refactor(build/testing/migration): use readonly test suite data from latest release * feat(middleware): support caching new evaluation RPCs (#1853) * feat(middleware): support caching evaluation.VariantEvaluationResponse * feat(middleware): support caching evaluation.BooleanEvaluationResponse * feat(eval/rollouts): write benchmark tests for evaluations * chore(benchmarks): move around logic * feat(auth): ability to skip authentication for top-level api prefixes (#1854) * feat(auth): ability to skip authentication for top-level api prefixes * fix(config): add mapstructure tags * fix(cmd/grpc): thread authentication options * Rule List refactor (#1855) * feat: redo rules list styles * feat: done tweaking the ui * chore: drag drop * chore: show actual variant key; fix border color on drag * chore: make responsive * chore(sql): format query * feat: real rollout list/quick edit/delete (#1857) * feat(wip): rollout list ui + quickedit * chore: update some styles * chore: fix selected segment * feat: finish update/delete of rollout list * chore: fix linter * chore: add percent icon, hide slider in mobile * feat: make reset work: * chore: clean up benchmarks to not have random elements in the requests * feat(console-evaluation): use v2 evaluation in console rather than v1 evaluation * feat: rollout edit + typescript enum redo (#1859) * chore: address comments * feat: Quick edit rules (#1862) * feat(metrics): Add otel and general metrics for boolean evaluation * chore: pass in context from the outside for boolean match * fix(build): use relative replace for rpc/flipt (#1881) * fix(build): use relative replace for rpc/flipt * chore(build): replace root with relative directory * chore: profiling via Dagger (#1873) * chore: rebase on eval-v2 * chore: rm binary * feat(wip): attempt to run profiling / pyroscope in dagger * chore: go.sum things * chore: more mod tidy * chore: give proper user * chore: finish profile run * chore: finish loadtest via dagger * chore: bump to 60s, add more to README * chore: fix loadtest to actually import / use state * chore: rm un-needed export * feat(ui): eval default rollout (#1866) * chore: change boolean eval to use false as default * chore: check for default namespace * chore: change back to use enabled as default, rename boolean eval response field * chore: return reason from matchConstraints * feat: add default rollout in UI * chore: fix api IT * chore(sqlite): add custom logic for sqlite for returning errors on specific cases * feat(db): Add the rest of sql files for rollout migrations * chore: runs prettier after dependency update (#1883) * chore: go mod tidy * chore(mysql): address comments and make query squirrel builder * chore(mysql): disable sql_mode for testing * chore: change property of Value to Enabled * chore: add default value to current_timestamp as well * chore: remove unique index * fix: validation of rollout rule values in forms (#1889) * chore: rollouts UI its (#1888) * chore: small ui tweaks for rules/rollouts (#1890) * chore: prettier package.json * chore: add namespace key to error reason; rename error enum (#1902) * chore: boolean eval screenshots (#1904) * chore: fix screenshots for new ui * chore: mv screenshots to subdir * feat(wip): concepts docs * chore: rm old screenshots func * chore: finish most of the screenshots * chore: add rollouts * chore: add readonly screenshot * chore: add missing eval console screen * chore: fix scrollToBottom for screenshots (#1911) * chore: fix scrollToBottom for screenshots * chore: increase sleep by 1s * chore: mod tidy * chore: loadtest cleanup * chore: rework interceptor config * chore: fix cacher interceptor ordering (#1914) * chore: fix cacher interceptor ordering * chore: fix storage cacher tests (#1916) * chore: why are you changing go.work.sum * chore: fixup cacher tests into new eval-v2 branch * chore: rm unknown file --------- Co-authored-by: Mark Phelps <[email protected]> Co-authored-by: Yoofi Quansah <[email protected]>
- Loading branch information