@clickview/ship-it 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/X2/Analytics Web.md +11 -0
  2. package/dist/X2/Batch.Api.md +11 -0
  3. package/dist/X2/ClickView Online.md +43 -0
  4. package/dist/X2/ClickView.Cloud247.SpliceService.md +12 -0
  5. package/dist/X2/ClickView.Cron.md +10 -0
  6. package/dist/X2/ClickView.Curator.md +22 -0
  7. package/dist/X2/ClickView.OnlineApi.md +14 -0
  8. package/dist/X2/Curriculum.App.md +9 -0
  9. package/dist/X2/CurriculumIngestion.Api.md +8 -0
  10. package/dist/X2/Discover.Api.md +35 -0
  11. package/dist/X2/Domain.Api.md +11 -0
  12. package/dist/X2/FileGenerator.md +11 -0
  13. package/dist/X2/Hydration.App.md +9 -0
  14. package/dist/X2/Integrations.Api.md +8 -0
  15. package/dist/X2/Krakend.md +18 -0
  16. package/dist/X2/LTI.md +11 -0
  17. package/dist/X2/Library Editor.md +11 -0
  18. package/dist/X2/Library.Api.md +13 -0
  19. package/dist/X2/Lite.md +21 -0
  20. package/dist/X2/Master.Api.md +21 -0
  21. package/dist/X2/Master.Auth.md +22 -0
  22. package/dist/X2/Objects.Api.md +30 -0
  23. package/dist/X2/Permissions.Api.md +34 -0
  24. package/dist/X2/Release Notes.md +932 -0
  25. package/dist/X2/Share.Api.md +8 -0
  26. package/dist/X2/Subjects.API.md +21 -0
  27. package/dist/X2/TvProgramMonitor.App.md +8 -0
  28. package/dist/X2/Users.Api.md +25 -0
  29. package/dist/X2/VideoProcessorService.md +12 -0
  30. package/dist/X2/X2 Release Notes.md +932 -0
  31. package/dist/X2/X2 Testing Notes.csv +1200 -0
  32. package/dist/X2/X2 Testing Notes_old.csv +2060 -0
  33. package/dist/X2/clickview.md +314 -0
  34. package/dist/X2/index.app.md +8 -0
  35. package/dist/X2/notification-service.md +48 -0
  36. package/dist/Y2/Y2 Testing Notes.csv +1057 -0
  37. package/lib/src/commands/CreateTestingNotesCommand.js +84 -0
  38. package/lib/src/commands/index.js +1 -0
  39. package/lib/src/constants/CommandTypeMapping.js +1 -0
  40. package/lib/src/interfaces/models/ProjectConfig.js +9 -0
  41. package/lib/src/inversify.config.js +2 -0
  42. package/lib/src/services/GitLabService.js +33 -0
  43. package/lib/src/startup/SetupCommands.js +1 -0
  44. package/lib/src/tasks/CreateMergeRequestTask.js +12 -9
  45. package/lib/src/tasks/CreateReleaseNotesTask.js +11 -8
  46. package/lib/src/tasks/CreateTestingNotesTask.js +135 -0
  47. package/lib/src/tasks/ValidateDescriptionsTask.js +63 -33
  48. package/lib/src/tasks/ValidateMergeRequestTask.js +5 -4
  49. package/lib/src/tasks/index.js +1 -0
  50. package/lib/src/types.js +2 -0
  51. package/lib/src/utils/Csv.js +54 -0
  52. package/lib/src/utils/Descriptions.js +120 -103
  53. package/package.json +3 -2
