Feature/ff ephemeral user options#2556
Conversation
| @@ -16,7 +15,4 @@ export class FeatureFlagExposure extends BaseModel { | |||
| @Index() | |||
There was a problem hiding this comment.
Nit: it's technically not a foreign key anymore, so the comment on line 11 is misleading.
There was a problem hiding this comment.
ok, not a nit! please do check comments / docs, I tried to update them but I have included a lot for this change. I've refactored and picked at this so much that there's bound to be something else that no longer matches the code.
There was a problem hiding this comment.
Ok, I'll keep looking. So far everything else looks AOK to me.
| * - `groupsForSession`: provided | ||
| * - `includeStoredUserGroups`: `true` | ||
| * - Behavior: Merges session groups with stored user groups, if they don't already exist | ||
| * - Use case: Adding temporary context while preserving existing user groups |
There was a problem hiding this comment.
'while preserving...' seems like you're just not overwriting, which none of these do. Maybe, 'in addition to...' would be clearer?
| * **Scenario 3: Default behavior (Standard mode)** | ||
| * - `groupsForSession`: not provided or undefined | ||
| * - `includeStoredUserGroups`: not provided or undefined | ||
| * - Behavior: Uses standard user lookup with stored groups only |
There was a problem hiding this comment.
'standard user' == 'already existing user'
bcb37
left a comment
There was a problem hiding this comment.
A few suggestions about the documentation to take or leave.
| * **Scenario 1: Session-only groups (Ephemeral user request)** | ||
| * - `groupsForSession`: provided | ||
| * - `includeStoredUserGroups`: explicitly `false` | ||
| * - Behavior: Uses ONLY the provided session groups, ignoring any stored user groups |
There was a problem hiding this comment.
Could be more explicit here that the user may or may not exist in the db; the groups are ephemeral, and the user may be also.
5bb7498 to
5fbf327
Compare
* ephemeral ff user groups and remove exposure id FK constraint * ephemeral ff user groups and remove exposure id FK constraint * remove comment from ff-exposure model * use same language in usercheck middleware docs as swagger
* update env toggle for staging and prod (#2454) * increase max subsegment depth to 8 (#2462) * remove joins from findOneSegmentByContextAndType (#2467) * skip duplicate check for private segments on upsert (#2472) * put changelog.md for release notes in repo (#2463) * remove sorting by status from global exclude list (#2476) * Exclude user with no working group data if there are global group excludes (#2502) * Auto-remove leading/trailing spaces from user-entered payloads (#2534) * Feature/ff ephemeral user options (#2556) * ephemeral ff user groups and remove exposure id FK constraint * ephemeral ff user groups and remove exposure id FK constraint * remove comment from ff-exposure model * use same language in usercheck middleware docs as swagger * mooclet configs on for staging (#2565) * recommit --------- Co-authored-by: Ben Blanchard <bblanchard@carnegielearning.com> Co-authored-by: Zack Lee <90279765+zackcl@users.noreply.github.com>
* Auto-remove leading/trailing spaces from all input text (#2537) * fix entity types; add enum migration (#2551) * add parent segments list to 'Used By' status of segments (#2543) * add parent segments list to 'Used By' status of segments * remove unused data binding * update no-data message * Add and display 'status' field of parent segments * don't await response from csv export endpoint (#2552) * add mooclet env vars to app-infrastructure.yml (#2555) * add mooclet env vars to app-infrastructure.yml * correct ssm value typos * toggle mooclet on in frontend * toggle mooclet on in frontend (#2564) * toggle staging also (#2566) * Feature/ff ephemeral user options (#2556) (#2573) * ephemeral ff user groups and remove exposure id FK constraint * ephemeral ff user groups and remove exposure id FK constraint * remove comment from ff-exposure model * use same language in usercheck middleware docs as swagger * restore condition payload formatting on pagination response (#2574) * split ScheduledJobService in two to avoid circular dependency (#2575) * split ScheduledJobService in two to avoid circular dependency * Update backend/packages/Upgrade/test/unit/services/ScheduledJobService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/test/unit/services/MoocletExperimentService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix test suite description for Experiment Scheduler Service --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add example in add-metrics editor and a link to gitbook (#2581) * add example in add-metrics editor and a link to gitbook * remove typo * filter out _REWARD metrics that do not belong to experiment (#2580) * filter out _REWARD metrics that do not belong to experiment * correct for add experiment flow * clarify logic * remove console log * throw errors from axios mooclet requests; but not from deleting mooclet resources (#2582) * Bump on-headers, compression, morgan and express-session (#2585) --- updated-dependencies: - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect - dependency-name: compression dependency-version: 1.8.1 dependency-type: direct:production - dependency-name: morgan dependency-version: 1.10.1 dependency-type: direct:production - dependency-name: express-session dependency-version: 1.18.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Reward Metric Display (#2583) * Update Reward Metric Display * Make the key and value more distinct * Refine Metrics table for displaying group metrics and categorical type * Remove bullet from Key and Values * Bump form-data from 4.0.0 to 4.0.4 in /k6 Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.0...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump form-data from 4.0.1 to 4.0.4 in /backend/packages/Scheduler Bumps [form-data](https://github.com/form-data/form-data) from 4.0.1 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump on-headers and compression in /frontend (#2591) Bumps [on-headers](https://github.com/jshttp/on-headers) and [compression](https://github.com/expressjs/compression). These dependencies needed to be updated together. Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](jshttp/on-headers@v1.0.2...v1.1.0) Updates `compression` from 1.8.0 to 1.8.1 - [Release notes](https://github.com/expressjs/compression/releases) - [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md) - [Commits](expressjs/compression@1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect - dependency-name: compression dependency-version: 1.8.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * clone lists on duplicate (#2588) * Use new 'repeated_enrollment' table for within-subject experiments (#2559) * Use new 'repeated_enrollment' table for within-subject experiments * Update backend/packages/Upgrade/test/integration/ExperimentStats/WithinSubjectEnrollment.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * use relative paths * fix postgres text case return values --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Bump form-data from 4.0.0 to 4.0.4 in /clientlibs/js Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.0...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump form-data in /backend/packages/Upgrade (#2604) Bumps and [form-data](https://github.com/form-data/form-data). These dependencies needed to be updated together. Updates `form-data` from 4.0.1 to 4.0.4 - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) Updates `form-data` from 2.5.2 to 4.0.4 - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resolve segment options not showing in experiment participants include table (#2609) * fix: resolve segment options not showing in experiment participants include table * Remove redundant bindParticipantsData call from ngOnInit * perform all metrics queries in a single transaction (#2610) * perform all metrics queries in a single transaction * Update backend/packages/Upgrade/test/unit/services/QueryService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Bump form-data from 4.0.1 to 4.0.4 in /frontend Bumps [form-data](https://github.com/form-data/form-data) from 4.0.1 to 4.0.4. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](form-data/form-data@v4.0.1...v4.0.4) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump sha.js from 2.4.11 to 2.4.12 in /backend/packages/Upgrade Bumps [sha.js](https://github.com/crypto-browserify/sha.js) from 2.4.11 to 2.4.12. - [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md) - [Commits](browserify/sha.js@v2.4.11...v2.4.12) --- updated-dependencies: - dependency-name: sha.js dependency-version: 2.4.12 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * Bump multer and routing-controllers in /backend/packages/Upgrade (#2620) Bumps [multer](https://github.com/expressjs/multer) to 2.0.2 and updates ancestor dependency [routing-controllers](https://github.com/typestack/routing-controllers). These dependencies need to be updated together. Updates `multer` from 1.4.5-lts.1 to 2.0.2 - [Release notes](https://github.com/expressjs/multer/releases) - [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md) - [Commits](expressjs/multer@v1.4.5-lts.1...v2.0.2) Updates `routing-controllers` from 0.11.2 to 0.11.3 - [Release notes](https://github.com/typestack/routing-controllers/releases) - [Changelog](https://github.com/typestack/routing-controllers/blob/develop/CHANGELOG.md) - [Commits](typestack/routing-controllers@v0.11.2...v0.11.3) --- updated-dependencies: - dependency-name: multer dependency-version: 2.0.2 dependency-type: indirect - dependency-name: routing-controllers dependency-version: 0.11.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump tmp and @inquirer/editor in /frontend (#2619) Removes [tmp](https://github.com/raszi/node-tmp). It's no longer used after updating ancestor dependency [@inquirer/editor](https://github.com/SBoudrias/Inquirer.js). These dependencies need to be updated together. Removes `tmp` Updates `@inquirer/editor` from 4.2.6 to 4.2.17 - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/@inquirer/editor@4.2.6...@inquirer/editor@4.2.17) --- updated-dependencies: - dependency-name: tmp dependency-version: dependency-type: indirect - dependency-name: "@inquirer/editor" dependency-version: 4.2.17 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * clientlibs: check for cached data in assign and ff calls (#2615) * clientlibs: check for cached data in assign and ff calls * Update clientlibs/js/src/UpGradeClient/UpgradeClient.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update clientlibs/js/src/UpGradeClient/UpgradeClient.spec.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * clientlib versions to 6.1.2; update java README (#2634) * add back files needed for client publish github action (#2637) * Merge release 6.1 into dev (#2636) * update env toggle for staging and prod (#2454) * increase max subsegment depth to 8 (#2462) * remove joins from findOneSegmentByContextAndType (#2467) * skip duplicate check for private segments on upsert (#2472) * put changelog.md for release notes in repo (#2463) * remove sorting by status from global exclude list (#2476) * Exclude user with no working group data if there are global group excludes (#2502) * Auto-remove leading/trailing spaces from user-entered payloads (#2534) * Feature/ff ephemeral user options (#2556) * ephemeral ff user groups and remove exposure id FK constraint * ephemeral ff user groups and remove exposure id FK constraint * remove comment from ff-exposure model * use same language in usercheck middleware docs as swagger * mooclet configs on for staging (#2565) * recommit --------- Co-authored-by: Ben Blanchard <bblanchard@carnegielearning.com> Co-authored-by: Zack Lee <90279765+zackcl@users.noreply.github.com> * generate new readme (#2641) * Move tests to jenkins ci (#2639) * move tests from pre-commit to jenkinsfile * lint all the things * Clear group type when unit of assignment is not Group (#2645) * Bump axios from 1.8.2 to 1.12.0 in /clientlibs/js (#2652) Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.8.2...v1.12.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump axios from 1.8.2 to 1.12.2 in /backend/packages/Upgrade (#2653) Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.8.2...v1.12.2) --- updated-dependencies: - dependency-name: axios dependency-version: 1.12.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * move jaxb.ws.rs to Jakarta and bump Jersey to 3 (#2654) * Update clientlibs/java jaxb.ws.rs to Jakarta and bump Jersey to 3 --------- Co-authored-by: doswalt <doswalt@carnegielearning.com> Co-authored-by: danoswaltCL <97542869+danoswaltCL@users.noreply.github.com> Co-authored-by: Matt McHenry <mmchenry@carnegielearning.com> * validate group and group assignment unit agreement in experiment import, add, and update (#2649) * fix data exports for within-subject experiments (#2605) * fix data exports for within-subject experiments * remove unused method; simplify variable * remove enrollmentComplete experiments from pools unless already enrolled (#2670) * remove enrollmentComplete experiments from pools unless already enrolled * Update backend/packages/Upgrade/test/unit/services/ExperimentAssignmentService.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * no multiple assignment per decision point --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add Docker build support for the demo app (#2658) * Update demo-app.js script and add Docker build support * Fix the frontend settings to work on /upgrade path for the demo app * Revert changes made to demo-app.js * Force user role to Creator when APP_DEMO is true (#2675) * force user role to Admin when APP_DEMO is true * force user role to Creator when APP_DEMO is true * Preverve the admin role on demo mode * Revert "Preverve the admin role on demo mode" This reverts commit b21fed9. * Add batch assign endpoint and functionality (#2613) * Add batch assign endpoint and functionality * remove console log and fix reference issue * remove filtering within-subject experiments * fix conditionals * remove 404 * remove extra vars from tests; add return type to method * refactor methods for readability * DRY assign methods * return 'NOT_FOUND' for users that are...not found * Fix/nav on detail url id segment change (#2677) * hash navigation helper * manually tell router to navigate when hashchangeevent fires * add new parameters to processExperimentPools() in getBatchExperimentConditions() (#2684) * Bump tar-fs from 2.1.3 to 2.1.4 in /backend/packages/Upgrade (#2683) Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.3 to 2.1.4. - [Commits](mafintosh/tar-fs@v2.1.3...v2.1.4) --- updated-dependencies: - dependency-name: tar-fs dependency-version: 2.1.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * nav to detail on create, pip exp count if 0 on getExperimentId success, rename confusing observable (#2676) * add 6.2 release notes (#2685) * Feature/ts client lib 6 2 (#2686) * add 6.2 release notes * get ts client lib version aligned w release version * update packages to 6.3 (#2687) * use custom data source for transaction (#2688) * use custom data source for transaction * fix test * use custom data source for transaction (#2688) (#2689) * use custom data source for transaction * fix test * remove transaction from metrics log queries (#2690) * use transaction entity manager in metrics log queries * remove transaction * Update backend/packages/Upgrade/src/api/repositories/LogRepository.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * do not wait for export to finish (#2691) * toggle within-subjects true for staging tests, mooclet true in prod file (#2692) * optimize export log query and service method (#2694) * optimize export log query and service method * Update backend/packages/Upgrade/src/api/services/AnalyticsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/services/AnalyticsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/services/AnalyticsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * use "upgrade-ci" task definition and run integration tests * change to trigger tests * set test host to 'localhost' * Update backend/packages/Upgrade/src/api/services/ExperimentAssignmentService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Bump validator from 13.12.0 to 13.15.20 in /types (#2706) Bumps [validator](https://github.com/validatorjs/validator.js) from 13.12.0 to 13.15.20. - [Release notes](https://github.com/validatorjs/validator.js/releases) - [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md) - [Commits](validatorjs/validator.js@13.12.0...13.15.20) --- updated-dependencies: - dependency-name: validator dependency-version: 13.15.20 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump koa from 3.0.1 to 3.0.3 in /backend/packages/Upgrade (#2700) Bumps [koa](https://github.com/koajs/koa) from 3.0.1 to 3.0.3. - [Release notes](https://github.com/koajs/koa/releases) - [Changelog](https://github.com/koajs/koa/blob/master/History.md) - [Commits](koajs/koa@v3.0.1...v3.0.3) --- updated-dependencies: - dependency-name: koa dependency-version: 3.0.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump validator from 13.12.0 to 13.15.20 in /frontend (#2711) Bumps [validator](https://github.com/validatorjs/validator.js) from 13.12.0 to 13.15.20. - [Release notes](https://github.com/validatorjs/validator.js/releases) - [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md) - [Commits](validatorjs/validator.js@13.12.0...13.15.20) --- updated-dependencies: - dependency-name: validator dependency-version: 13.15.20 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump typeorm from 0.3.20 to 0.3.26 in /backend/packages/Upgrade (#2709) Bumps [typeorm](https://github.com/typeorm/typeorm) from 0.3.20 to 0.3.26. - [Release notes](https://github.com/typeorm/typeorm/releases) - [Changelog](https://github.com/typeorm/typeorm/blob/master/CHANGELOG.md) - [Commits](typeorm/typeorm@0.3.20...0.3.26) --- updated-dependencies: - dependency-name: typeorm dependency-version: 0.3.26 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Display the menu button on the details page to non-Reader roles (#2713) * Feature/2524 experiment redesign backend 1 (#2538) * Revert adding 'filtered total' for experiments * add experiment list endpoints * copilot review changes * add swagger annotations and endpoint tests * Implement experiments root page component and navigation (#2546) * Implement experiment root section card component (#2549) * Implement experiment root section card table component (#2553) * Implement experiment root section card component * Implement experiment root section card table component * Fix searching on status * Implement upsert experiment modal component (#2558) * Implement upsert experiment modal component * Resolve all comments * Remove mistake part * show experiment list actions in audit logs (#2570) * show experiment list actions in audit logs * Update frontend/projects/upgrade/src/app/features/dashboard/logs/components/timeline/timeline.component.html Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add endpoints for importing and exporting experiment exclusion and in… (#2587) * add endpoints for importing and exporting experiment exclusion and inclusion lists * Update backend/packages/Upgrade/src/api/services/ExperimentService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/controllers/ExperimentController.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update backend/packages/Upgrade/src/api/controllers/ExperimentController.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * more specific typing --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Implement experiment details page (#2563) * Implement experiment details page * Remove mistake part * Make experiment details page navigation work * Update ExperimentOverviewDetailsSectionCardComponent and ExperimentDetailsPageContentComponent * Refine selectExperimentOverviewDetails and update CommonTabbedSectionCardFooterComponent * Refine experiment details section card components * Refine en.json file * Update UpsertExperimentModalComponent to send requests with valid experiment data * Disable Factorial Experiment Type for v2 * Refactor nested ternaries * Add strongly-typed DTO interfaces for experiment requests * Update timeLog type in ExperimentStateTimeLogDTO * Update ExperimentConditionPayloadDTO to match backend * Remove redundant comments * Implement decision points table components (#2599) * Implement decision points table components * Remove unused ngOnInit * Implement conditions table components (#2600) * Implement decision points table components * Remove unused ngOnInit * Implement conditions table component * Refine the ExperimentConditionsTableComponent * Remove redundant check * convert to new list format for all endpoints (#2614) * Implement experiment include list table component (#2601) * Implement experiment include list table component * Refine the inclusions table component * Implement Include All toggle feature * Fix the empty Type cell after disabling Include All toggle * remove redundant API call in updateFilterMode method * Remove listType preservation * Simplify the updateFilterMode function * Implement experiment exclude list table component (#2612) * Implement experiment include list table component * Refine the inclusions table component * Implement Include All toggle feature * Fix the empty Type cell after disabling Include All toggle * remove redundant API call in updateFilterMode method * Implement experiment exclude list table component * Disable the slide toggle and action buttons on inclusion table when update permission is now allowed * Implement experiment metrics table component (#2622) * Implement experiment metrics table component * Fix the statistic order for categorical metrics * Update table row styles * add experiment list modals and functionality (#2638) * add experiment list modals and functionality * Update frontend/projects/upgrade/src/app/core/experiments/store/experiments.reducer.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update frontend/projects/upgrade/src/app/core/experiments/store/experiments.reducer.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add missing text values --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add edit-condition-weights modal (#2646) * add edit-condition-weights modal * Update frontend/projects/upgrade/src/app/features/dashboard/experiments/modals/edit-condition-weights-modal/edit-condition-weights-modal.component.spec.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * remove inaccurate comment * tighten css * changes to get closer to the spec * remove unneeded things --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Implement Upsert Decision Point Modal for Experiments (#2633) * Add upsert decision point modal component * Implement sendUpsertDecisionPointRequest for Add/Edit Decision Point modal * Create decision-point-helper.service.ts and implement the Delete Decision Point modal * Remove unneeded experimentContext input * Remove redundant fallback * refactor: add context validation and improve ternary readability * Fix duplicated import * condition edit/add/delete modal * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * remove redundant duplicate check * remove payload from conditions table (#2704) * remove payload from conditions table * fix columns * fix preexisting typecheck and missed unit tests --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Zack Lee <90279765+zackcl@users.noreply.github.com> Co-authored-by: Ben Blanchard <bblanchard@carnegielearning.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ddenniston <106688763+ddenniston@users.noreply.github.com> Co-authored-by: Matt McHenry <mmchenry@carnegielearning.com> Co-authored-by: Zack Lee <zlee@carnegielearning.com>
No description provided.