@@ -0,0 +1,932 @@
1
+
2
+ # clickview
3
+
4
+ ## Dependencies
5
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2574
6
+ * https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2573
7
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2572
8
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2549
9
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2549
10
+ - https://gitlab.cvinternal.net/clickview/back-end/Domain.Api/-/merge_requests/1055
11
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2543
12
+ - Jorge to implement https://clickview.atlassian.net/browse/CORE-955
13
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2538
14
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2528
15
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2536
16
+ - https://gitlab.cvinternal.net/clickview/front-end/ClickView.Curator/-/merge_requests/1002
17
+ - Release of X1(hotfix search from Prad)
18
+ - https://gitlab.cvinternal.net/clickview/back-end/batch.api/-/merge_requests/56
19
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2516
20
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2513
21
+ - https://gitlab.cvinternal.net/clickview/back-end/users.api/-/merge_requests/129
22
+ - https://gitlab.cvinternal.net/clickview/back-end/ClickView.OnlineApi/-/merge_requests/404
23
+ - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/217
24
+ - https://gitlab.cvinternal.net/clickview/front-end/ClickView.Curator/-/merge_requests/927
25
+ - https://gitlab.cvinternal.net/clickview/front-end/ClickView.Online/-/merge_requests/3108
26
+ - https://gitlab.cvinternal.net/clickview/front-end/Analytics.Web/-/merge_requests/66
27
+ - https://gitlab.cvinternal.net/clickview/front-end/Cloud/-/merge_requests/647
28
+
29
+ ## Lite
30
+
31
+ ### Code changes
32
+ - Fix a bug when a nested filter parent option is selected(for example, the presentation option in year group filter), then reload the page, clicking the selected parent option will fail to uncheck. Fix INBOX-3975.
33
+ - Pass `reset` option to formik `onDone` function when successfully updated the password
34
+ - `edited-video-available` notifications will now check for an `appLink` before falling back to `link`. Partially implements INBOX-3984
35
+ - Add new request to get the correct audiences by presentationId
36
+ - Add `flex-shrink-0` className to the container of Avatar in `RecentActivities` component.
37
+ - Video `appLink` support `VideoType` and renamed to `videoType` so that the widget item in preview page is clickable.
38
+ - Request for heatmap to get latest visit time when login as learner.
39
+ - Remove the check of having `preventScrubbingInteractives` domain option to show the preview option.
40
+ - Edit interactive page should never apply prevent scrubbing feature.
41
+ - Extract `useFetchHeatMap` hook.
42
+ - Updated curated dashboards to be filtered by the logged in user's user type, or not filter by user type at all if the user is a curator previewing a dashboard. Implements LTE-1497
43
+ - Updated curated dashboards to be filtered by "published" for regular users. This filter won't apply for curator's who are previewing a dashboard as the dashboard could be any status. Implements LTE-1497
44
+ - Updated `TranslateTermsMiddleware` to use `StoreHelper` when retrieving the `currentUser`
45
+ - Added `requestUrl` processing when initializing `lite`
46
+ -
47
+ - Updated each settings page to redirect based on if the user has access to that settings module from `useGetSettingsGroups`
48
+ - Changed the `useInitPlayerContext` hook to a `usePlayerContext` hook, which is now used in every place referencing the player data instead of using `useViewModel` explicitly.
49
+ - Wrapped every call to `setDeepLink` in a `useEffect` hook so that it wouldn't run on every single render
50
+ - Completely replaced all usage of `react-sortable-hoc` with `@dnd-kit/core`, `@dnd-kit/sortable` and `@dnd-kit/modifiers` for reordering a list of components.
51
+ - Refactor code in `useVideoMixin` that React no longer tolerates
52
+
53
+ ### Customer changes
54
+ - Fix the `/join/` route not working if it has a trailing `/`. Fixes INBOX-4030.
55
+ - Fix the `join/<joinCode>` route not working with an invalid join code when the user is not signed in: Fixes INBOX-4028.
56
+ - Fix the behavior of the back button on the join classroom code page. Fixes INBOX-4029.
57
+ - The password change form will be reset to empty when users have successfully reset their password. Implement INBOX-4051
58
+ - Settings page on smaller screens should scale properly. Fixes INBOX-3634.
59
+ - When viewing topic from another presentation, the correct auidence group and audience filter will be displayed. Fix LTE-1502
60
+ - Fix squished user avatar in recent activities of the student feed. Fix INBOX-3959
61
+ - Fix user aggregation in user manager wizard not having current state after editing a user. Fixes INBOX-3996
62
+ - The shadow on the splash screen for the video embeds has been lightened. Implements INBOX-3985
63
+ - Widget in the preview dashboard page accept int/clip.
64
+ - Fix 'Continue' watching behaviour in interactive. Fix STG-82.
65
+ - The preview prevent-scrubbing option should be shown when you have the option enabled in an interactive.
66
+ - Fixed a bug where staff in NP could view topic and discover dashboards that were curated for students. They will now only see curated dashboards that are made for staff or for anyone
67
+ - Added support for managing SSO year group mappings to settings. Implements LTE-1470 and implements LTE-1494
68
+
69
+ ## Library editor
70
+
71
+ ### Code changes
72
+ - `captions-available` and `edited-video-available` notifications will now check for an `appLink` before falling back to `link`. Partially implements INBOX-3984
73
+
74
+ ## Online
75
+
76
+ ### Customer changes
77
+ - In edit workspace video page, learners can only choose video rating from the ratings they are allowed to watch.
78
+ - Fix user aggregation in user manager wizard not having current state after editing a user. Fixes INBOX-3996
79
+
80
+ ### Code changes
81
+ - Fix a bug that student can edit workspace video rating above their max rating. Fix INBOX-3908.
82
+ - Completely replaced all usage of `react-sortable-hoc` with `@dnd-kit/core`, `@dnd-kit/sortable` and `@dnd-kit/modifiers` for reordering a list of components.
83
+
84
+ ## Reports
85
+
86
+ ### Customer changes
87
+ * Fixed a bug where the incorrect day is displayed when performing a custom date range
88
+ * Fixes INBOX-3980
89
+
90
+ ### Code changes
91
+ - Updated `useGetDateRangeFromQueryParams` to set the date to UTC time rather than local time when parsing from the querystring
92
+ - The background to this is that when we select a date in the custom range selector, it's done so in local time. We then covert it to a simple date format for managing the query param. At this point we lose precision in the date and have no concept of a timezone, so when we parse it back into the JS we do so using local time, which will add the appropriate offset for that timezone (thus, pushing dates back a day).
93
+
94
+ ## Curator
95
+
96
+ ### Customer changes
97
+ - The presentation list in playlist audiences page will is corrected to subject presentations(was curriculum presentations).
98
+ - (dev only) Added a clips tab to the backbone classification page. Implements CC-404
99
+ - (dev only) Added an interactives tab to the backbone classification page. Implements CC-404
100
+ - Improved typeahead results for playlist instant search
101
+ - Playlist Id and internal description will now be displayed in results
102
+ - Implements INBOX-3860
103
+
104
+ ![0](https://i.imgur.com/VS7sLaZ.png)
105
+ - Add clips sub-page to new edit video page. Implements CC-378.
106
+ - Add interactives sub-page to new edit video page. Implements CC-379.
107
+ * (dev only) Added a clips tab to the backbone classification page. Implements CC-402
108
+ * (dev only) Added an interactives tab to the backbone classification page. Implements CC-402
109
+ - (dev only) Added a clips tab to the audiences page. Implements CC-403
110
+ - (dev only) Added an interactives tab to the audiences page. Implements CC-403
111
+ - (dev only) Added a clips tab to the classifications page. Implements CC-399
112
+ - (dev only) Added an interactives tab to the classifications page. Implements CC-399
113
+ - Add video type filter when adding content for multiple media widget. Implements CC-365.
114
+ - Fixed a bug where editing the details for a discover dashboard from the dashboard list page would make the page behind the modal go blank. Fixes CC-393
115
+ - Now in curator, users can link a clip with backbone audiences. Implement CC-394;
116
+ - Now in curator, users can link a clip with available audiences. Implement CC-364;
117
+ - Now in curator, users can link an interactive with backbone audiences Implement CC-395;
118
+ - Now in curator, users can link an interactive with audiences. Implement CC-371;
119
+ - Fix user aggregation in user manager wizard not having current state after editing a user. Fixes INBOX-3996
120
+ - Now user can map a clip to the backbone classification. Implements CC-370
121
+ - Now user can map an interactive to the backbone classification. Implements CC-391
122
+ - Now user can map a clip to the available classification. Implements CC-390
123
+ - Now user can map an interactive to the available classification. Implements CC-376
124
+ - Added a "add to classifications" action option to the video workbench. Partially implements CC-359
125
+ - Fixed a bug where the curation studio wizard form validation would run in an infinite loop.
126
+ - Fixed a UI bug where the infinitely scrollable item list in Workbench would have extra space at the bottom. Fixes CC-383
127
+ - You can now add to / remove from working list on videos in future core pages. Implements CC-381
128
+ - Fixed an issue where removing an item from workbench from the wizard wouldn't remove from the actual working list in local storage. Fixes CC-382
129
+ - Changed all copy from "working list" to "workbench" or "your workbench". Partially implements CC-389
130
+ - Able to add interactive/clip in curated video widget. Implements CC-363.
131
+ - (remove from release notes) Curators can now bulk associate videos from their working list with backbone classifications. Implements CC-356
132
+ - Theme colours can now be edited on the theme edit page. Implements INBOX-3948
133
+ - Fixed an issue where the "Edit SSO Fields" switch would no longer show for product support. Fixes INBOX-3951
134
+ - Updated the "Edit SSO Fields" switch to appear disabled w/ a tooltip when the account doesn't login with SSO
135
+ - In Curation studio, the new widget type 'Recent uploads' is available when editing a Discover dashboard. Implement CC-344
136
+ - In Curation studio, the new template type 'Featured slider' is available when editing a Discover dashboard. Implement CC-355
137
+ - In Curation studio, the new template type 'Small poster slider' is available when editing a Discover dashboard. Implement CC-338
138
+ - Deletion button only enabled when the classification is drafted.
139
+ - After press delete button in classification details page, an input will show and ask to type classification name before proceeding deletion.
140
+
141
+ ### Code changes
142
+ - Audiences for playlist should be selected from subject presentations. Fix INBOX-4052.
143
+ - Add an empty state text to `AddContentLatestReleasedVideosView` when there are no recent-uploads videos
144
+ - Updated instant search url to use existing endpoint in curator rather than passthrough to Domain API
145
+ - This is due to the internal description being populated on results from Curator's MongoDB
146
+ - Added `PlaylistSuggestionItem`
147
+ - Add video clips view and video interactives view under new edit video page.
148
+ - Apply video type filter in search endpoint for multiple media widget.
149
+ - Add EditClipAudiencesView and EditInteractiveAudiencesView;
150
+ - Add CURD to the Audiences Flight requests.
151
+ - Remove redundant `appLinks` props in add widget content components
152
+ - All template using `appLinks` should have optional chaining operator
153
+ - Add a new component to map clip or interactive to available classifications.
154
+ - Add a shared component to map backbone classification and classification.
155
+ - Add the removing clip/interactive from classification actions.
156
+ - Add new column definition to MemberMatrix helper.
157
+ - Update content guideline to match validation min/max number.
158
+ - Extract min/max of content guideline and match these values with validator.
159
+ - Navigate clip/int link in widget content to its classification page. Implements CC-401.
160
+ - Add `Classification` and `Audiences` subtabs to the `Content -> Clips` and `Content -> Interactivess` tabs in Curator. Implements CC-362.
161
+ - Removed `objects` from the workbench wizard view model. Each view that requires this will now retrieve these objects from the flight cache, or just reference the set of IDs in `useWorkingList`
162
+ - Added Clips and Interactives application. Implements CC-369
163
+ - Add interactive/clip to search index
164
+ - Support interactive/clip in widget wizard table
165
+ - Update formView for `CuratedClassification` widget to support customized extra content (user-uploaded image and input)
166
+ - Add `AddContentLatestReleasedVideosView` to support new template
167
+ - Update 'DiscoverDashbaord' shared component to support new template & widget in Lite and Curation studio.
168
+ - Add challenge input textbox before deletion. Implements INBOX-3941.
169
+ - Only drafted classification can be deleted.
170
+ - Fixed up some minor code issues highlighted by the React 18 upgrade.
171
+ - Completely replaced all usage of `react-sortable-hoc` with `@dnd-kit/core`, `@dnd-kit/sortable` and `@dnd-kit/modifiers` for reordering a list of components.
172
+
173
+ ## Player
174
+
175
+ ### Customer changes
176
+ - The player will now persist the user's selected playback rate. Implements INBOX-3961.
177
+ - The shadow on the splash screen for the video player has been lightened. Implements INBOX-3985
178
+
179
+ ### Code changes
180
+ - Prevent an issue where non interactive players would still call `.preventScrubbingPlugin()` without any option, which would cause error that prevent those components from working.
181
+ - Dispose of interactive player after re-render. Fixes LTE-1538
182
+ - Rename props to `isPreviewOrEditing` to NOT applying prevent scrubbing feature in edit interactive page.
183
+ - Completely replaced all usage of `react-sortable-hoc` with `@dnd-kit/core`, `@dnd-kit/sortable` and `@dnd-kit/modifiers` for reordering a list of components.
184
+ - Updated any React code to use the latest `react-dom` APIs
185
+
186
+ ## Shared
187
+
188
+ ### Customer changes
189
+ - Add optional video type filter(videos/clips/interactives) in search bar.
190
+ - Validation in user manager (bulk and single edit/create) should now feel faster and better. Errors for "username already exists" and "email already exists" will not be detected until after the user has clicked submit on the edit user form. Fixes LTE-1472
191
+
192
+ ### Code changes
193
+ - Add `CustomDropdown` component.
194
+ - Add `VideoTypeFilter` component.
195
+ - Add video filter UI in search bar.
196
+ - Make template props `appLinks` optional. Implements CC-375.
197
+ - `ExpandableVideoThumbnail` accept clip/interactive. Implements CC-387.
198
+ - Remove `preventScrubbingInteractives` domain option as it's going to publish for everyone.
199
+ - Move `SearchIndices` constants to shared
200
+ - Minor refactor of `onSelectCuratedObject`
201
+ - Clean up the attributes of widget SVG assets Implements LTE-1517
202
+ - Added `StoreHelper` and moved exposed `getCurrentUserFromStore` function to `shared`
203
+ - Add `getRequestUrl` and `getWrappedFetchDataOptions`
204
+ - The `onDone` callback passed to form submit handlers now accepts an `errors` object that will set field errors on the form
205
+ - Fixed up some minor code issues highlighted by the React 18 upgrade.
206
+ - Completely replaced all usage of `react-sortable-hoc` with `@dnd-kit/core`, `@dnd-kit/sortable` and `@dnd-kit/modifiers` for reordering a list of components.
207
+ - Updated `formik` to version 2.2.9
208
+ - Added `react-custom-scrollbars` as an explicit dependency.
209
+
210
+ ## Analytics
211
+
212
+ ### Code changes
213
+ - Fixed up some minor code issues highlighted by the React 18 upgrade.
214
+
215
+ ## Common
216
+
217
+ ### Code changes
218
+ - Fixed a bug in `useViewModel` where if local or session storage is used, the state saved in the storage location is not immediately returned on first render.
219
+ - Added `PublicRequest` interface to `Flight`
220
+ - Added `PublicRequestHelper`
221
+ - Added interfaces for `FetchDataOptions` & `FetchDataOptionsHandler`
222
+ - Update `FlightMiddleware` to optionally process `getFetchOptions`
223
+ -
224
+ - Add `useFirst` hook to retain first render value.
225
+ - Updated `react` to version 18.1.0. Implements CORE-768
226
+ - Updated `react-dom` to version 18.1.0. Implements CORE-768
227
+ - Updated `react-redux` to version 8.0.2. Implements CORE-768
228
+ - Updated `ReactLayoutView` to use features from `react-dom` 18+. Implements CORE-768
229
+ - Updated `useViewModel` to wrap the initial `setState` call in a `useEffect` hook
230
+ - Updated `Flight.useBasicFetch` to not call `fetchData` every time it runs.
231
+
232
+ ## Testing
233
+ - In new analytics:
234
+ - Change your PC's local time to be set to any timezone _behind_ UTC
235
+ - Select a custom range in the datepicker UI
236
+ - Observe that the selected date range in the UI remains the same as the selected dates
237
+ - Talk to Mike if there's any concerns or questions around this.
238
+ - We've added functionality to persist the player's playback rate between different videos, and through page loads. Please give this a test and try to break it.
239
+ - In curator, the presentation list in playlist audiences page are subject presentations.
240
+ - In NP, login with an account with multiple preso, select a presentation option in year group filter then apply the filter. Refresh the page and try to toggle the same selected option, it should deselect the option and deselect all children options.
241
+ - Testing join classroom changes in NP:
242
+ - Ensure `https://www.staging.clickview.net/join/` loads.
243
+ - Go to `https://www.staging.clickview.net/join/1234` while not signed in and ensure you see an error message that the join link is invalid.
244
+ - Go to `https://www.staging.clickview.net/`, click "Enter class code". Click the back icon in the top left. The "Enter class code" link should still be there.
245
+ - In Lite, reset the password. After successfully resetting the password, the form field should be reset to empty. If there are some errors when updating the password, the form field input will be kept.
246
+ - When viewing videos in NP, make sure the time display and chapter display on hover show properly.
247
+ - Ensure that the prevent seeking ahead behaviour is working as expected
248
+ - In Curation Studio, when creating a Recent uploads widget, if there's no recent uploads content, an empty text will show up. And in the dashboard preview, this widget won't show up.
249
+ - Devs should be able to view the clips and interactives for a backbone classification w/ new tabs.c
250
+ - In Curator, when searching in the playlist typeahead, it will show results with more metadata - [example](https://i.imgur.com/VS7sLaZ.png)
251
+ - In curation studio, find a video and open it with new edit video page, click 'interactives' sub-page, it will list the interactives that belongs to the selected video. The title for interactive will link you to its edit interactive's classification page. Note: No test for Clips since it's using testing data atm.
252
+ * Devs should be able to view the clips and interactives for a backbone classification w/ new tabs.
253
+ - Devs should be able to view the clips and interactives for an audience w/ new tabs.
254
+ - When viewing a classification in curator, you should see new "clips" and "interactives" tabs that will display all clips and interactive associated to that classification
255
+ - In curation studio, when adding content for multiple media widget
256
+ - Search results contain every video type when there is no filter selected.
257
+ - Search results contain ONLY selected video type when filter is selected.
258
+ - Open your browser console. Navigate to an interactive created on top of a clip. Click "Back to {clip name}". No error should be logged to the console.
259
+ - In curator, when editing a clip, users can link it to backbone audiences and then link it to the available audiences.
260
+ - In curator, when editing an interactive, users can link it to backbone audiences and the available audiences.
261
+ - In curator, a regression test on link video/series/playlist to backbone audiences association. They should work as before.
262
+ - Autocaptions available and "edited video available" notifications should still work in LE and NP
263
+ - In online editing workspace video page, learners can only choose video rating from the ratings they are allowed to watch, which match the rating options in uploading workspace video page.
264
+ - Navigate to settings page in NP.
265
+ - Use dev tools to resize the viewport to Ipad mini or you can use the responsive setting and resize the width manually to `768px`
266
+ - The setting group containers should scale correctly like below:
267
+ - ![image](/uploads/32b96f7266590918670993fbc3d54f3b/image.png)
268
+ - When viewing topic from another presentation, the correct auidence group and audience filter will be displayed.
269
+ - In lite, log as student, in the recent activities section, the avatar should stay the same size.
270
+ - ![image](/uploads/255885cb8c072e4eeb6ddf258e786082/image.png)
271
+ - In user manager (any product), select 1 activated user and go to the user manager wizard. Not that you can run a deactivate action but not delete or reactivate. Go back to the user manager page (no page reload) and deactivate the user. Select them again and enter the wizard again. The reactivate and delete actions should become available and the deactivate action should be disabled.
272
+ - In student manager (any product), select 1 student (note their year group) and go to the "change year group" action. Then go back to student manager and change their year group. Go back to the wizard and to the "change year group" action. The year group list should be up to date with the change you made to the student's year group.
273
+ - Embeds and video player in NP should have a lighter shadow on the splash screen
274
+ - In Curator, when editing a clip, in the `Topic` sub-tab, Backbone Classification section, users should be able to browse all backbone classifications and select backbone classification to map to the current clip.
275
+ - In Curator, when editing an interactive, in the `Topic` sub-tab, Backbone classification section, users should be able to browse all backbone classifications and select backbone classification to map to the current interactive.
276
+ - In Curator, when editing a clip, in the `Topic` sub-tab, Classification section, users should be able to map available classifications to the current clip.
277
+ - In Curator, when editing an interactive, in the `Topic` sub-tab, classification section, users should be able to map available classifications to the current interactive.
278
+ - In curation studio dashboard preview section, clip and interactive will show if you added them in the curated media widget.
279
+ - In lite preview dashboard page, clip and interactive are supported in the media widget. Click the item will navigate to play page.
280
+ - In curator, URL `/manage/clips/{clipId}` will automatically redirect to `/manage/clips/{clipId}/classification`, and on that page, a sub-nav of 'Topics' and 'Audiences' can be seen. They will link to `/manage/clips/{clipId}/classification` and `/manage/clips/{clipId}/audiences` respectively.
281
+ - In curator, URL `/manage/interactives/{interactiveId}` will automatically redirect to `/manage/interactives/{interactiveId}/classification`, and on that page, a sub-nav of 'Topics' and 'Audiences' can be seen. They will link to `/manage/interactives/{interactiveId}/classification` and `/manage/interactives/{interactiveId}/audiences` respectively.
282
+ - In an interactive player in NP, the preview-prevent-scrubbing option should show when you have the feature enabled for the interactive.
283
+ - In editing interactive page, it should never apply prevent scrubbing feature.
284
+ - 'Continue' watching behaviour in interactive should work as expected.
285
+ - In lite, prevent scrubbing should work for all the following scenarios
286
+ - preview as staff
287
+ - view as learner
288
+ - embedded as learner
289
+ - embedded as staff
290
+ - Add like 20 vids to your working list in curator, go to the workbench wizard, then scroll to the bottom of the list. You should not see any additional whitespace beneath the list of items (should just end at the bottom of the bottom item)
291
+ - Adding to / removing from working list from videos in future core pages should work.
292
+ - In workbench, go to the wizard first step and remove an item with the "X". Go back to the homepage for workbench and it should be removed from there too
293
+ - Test that audience filters in classifications are still persisted when you: go to a topic and set audiences -> navigate to discover -> click on some random topic. Audience filters from the first topic should still be set
294
+ - In curator, under Content, there are new Clip and Interactive subtabs.
295
+ - In widget wizard in curator, select curated video widget, and we are able to find clip/interactive in search results in adding content dialog. And we are able to select/deselect them. The selected content will show in the table.
296
+ - In the curation studio, all the widget icons and template icons should look as before.
297
+ - Bulk associating videos from your working list to backbone classifications in the "Workbench" tab as a dev account in curator works.
298
+ - In Curator, you should be able to manage colours for a theme.
299
+ - Product support accounts should see the "Edit SSO Fields" switch on the edit page for SSO accounts.
300
+ - In NP, LE and New Analytics a general regression is needed to ensure all pages load as expected.
301
+ - In Curator, when editing a discover dashboard, the Curation Studio should present the 'Recent uploads' widget option:
302
+ - ![image](/uploads/8519674532f4c2ed31dc23f144577c51/image.png)
303
+ - In Curator, when editing a discover dashboard, the Curation Studio should present the 'Featured Slider' template option after selecting 'Recent uploads' widget.
304
+ - ![image](/uploads/b0d7fb4228564dbd912fad9a4a2d92cc/image.png)
305
+ - In Curator, when editing a discover dashboard, after picking 'Recent uploads' widget + 'Featured Slider' template, user can edit the heading, upload and crop a banner image. The content would be auto-populated for them.
306
+ - ![image](/uploads/8e3c4b918be51b53bd210ef5c7d07892/image.png)
307
+ - In Curator, when editing a discover dashboard, a new template `Small poster slider` is available for 'List of children topics' widget
308
+ - ![image](/uploads/d4c91afd0f05ec753130f24956f9e39f/image.png)
309
+ - In Curator, when editing a discover dashboard, after picking 'List of child classificaiton' widget + 'Small Poster Slider', users can editing the heading, description, upload and crop a tall poster image, and title of that extra poster. And they can preview that uploaded poster as the first item.
310
+ - ![image](/uploads/528d75240bde1e44e0cca52955f9bde5/image.png)
311
+ - In edit classification details page of curator,
312
+ - only drafted classification can be deleted.
313
+ - when clicking delete button, a challenge input will appear in the confirm dialog. The confirm button will only be enabled when the classification name is matched.
314
+ - In user manager, stress test the validation for forms for: new users, editing existing users, staff, students, bulk upload, etc. Everything should work perfectly fine. In particular make sure to test the "username / email already exists" error messages, which now only show up after you've clicked submit
315
+ - NP now supports managing SSO year group mappings. This page should work and the mappings should be respected
316
+ - [Massive regression test checklist for React 18 upgrade](https://clickview.quip.com/dsNuAvbXcvZB/React-18-Testing-Notes)
317
+
318
+
319
+ # Master.Auth
320
+
321
+ ## Code changes
322
+ - Fix lockout events not logged to snowflake because we have no instance region. Always log to AU snowflake. Fixes INBOX-3922
323
+
324
+ - Delete Customer Idp Mappings when a customer is deleted. Closes INBOX-4032
325
+ - Delete Customer settings when a customer is deleted
326
+
327
+ - Add `robots.txt` to block everything just in case. Closes INBOX-4059
328
+
329
+ - Create scope for managing access policies
330
+
331
+
332
+ ## Testing
333
+ - when you are locked out of your account, there should be an event in snowflake
334
+
335
+ - Add an idp mapping to a customer in auth, then delete the customer from master api. The idp mapping should also be deleted
336
+ - Deleting a customer should not delete all idp mappings
337
+
338
+ - `/robots.txt` exists
339
+
340
+ - N/A
341
+
342
+
343
+
344
+ # FileGenerator
345
+
346
+ ## Code changes
347
+ * Making sure the new csv report doesn't contain videos with empty titles. Fixes INBOX-4027
348
+
349
+ - Remove migration report handler used for pbt. Closes CORE-650
350
+
351
+
352
+ ## Testing
353
+ * Generate a video usage report and make sure none of the video title columns are null or empty
354
+
355
+
356
+
357
+
358
+ # VideoProcessorService
359
+
360
+ ## Code changes
361
+ - Update ffmpeg from 4.4 to 5.1. Closes INBOX-4064
362
+
363
+ - Update build scripts to their latest versions
364
+
365
+
366
+ ## Testing
367
+ - Videos process when uploaded
368
+ - TV videos process when edted in high precision from cloud editor
369
+
370
+
371
+
372
+
373
+ # Discover.Api
374
+
375
+ ## Customer changes
376
+ - Non-curator users will see only `Published` dashboards and widgets
377
+
378
+ - For curated widgets, widgets contents will be presented in the same order as the objects were provided on the widget creation.
379
+
380
+ - Dashboards that use `classifications` widget can now filter classifications by `CanBePreferred`
381
+
382
+
383
+ ## Code changes
384
+ - If user is non-curator, set status filters to `Published`. Closes INBOX-4006
385
+
386
+ - Fix curated media test
387
+
388
+ - Content fetched from `Objects Api` is reordered according to the list of object Ids stored in `Discover Api`. Fixes (CORE-960)
389
+
390
+ - Added nullable boolean optional filter `canBePreferred` to be used on `classifications` widget data fetching. Implements CORE-942
391
+
392
+ - In `curated_media` widget, clips and interactives will also return parent media data with thumbnails. Closes CORE-955
393
+
394
+ - Update build scripts to their latest
395
+
396
+
397
+ ## Testing
398
+ - When accessing dashboards created in Curation Studio, if non-curator user, it should view only `Published` dashboards and widgets
399
+
400
+ - All tests should run successfully
401
+
402
+ - Curated widgets should present the correct order of objects, same order when objects were assigned on widget creation
403
+
404
+ - When fetching data in `Discover Api`, `classifications` widget, if optional filter `canBePreferred` is set, result data will be filtered accordingly (`true`/`false`).
405
+
406
+ - In `Discover API`, clips and interactives in `curated_media` widget should return parent media data with thumbnails.
407
+
408
+
409
+
410
+
411
+ # Curriculum.App
412
+
413
+ ## Customer changes
414
+ - Updated empty state strings when mapping content to the Scottish curriculum
415
+ - Implements INBOX-4034
416
+
417
+
418
+ ## Testing
419
+ - N/A
420
+
421
+
422
+
423
+ # Krakend
424
+
425
+ ## Dependencies
426
+ - https://gitlab.cvinternal.net/clickview/back-end/permissions.api/-/merge_requests/28
427
+
428
+
429
+ ## Code changes
430
+ * Add a new endpoint `GET /v1/customers/{id}/sso-year-group-mappings` to fetch a list of sso year group mappings for a customer
431
+ * Add a new endpoint `POST /v1/customers/{id}/sso-year-group-mappings` to set sso year group mappings for a customer
432
+
433
+ - Use the new permissions endpoint: `v1/users/permissions`
434
+
435
+
436
+ ## Testing
437
+ * Hitting `GET /v1/customers/{id}/sso-year-group-mappings` should return a list of sso year group mappings
438
+ * Hitting `POST /v1/customers/{id}/sso-year-group-mappings` should allow you to set year group mappings for a customer
439
+
440
+ - Visiting [Settings](https://www.clickview.net/settings) as an Admin should show the User Management section, but visting as a Learner shouldn't.
441
+
442
+
443
+
444
+ # TvProgramMonitor.App
445
+
446
+ ## Code changes
447
+ - Upgrade to .net 6.0
448
+
449
+
450
+ ## Testing
451
+ - The app should work as usual. I.e. fetch missing EPG programs every 8 hours
452
+
453
+
454
+
455
+ # Objects.Api
456
+
457
+ ## Code changes
458
+ - Update `ClickViewContentHandler` virtual assoc handler to use the master service `IsClickViewContentAsync`
459
+
460
+ - Add `IsPublicUserContext` checks to all update object checks to prevent public users from updating objects
461
+
462
+ - Add `IsPublicUserContext` checks to all create checks to prevent public users from creating objects
463
+
464
+ - Don't add to a reference of the video result list in `VideoService`. Return a list instead
465
+
466
+ - Ensure all assoc checks do not allow public access
467
+ - Almost all of these didn't however I've added a public check to short circuit a lot of them to avoid extra processing
468
+
469
+ * Added unit tests for `AccessService` methods. Implements CORE-876
470
+
471
+
472
+ ## Testing
473
+ - `IsClickViewContent` virtual assoc should be correct
474
+
475
+ - Basic smoke test of updating objects
476
+ - You should not be able to update any object with a public user context
477
+
478
+ - Basic smoke test of creating objects
479
+ - You should not be able to create any object with a public user context
480
+
481
+
482
+ - You should not be allowed to associate any objects to another when using a public user context
483
+
484
+ * All unit tests for `AccessService` should pass
485
+
486
+
487
+
488
+ # Share.Api
489
+
490
+ ## Code changes
491
+ * Fixes a bug where direct share was creating multiple feed records and multiple direct share requests.
492
+
493
+
494
+ ## Testing
495
+ * Directly sharing to multiple users should create a single feed record for each users
496
+
497
+
498
+
499
+ # ClickView Online
500
+
501
+ ## Dependencies
502
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
503
+
504
+
505
+ ## Customer changes
506
+ - If an NP user is viewing an Online share link, they will no longer see the "Training Channel" link and the ClickView logo will no longer have a link. Fixes INBOX-3832
507
+
508
+ - Fix users not being marked as SSO in new user manager (attempt #2). Fixes INBOX-3676
509
+
510
+ * Fixed a shared link broken issue after domain migration, because we have stopped updating the username/email in shortcode api when doing domain migration. Close INBOX-3789
511
+
512
+
513
+ ## Code changes
514
+ - Notifications now use the `appLink` field before referencing the old `link` field. Partially implements INBOX-3984
515
+ - Added a new shared `SafeUrlConcat` helper
516
+
517
+ - Add missing IdpCode mappings to the DataRender class
518
+ - Ensure all sql to get SsoMappings contains the same select statements
519
+
520
+ * Replace `username/email` with `UserId` when checking the owner of shared link because `username/email` is no longer saved in short code api
521
+ * Replace `CustomerId` with `MasterCustomerId` when checking the customer, because newly generated share link does not save `CustomerId` anymore
522
+
523
+ - Updated libraries to React 18. Partially implements CORE-770
524
+
525
+
526
+ ## Testing
527
+ - All notifications should show the correct icon
528
+
529
+ - All notification links should still work. Especially:
530
+ - Auto captions available
531
+ - Library request notifs
532
+ - Old staff request notifs
533
+ - Video available
534
+ - Video available in your custom library (when your staff request gets approved)
535
+
536
+ - Open an Online share link as an NP user (no online product). You should not have any links on your page that link somewhere else in Online, such as training channel or the ClickView logo
537
+
538
+ - In AU/UK/US/NZ, create a new user and login via SAML. The user should show up as a SAML user in new user manager
539
+
540
+ * Video should be played back normally after domain migration
541
+
542
+
543
+
544
+
545
+ # Lite
546
+
547
+ ## Dependencies
548
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
549
+
550
+
551
+ ## Code changes
552
+ - Add `App()` to `BaseController` and rename `Home/Index.cshtml to `Shared/App.cshtml`
553
+ - Replace all `View("Index", ViewModel)` with `App()`
554
+
555
+ - Added new `GeoLocationService`
556
+ - Added `CloudflareGeoLocationProvider` which uses cloudflare headers
557
+ - Added `MaxMindGeoLocationProvider` which uses maxmind
558
+
559
+ - Updated libraries to React 18. Partially implements CORE-770
560
+
561
+
562
+ ## Testing
563
+ - Lite loads
564
+
565
+
566
+
567
+
568
+
569
+ # notification-service
570
+
571
+ ## Before release
572
+ - Remove online api urls from octo
573
+
574
+
575
+ ## Code changes
576
+ - Replace custom auth token handling with .NET JWT Bearer token handler. Closes CORE-121
577
+ - Remove `AuthClient`
578
+ - Remove `AuthService`
579
+ - Remove `Microsoft.AspNetCore.Mvc.WebApiCompatShim` as its not needed
580
+
581
+ - Remove old app `/v1/app/notifications` endpoints
582
+ - Remove `OnlineApiClient` and factory
583
+
584
+ - Fix all obsolete warnings
585
+ - Replace `RNGCryptoServiceProvider` with `RandomNumberGenerator`
586
+ - Replace `SHA256Managed` with `SHA256`
587
+ - Remove `PreserveAsyncOrder` in Redis
588
+ - Remove unused config values
589
+ - Remove old packages that are not needed
590
+ - `RabbitMq.Client` (is in QueueClient)
591
+ - `System.Dynamic.Runtime`
592
+ - `RestClient` (what is this?)
593
+ - `Microsoft.Extensions.Hosting.WindowsServices`, `Microsoft.Extensions.Hosting.Systemd` and `Microsoft.Extensions.Hosting`
594
+ - `ClickView.VPS.Common` as its in domain models anyway
595
+ - Update packages
596
+ - `ClickView.Models` from dev version
597
+ - `AWS` packages to latest
598
+ - delete all assemblyinfo classes
599
+ - Cleanup csproj files
600
+
601
+ - Delete old staff request notifications
602
+
603
+
604
+ ## Testing
605
+ - Mobile notifications still work (ask John and Boris)
606
+ - Notifications in the product are pushed to the user
607
+ - Opening notifications will mark them as seen (the count will go down to 0)
608
+
609
+ - Mobile notifications still work (ask John and Boris)
610
+
611
+ - Notifications work as expected
612
+ - Count is sent
613
+ - New notifications are sent
614
+ - Viewing the list of notifications work
615
+ - Push notifications work (in mobile and web)
616
+
617
+
618
+
619
+
620
+ # Hydration.App
621
+
622
+ ## Code changes
623
+ * Using accessible presentations by customer instead of accessible presentations by user to filter out presentations in stream hydrated events. Fixes INBOX-3946
624
+ * The old method filtered out all the presentations that weren't accessible by the user in the stream event but the problem was that, when a teacher shared a content to student that was in a presentation that student couldn't access, the presentation and classification information of that content was being filtered out
625
+
626
+
627
+ ## Testing
628
+ * Share a video that is in presentation that a student can't access. When the student watches the video, the `Topics` usage count in analytics should increment
629
+
630
+
631
+
632
+ # Domain.Api
633
+
634
+ ## Code changes
635
+ - Adding a v2 version of `v1/interactives/metadata/{metadataId}/users/{userId}/latest-session` which now takes a shareId and will scope the response to only latest sessions for the shareId passed in. Partially fixes INBOX-3974.
636
+
637
+ - Create `v1/subjects/presentations/{presentationId}/audiences` endpoint, for fetching audiences by presentation
638
+
639
+
640
+ ## Testing
641
+
642
+ - N/A
643
+
644
+
645
+
646
+ # LTI
647
+
648
+ ## Code changes
649
+ - Upgrade project to .NET6. Closes INBOX-3498
650
+ - Update build scripts to their latest versions
651
+ - Replace `ClickView.LtiAdvantage` with the official "alpha" version at `LtiAdvantage`
652
+ - Remove `IdentityServer4.AccessTokenValidation` as its no longer maintained
653
+
654
+
655
+ ## Testing
656
+ - Ensure that LTI still works
657
+
658
+
659
+
660
+ # CurriculumIngestion.Api
661
+
662
+ ## Code changes
663
+ - Support Next Generation Science Standards curriculum. Implements INBOX-3989.
664
+
665
+
666
+ ## Testing
667
+ - N/A
668
+
669
+
670
+
671
+ # index.app
672
+
673
+ ## Code changes
674
+ * Master API client wasn't being assigned in the constructor
675
+
676
+
677
+ ## Testing
678
+ * When series is classification is updated, it should reflect the change in the index
679
+
680
+
681
+
682
+ # ClickView.Curator
683
+
684
+ ## Dependencies
685
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2536
686
+
687
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
688
+
689
+
690
+ ## Customer changes
691
+ - Changed all copy from "working list" or "working set" to "workbench" or "your workbench". Partially implements CC-389
692
+
693
+
694
+ ## Code changes
695
+ - Add `Clips` and `Interactives` tabs under `Content` in Curator Implements CC-369
696
+
697
+ - Updated libraries to React 18. Partially implements CORE-770
698
+
699
+
700
+ ## Testing
701
+
702
+ - In curator, the new `Clips` and `Interactives` tabs under `Content` will only be displayed when users log in as dev.
703
+
704
+
705
+
706
+
707
+ # Subjects.API
708
+
709
+ ## Dependencies
710
+ - Should be released after https://gitlab.cvinternal.net/clickview/back-end/Master.Api/-/merge_requests/735
711
+
712
+
713
+ ## Customer changes
714
+ - Subjects api allows add interactives and clips to classifications and audiences.
715
+
716
+
717
+ ## Code changes
718
+ - Update build scripts to their latest
719
+
720
+ - Added `Interactives` and `Clips` to method `GetClassificationMemberType`
721
+ - Added new controller `AudienceV2Controller` to use Master Api V2 controller to add interactives and clips to a specific audience
722
+ - Added new controller `MasterObjectV2Controller` to use Master Api V2 controller to add interactive/clip to multiple audiences. Implements CORE-945
723
+
724
+
725
+ ## Testing
726
+
727
+ - In Subjects Api, Clips and interactives can be added to Classifications and Audiences
728
+
729
+
730
+
731
+ # Users.Api
732
+
733
+ ## Dependencies
734
+ * https://gitlab.cvinternal.net/clickview/back-end/ClickView.OnlineApi/-/merge_requests/404
735
+
736
+
737
+ ## Customer changes
738
+ * Fix an issue where US date time format is shown for `Last Sign In Time`in the user report when exporting users using new user manager. Close INBOX-3907
739
+
740
+ * Add endpoints to allow NP to set and get sso year group mappings. Partially implements CORE-930
741
+
742
+
743
+ ## Code changes
744
+ * Use `ISO 8601` date time format to standardize the date time display across all regions.
745
+ * Start the application in console mode instead of IIS express
746
+
747
+ * Add new endpoint `GET v1/customers/{id}/sso-year-group-mappings` to fetch sso year group mappings of a customer
748
+ * Add new endpoint `POST v1/customers/{id}/sso-year-group-mappings` to add or update sso year group mappings for a customer
749
+
750
+
751
+ ## Testing
752
+ * In student manager in NP, go to 3 dot next to search bar and choose `Export students`. After student csv file is downloaded, the `Last Sign In Time` column should have date time in the format like `2022-03-07T06:23:06 +00:00`
753
+
754
+ * Hitting `GET v1/customers/{id}/sso-year-group-mappings` endpoint should return a list of sso year group mappings
755
+ * Hitting `POST v1/customers/{id}/sso-year-group-mappings` endpoint should add or update sso year group mappings for a customer
756
+
757
+
758
+
759
+ # Batch.Api
760
+
761
+ ## Customer changes
762
+ - Updated the report for actions to associate objects to backbone classifications, backbone audiences, classifications, and audiences, to contain every single association that's occurred including the names and IDs of each associated object. Fixes CC-384
763
+
764
+
765
+ ## Code changes
766
+ - Updated handlers for associating objects to backbone classifications, backbone audiences, classifications, and audiences, to process each master object (video/playlist/series) 1 object at a time instead of processing each classification/audience/backbone one at a time. Implements CORE-954
767
+
768
+
769
+ ## Testing
770
+
771
+
772
+
773
+ # Master.Api
774
+
775
+ ## Customer changes
776
+ - Master api allows direct assoc between:
777
+ - `SubjectPresentationClassification` x `Interactives`
778
+ - `SubjectPresentationClassification` x `Clips`
779
+ - `SubjectPresentationAudience` x `Interactives`
780
+ - `SubjectPresentationAudience` x `Clips`
781
+
782
+
783
+ ## Code changes
784
+ - Added new `AssocType` `SUBJECT_PRESENTATION_AUDIENCE`. Implements CORE-944
785
+ - Added new type constraints for:
786
+ - `SubjectPresentationClassification` x `Interactives`
787
+ - `SubjectPresentationClassification` x `Clips`
788
+ - `SubjectPresentationAudience` x `Interactives`
789
+ - `SubjectPresentationAudience` x `Clips`
790
+
791
+
792
+ ## Testing
793
+ - In Master Api, Clips and interactives can be directly associated to Subject Presentation Classifications and Subject Presentation Audiences
794
+
795
+
796
+
797
+ # Permissions.Api
798
+
799
+ ## Before release
800
+ * Add `urls:domainApi` to Octo
801
+
802
+
803
+ ## Dependencies
804
+ - https://gitlab.cvinternal.net/clickview/back-end/Master.Auth/-/merge_requests/308
805
+
806
+
807
+ ## Code changes
808
+ - Add `/v1/users/permissions` to replace `/v1/users/{userId}/permissions`
809
+ - `UserId` is now optional, and if not specified will return permissions for a public user
810
+ - The public user logic uses the permission set "public"
811
+ - Renamed `MasterPermissionSetRepository` to `InMemoryPermissionSetRepository`
812
+ - Fixed sql error in `PermissionRepository.GetAllForSetAsync`
813
+
814
+ - Moved fluent validation handling logic to a `ValidatorPipeline` for MediatR. This fixes an issue that was preventing the permission create and update endpoints from being hit. @prad.nepal Updated `FluentValidation.AspNetCore` from `9.2.0` to `11.2.2` in W3, in this upgrade the warnings that were previously thrown about the async validation turned into exceptions. See https://docs.fluentvalidation.net/en/latest/async.html.
815
+
816
+ - Create `v1/access-policies/*` for access policy management
817
+ - Create `GET/POST/DELETE v1/customers/{customerId}/access-policies` for customer access policy management
818
+ - Create `AccessPolicyWorker` to move customers between policies on a schedule
819
+ - Create `AccessPolicyBehaviour` to filter a user's permissions based on their access policy
820
+ - Filtering only occurs when the new `customerId` query parameter is used on the `v1/users/permissions` and `v1/users/{userId}/permissions` endpoints
821
+ - Set `JsonIgnoreCondition.WhenWritingNull` so that null values are ignored
822
+
823
+
824
+ ## Testing
825
+ - Getting permissions for a user will return
826
+ - Getting permissions without a userId will return the public permissions
827
+
828
+ - Creating a permission with an unknown permission set should show the validation error "Unknown permission set"
829
+
830
+ - N/A
831
+
832
+
833
+
834
+ # Library.Api
835
+
836
+ ## Customer changes
837
+ * Fixed an issue where teachers can send library requests to unpublished custom library. Close INBOX-3923
838
+
839
+
840
+ ## Code changes
841
+ * Add library `CurationStatus` check to stop non-admin staff from adding library request to the unpublished library
842
+ * Return `Bad Request` with error type `library-not-published` error when calling `POST v1/library-requests` endpoint
843
+
844
+
845
+ ## Testing
846
+ * Non-admin staff can not send library request to unpublished custom library, but admin is still able to add video to their unpublished custom library
847
+
848
+
849
+
850
+ # ClickView.OnlineApi
851
+
852
+ ## Customer changes
853
+ * Add endpoints to allow online and user api to set and get sso year group mappings. Partially implements CORE-930
854
+
855
+
856
+ ## Code changes
857
+ * Add new endpoint `GET v2/admin/customers/{customerGuid}/sso-year-group-mappings` to fetch sso year group mappings of a customer
858
+ * Add new endpoint `POST v2/admin/customers/{customerGuid}/sso-year-group-mappings` to add or update sso year group mappings for a customer
859
+
860
+
861
+ ## Testing
862
+ * Hitting `GET v2/admin/customers/{customerGuid}/sso-year-group-mappings` endpoint should return a list of sso year group mappings if they exist, otherwise, an empty list should be returned
863
+ * Hitting `POST v2/admin/customers/{customerGuid}/sso-year-group-mappings` endpoint should add or update sso year group mappings for a customer
864
+
865
+
866
+
867
+ # ClickView.Cloud247.SpliceService
868
+
869
+ ## Before release
870
+ - Confirm that the web editor has be modified to divert curator tv workflow to vps and has been pushed to production
871
+
872
+
873
+ ## Code changes
874
+ - Remove curator video re-encoding logic with embedded ClickView watermark
875
+
876
+
877
+ ## Testing
878
+ - Video Splicing task requesting watermark on will be rejected.
879
+
880
+
881
+
882
+ # Integrations.Api
883
+
884
+ ## Code changes
885
+ - Update the `eslint-config` package version. Implement INBOX-3919
886
+ - Formatting code in according to the updated eslint rules
887
+
888
+
889
+ ## Testing
890
+
891
+
892
+
893
+ # Library Editor
894
+
895
+ ## Dependencies
896
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
897
+
898
+
899
+ ## Code changes
900
+ - Updated libraries to React 18. Partially implements CORE-770
901
+
902
+
903
+ ## Testing
904
+
905
+
906
+
907
+ # Analytics Web
908
+
909
+ ## Dependencies
910
+ - https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
911
+
912
+
913
+ ## Code changes
914
+ - Updated libraries to React 18. Partially implements CORE-770
915
+
916
+
917
+ ## Testing
918
+
919
+
920
+
921
+ # ClickView.Cron
922
+
923
+ ## Code changes
924
+ * Upgraded all projects to .net 6. Implements INBOX-3482 CORE-859
925
+ * Removed queue client factory
926
+ * Upgraded all packages
927
+
928
+
929
+ ## Testing
930
+ * Should work as usual
931
+
932
+