@clickview/ship-it 0.0.17 → 0.0.19

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 (48) hide show
  1. package/lib/src/constants/MonorepoPackageJsonFiles.js +2 -1
  2. package/lib/src/tasks/ValidateTask.js +3 -2
  3. package/package.json +1 -1
  4. package/dist/A3/A3 Testing Notes.csv +0 -890
  5. package/dist/A3/Analytics Web.md +0 -0
  6. package/dist/A3/ClickView Online.md +0 -28
  7. package/dist/A3/ClickView.Curator.md +0 -19
  8. package/dist/A3/Clients.md +0 -21
  9. package/dist/A3/Domain.Api.md +0 -15
  10. package/dist/A3/Krakend.md +0 -33
  11. package/dist/A3/Library Editor.md +0 -0
  12. package/dist/A3/Lite.md +0 -35
  13. package/dist/A3/Master.Api.md +0 -10
  14. package/dist/A3/Master.Auth.md +0 -51
  15. package/dist/A3/Release Notes.md +0 -683
  16. package/dist/A3/Subjects.API.md +0 -18
  17. package/dist/A3/Users.Api.md +0 -89
  18. package/dist/A3/clickview.md +0 -325
  19. package/dist/X3/X3 Testing Notes.csv +0 -1222
  20. package/dist/X3/X3 Testing Notes.xlsx +0 -0
  21. package/dist/Z1/Analytics Web.md +0 -0
  22. package/dist/Z1/ClickView Online.md +0 -24
  23. package/dist/Z1/ClickView.Cron.md +0 -8
  24. package/dist/Z1/ClickView.Curator.md +0 -28
  25. package/dist/Z1/ClickView.EmailService.md +0 -17
  26. package/dist/Z1/Clients.md +0 -29
  27. package/dist/Z1/Discover.Api.md +0 -20
  28. package/dist/Z1/Domain.Api.md +0 -34
  29. package/dist/Z1/FileGenerator.md +0 -13
  30. package/dist/Z1/Image.Api.md +0 -14
  31. package/dist/Z1/Krakend.md +0 -8
  32. package/dist/Z1/Library Editor.md +0 -0
  33. package/dist/Z1/Lite.md +0 -47
  34. package/dist/Z1/Master.Auth.md +0 -43
  35. package/dist/Z1/Objects.Api.md +0 -30
  36. package/dist/Z1/Permissions.Api.md +0 -10
  37. package/dist/Z1/Prospect.Api.md +0 -16
  38. package/dist/Z1/RealtimeSalesforceSync.md +0 -16
  39. package/dist/Z1/Release Notes.md +0 -855
  40. package/dist/Z1/Search.Api.md +0 -19
  41. package/dist/Z1/Share.Api.md +0 -12
  42. package/dist/Z1/Ship It.md +0 -23
  43. package/dist/Z1/Subjects.API.md +0 -16
  44. package/dist/Z1/Users.Api.md +0 -26
  45. package/dist/Z1/VideoProcessorService.md +0 -11
  46. package/dist/Z1/Z1 Testing Notes.csv +0 -1079
  47. package/dist/Z1/Z1 Testing Notes.xlsx +0 -0
  48. package/dist/Z1/clickview.md +0 -316
@@ -1,683 +0,0 @@
1
-
2
- # Users.Api
3
-
4
- ## Before release
5
- * [ ] Update `ClickView.Clients.*` nuget to the stable release version
6
-
7
- * [ ] Run `004-approved_domains_drop_columns.sql` script to drop both `Deleted` and `DateDeleted` columns
8
-
9
- - Update `ClickView.Clients.Prospect` to release version
10
-
11
- * [ ] Update `ClickView.Clients` to release versions
12
-
13
-
14
- ## Customer changes
15
- * Fixed an issue where an exception is thrown when deleting a user. Close STG-394
16
-
17
-
18
-
19
- ## Code changes
20
- * Update `ClickView.Clients.Master` to use the latest change in nuget package
21
- * Fixed a compilation error introduced in this MR https://gitlab.cvinternal.net/clickview/back-end/users.api/-/merge_requests/187
22
-
23
- * Include `Id` in the `SetApprovedDomainError` so that the frontend can use it to map the error if an `Id` is available
24
- * Validate all input domains and return error per domain if any
25
-
26
- * Throw `UserNotFoundException` (`404 Not Found` in response) if a user does not exist or has been deleted
27
- * Throw `CreateJoinRequestException` with different problem type (`400 Bad Request` in response) when creating join request
28
- * `create-join-request-failed` error code is returned if no specific problem type is specified
29
- * `user-type-not-supported` error code is returned if attempting to create join request for a learner account
30
- * `join-not-required` error code is returned if the user is already part of the customer
31
- * `join-request-already-pending` error code is returned if the user has already had a pending join request
32
- * `join-request-already-denied` error code is returned if the user has already had a denied join request
33
- * `user-email-invalid` error code is returned if the user does not have a valid email
34
- * `user-email-domain-not-approved` error code is returned if the user's email domain is not an approved domain
35
- * `join-request-not-allowed` error code is returned if the customer does not want any user to request to join
36
- * Allow new join request notification to be sent for `AccessType.RequiresApproval` and `AccessType.Anyone`
37
- * Set join request to `JoinRequestStatus.Approved` only if the customer's approved domain access type is `AccessType.Immediate`
38
- * Allow unverified email to be used for approved domain verification
39
-
40
- * Add new endpoint `POST v1/invites/internal` to allow sign up app in lite to create invitation on behalf of customer if the customer has full access and has auto-join enabled.
41
-
42
- * Update `CreateTrialAsync(ulong userId, CreateTrialRequest request)` to allow user to be added to the paid customer if the customer has auto join enabled and no braze and analytics event will be logged in this case
43
-
44
- * Add a new endpoint `PUT v1/customers/{id}/approved-domains` to bulk add/update/delete domains
45
- * Add new access types
46
- * `NotAllowed` - allow school to opt out join requests specifically, so that no one can request to join the school
47
- * `Anyone` - allow any user to request to join the school
48
- * Hard delete the record if deleting an approved domain is needed
49
- * Add `ApprovedDomainEntity` to separate data layer model from api view model
50
- * Add `UserAutoJoinAllowed` and `UserJoinApprovalRequired` status to `ProspectTrialStatus` enum
51
- * Update `GET v1/trials/prospects/{prosectId}/status` to return two new statuses for the active non-trial customer if they have approved domain setup to allow join request
52
- * Add `SetApprovedDomainError` to be included in `problems` property in the `400 Bad Request` response with error code `domain-validation-failed` if there is any error while setting the approved domain for a customer
53
- * `domain-duplicated`: The provided domains in the request body contain duplicated domain for the same customer
54
- * `domain-not-certified`: The provided domain is in our domain blacklist
55
- * `domain-already-exists`: The provided domain has already existed
56
- * `domain-empty`: The provided domain is an empty string
57
- * `deletion-item-missing-id`: The Id is not provided when an item is set to be deleted
58
-
59
- - Create an unverified email domain in User API for every new trial. Implements CORE-1124
60
-
61
- - Only allow sign ups for customers with an access policy that has `AllowSignup` set to `true`. Implements INBOX-4744
62
-
63
- - Use ClickView.Clients.Permission instead of local implementation
64
-
65
- - Removed existing Master Api clients
66
- - Added Master Api Clients package
67
- - Reviewed/adjusted all master API endpoints requests.
68
- Implements INBOX-4367
69
-
70
-
71
- ## Testing
72
- * A user can be deleted successfully when deleting a user in user manager
73
-
74
- * Setting two domains, one is in the blacklist and another is empty, and two errors should be returned and one for each domain.
75
-
76
-
77
-
78
- * Staff signs in via Google or Microsoft and chooses a paid customer with auto-join enabled, the user should be able to sign in to that school immediately
79
-
80
- * Hitting the endpoint `PUT v1/customers/{id}/approved-domains` with a list of domains should add them for the customer if not exists and update them if they already exists and also delete them if `ShouldDelete` property is set to `true`
81
- * Hitting `GET v1/trials/prospects/{prosectId}/status` endpoint with prospectId that is an active customer and has approved domain setup
82
-
83
- - Create a new trial and then ask Kevin if an unverified email domain has been created.
84
-
85
- - Ensure that sign up doesn't work for a school that has the `bdm_v1` access policy.
86
-
87
- - Sign up for a trial and ensure that the trial banner is shown
88
- - [Create a customer](https://staging.clickviewcurator.com/customers/new) and ensure that they have the correct products
89
-
90
- - All user API features should work as expected
91
-
92
-
93
-
94
- # Clients
95
-
96
- ## ClickView.Clients.Master
97
-
98
- ### Customer changes
99
- * Fixed an issue where Method not allowed error is thrown when deleting a user. Close STG-394
100
-
101
- ### Code changes
102
- * Use `v1/objects/{id}` for DELETE method
103
-
104
- ## ClickView.Clients.Prospect
105
-
106
- ### Code changes
107
- - Add `CreateDomainAsync` method
108
- - Remove brittle tests. Implements INBOX-4818
109
-
110
- ## ClickView.Clients.User
111
-
112
- ### Code changes
113
- - Add `CreateJoinRequestAsync` to create join requests for existing users.
114
-
115
- ## Testing
116
-
117
-
118
- # clickview
119
-
120
- ## Dependencies
121
- - Requires https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/368 and https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/382
122
- - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/381
123
- - Builds upon https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/3153, which should be merged first
124
- - Requires changes from https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/3150
125
- - https://gitlab.cvinternal.net/clickview/front-end/ClickView.Curator/-/merge_requests/1120
126
-
127
- ## Auth
128
-
129
- ### Customer changes
130
- - [Internal Access] When signing in via google or microsoft, users will now be prompted to tell us if they are an educator or a student.
131
- - [Internal Access] When signing into auth with a user that has no customers (i.e. Google and Microsoft sign up), you will be prompted to selected a prospect using the prospect selector from the Lite sign up. If you select an active customer who has correctly configured their domain settings, you will be able to either request to join the school, or automatically join the school, depending on the domain settings setup.
132
- - Added new job titles when signing up. Implements INBOX-4840.
133
- - `Head of Subject` for AU
134
- - `Subject lead` for US
135
-
136
- ### Code changes
137
- - Auth is now importing common, shared and analytics. As it currently stands, we will have to run a bundle analyzer with every release of auth to ensure that legacy dependencies are not pulled in, until we can come up with a dependency validation solution for the project.
138
- - The `CustomerView` is not immediately redirecting to the `ProspectSelectView` if the user does not have any customers.
139
- - The `IdpButton` has been split out into `IdpButton` and `GlobalIdpButton`.
140
- - `GlobalIdpButton` is used for IDPs that are displayed before we have a username or email.
141
- - `IdpButton` is used to select SSO after we are able to use the username or email to pull a list of IDPs (Which are just school names for any SAML setups)
142
-
143
- ## Common
144
-
145
- ### Code changes
146
- - Added support for appLink middleware processing in the `BaseAppRouter`
147
- - Update DateHelper isValid method.
148
- - Remove `useSetPageTitle`
149
- - Removed `PageTitleContext`
150
- - Replaced all usage of `useSetPageTitle` with `useSetPageMetadata`
151
-
152
- ## Curator
153
-
154
- ### Customer changes
155
- - Added video title to Tags tab on video edit page in Curator. Implements INBOX-4867
156
- - (dev only) Curation studio now contains a search bar and filter buttons that don't work. Implements CC-533
157
- - Fixed a bug where if you exported a dashboard's videos, or a topic's video table, and any video had commas or a "#" symbol in it, the CSV would be missing content. Fixes INBOX-4843
158
- - (dev only) All forms in the Ingestion stage of Curation Studio have been wired up to backend endpoints (although the form data that's fetched when you open the form is still mocked. any changes you make though will be persisted to the backend). Implements CC-528
159
- - (dev only) Implement bulk actions in the curation studio. Now curator can see the bulk action progress and result in the popup. Implement CC-508
160
- - (dev only) Added a table to the resourcing tab. Implements CC-511
161
-
162
- ### Code changes
163
- - Updated `FullScreenLayoutComponent` to use `PageMetadataContext`
164
- - Added `BreakpointsContextProvider`
165
-
166
- ## Library Editor
167
-
168
- ### Code changes
169
- - Replaced all usage of `useSetPageTitle` with `useSetPageMetadata`
170
- - Added `BreakpointsContextProvider`
171
-
172
- ## Lite
173
-
174
- ### Customer changes
175
- - Product urls will now contains a contextual school-level segment (aka presentation slug), reflecting the content they can access.
176
- - There is an explicit set of valid presentation slugs: `primary`, `secondary`, `tertiary`, `elementary`, `middle`, and `high`.
177
- - Use of any other values will result in a 404 when attempting to load the page.
178
- - Navigating to content within discover, topics, video, series, playlist and latest release will now contain the user's current presentation slug
179
- - For example: `/primary/topics` or `/secondary/video/`
180
- - In a context where a user has access to multiple presentations, using the presentation switcher will change their presentation and in turn, update their current urls.
181
- - When searching for a topic, the topic's parent presentation will now dictate the presentation slug for that link (as opposed to the user's current nominated presentation).
182
- - For example, searching for "Maths" in the US will yield topic results from multiple presentations. Selecting any one of these topics will navigate to the topic and set the presentation slug for that presentation.
183
- - This does not modify the user's underlying presentation selection and instead only exists for browsing. The presentation selector should remain unchanged in this circumstance.
184
- - Videos displayed in search results will currently use the user's existing presentation, this is due to the fact that a video can exist in multiple presentations.
185
- - All former urls (without the presentation slug) will continue to resolve and work as expected. All subsequent links with the product after that initial page load will incorporate the users' nominated presentation (applies to both public and authenticated states).
186
- - Specific contextual details:
187
- - For public/anonymous browsing:
188
- - The base region URL (i.e. `/au`, `/us`) will continue to prompt the user to select a presentation if they haven't already nominated one
189
- - Where a user accesses the public product via a URL containing the presentation slug, they will _not_ be prompted to nominate a presentation and the page will load as expected
190
- - All former public urls (without the presentation slug) will continue to resolve and work as expected. All subsequent links with the product after that initial page load will incorporate the users' nominated presentation.
191
- - For authenticated browsing:
192
- - The region segment should not be part of the url (as in public), but the presentation slug should be present.
193
- - Videos within `My Videos`, `Favorites` and `My Shares` will all contain slugs using the user's current presentation. This includes videos that the user has uploaded themselves. While this doesn't explicitly fit the model of content being contextual to a school-level, it was a trade-off made to ensure consistency across all videos.
194
- - It is currently not possible to access a link that contains a presentation slug not used in the user's own region.
195
- - For example: A US user accessing a url that has `primary` or `secondary` in the URL will not resolve correctly as it's not part of their available presentation set.
196
- - In future, we will prompt the user that they're attempting to access content outside of their region and re-direct them to the appropriate matching topic in their own presentation. This was not in scope of the current changes.
197
- - The "View usage" actions on clips and videos, and "View results" action on interactives will no longer appear for users who don't have access to the analytics product, such as free trial users. Fixes INBOX-4858
198
- - Fix the video count in the playlist header is not updating when a video is removed. Fix INBOX-4865
199
- - [Internal Access] When signing up, added the ability to automatically join active customer accounts, if they have set their domain settings to allow you to do so.
200
- - Now, public user can see special event calendar in Lite. Implements LTE-1871
201
- - Now if you try to visit calendar with an invalid month, a error state page will be displayed.
202
- - Now in content permission page, there is a link to learn more about content permission. Implements INBOX-4830
203
- - Fixed an issue where the "add to library" action would sometimes fail. Fixes INBOX-4852
204
- - Audience badges for UK Primary will now be more abbreviated (implements INBOX-4771). Some examples include:
205
- - "Reception" will now be shortened to "R" if it is displayed in a range, e.g. "R - Upper KS2"
206
- - If the range is "Lower Key Stage X - Upper Key Stage X" the "Upper" and "Lower" words will now be shortened to "U" and "L". Example: "L KS2 - KS2"
207
- - Added new job titles when signing up. Implements INBOX-4840
208
- - `Head of Subject` for AU
209
- - `Subject lead` for US
210
- - Clicking on a resource on the public play page will now display the sign-up popup
211
-
212
- ### Code changes
213
- - Add `presentationSlug` segment to discover, topics, video, series, playlist and latest release URLs
214
- - Added new middleware for processing URL segments and applink resolution
215
- - `RegisterRouteMiddleware` is executed at start up to manage:
216
- - Region prefix resolution by an AppRouter
217
- - Presentation slug resolution by an AppRouter
218
- - Creates "synthetic" routes for all valid presentation routes. These are not exposed to underlying applications and allow existing applinks to be resolved transparently.
219
- - `RegisterAppLinkMiddleware` is executed at start up to manage:
220
- - Interception and mutation of applinks during route execution
221
- - There's 3 lifecycle methods:
222
- - `onBeforeExecute`: Used to augment an applink when building hrefs and internal route lookups
223
- - `onExecute`: Used to augment an applink _before_ out Filter middleware executes
224
- - `onAfterExexcute`: Used to augment an applink after Filter middleware has executed, but before invoking the routes method handler in an application. With this mechanism it's possible to modify which args and params are passed down to the application layer.
225
- - Removed legacy `DashboardView` and `ClassificationView`
226
- - We'll be able to deprecate the domain options as a result of this
227
- - Remove the `monthDate` query param, and add it to the route.
228
- - Fixed a bug where sometimes making a library request would fail because the `sourceCategoryId` wasn't in the `sourceLibraryId`. Now, the `sourceCategoryId` will always be a category within the `sourceLibraryId`.
229
- - Add local permission for `ViewVideoResourceItems`
230
- - Add `canViewResourceItems` to `useVideoFeatureAccess`
231
- - Update `childAppLink` handling for public `ResourceWidgetItem`
232
- - Replace all usage of `useSetPageTitle` in `projects/lite/*` with `useSetPageMetadata`
233
- - Remove unnecessary page title changes for Playlist popups
234
- - Replaced usage of `@include media` with Bootstrap's media query mixin. Partially implements INBOX-4474
235
- - Replaced usage of `useGetMediaQueryString` with `useBreakpoints`. Partially implements INBOX-4474
236
- - Added `BreakpointsContextProvider`
237
-
238
- ## Monorepo
239
-
240
- ### Code changes
241
- - Simplified the example .npmrc file (the previous example was deceitful as it worked in some situations but not in others).
242
- - Added some documentation about Node, NPM and `.npmrc` prerequisites.
243
- - Changed the `Getting Started` section to include an initial `npm ci` step and removed the instruction to install `lerna` and `symlin-dir` globally as this does not appear to be necessary anymore.
244
- - Also added `.DS_Store` to the `.gitignore` because MacOS generates these annoying hidden files every time you open a folder using the file explorer.
245
-
246
- ## Online
247
-
248
- ### Code changes
249
- - Replaced all usage of `useSetPageTitle` with `useSetPageMetadata`
250
- - Added `BreakpointsContextProvider`
251
-
252
- ## Reports
253
-
254
- ### Code changes
255
- - Replaced all usage of `useSetPageTitle` with `useSetPageMetadata`
256
- - Updated `ReportsLayout` to use `PageMetadataContext`
257
- - Added `BreakpointsContextProvider`
258
-
259
- ## Shared
260
-
261
- ### Code changes
262
- - Removed a check that we don't need that was breaking auth sign up.
263
- - Add an invalidation key to the request to remove the video from a playlist to get updated playlist data.
264
- - The sign up app has been re-worked so that a `productName` is passed in by both auth and lite, in order to differentiate behavior. Similarly the `SignUpAjaxUrls` now takes a `productName` in order to define the types that we actually need from our injected URLs.
265
- - Added a `RequestAccess` step and `RequestedAccess` completion step, for requesting to join a school. Currently this is only used by Auth, but will be used by Lite also once the backend support for Lite is completed.
266
- - The `CompletedStepItem` has been reworked so that for students, the same messages and images are shown for the new `user-auto-join-allowed` and 'user-`join-approval-required` trial status.
267
- - The unmanagable `requestTrial` function has been refactored out of the `SearchSchoolStepItem` to try to make it more managable. This hasn't been done in the most elegant way, but has definitely improved the readability.
268
- - Update Calendar applink in DiscoverHeader.
269
- - The sign up app should no longer pull in a large number of dependencies it really doesn't need. i.e. (Backbone, Marionette, Underscore, Moment, every single one of our SVGs)
270
- - Add new SupportArticle Id.
271
- - If a prospect type is `Unknown`, the prospect type will not be sent to braze. Fixes INBOX-4777.
272
- - No longer sending data for braze for a niche use case: If a user selects `I'm an educator` initially, then proceeds to enter their job title as `student` or `parent` in the job title section. NOTE: This change only applies to schools who are not yet supported (i.e. Secondary Schools in AU and UK). Fixes INBOX-4796.
273
- - Add new bulk action type & data & name enum.
274
- - Fix a warning in HoverToPortalContainer when clicking on the thumbnail and jumping to the play page. Fix INBOX-4726
275
- - Added a new `BreakpointsContext`, which calls `useMediaQuery` for each breakpoint and passes the current breakpoint down to all children. This is accessible through the `useBreakpoints` hook. Partially implements INBOX-4474
276
-
277
- ## Styles
278
-
279
- ### Code changes
280
- - Replaced usage of `@include media` with Bootstrap's media query mixin. Partially implements INBOX-4474
281
-
282
- ## Testing
283
- - In NP:
284
- - Both as an authenticated and public user:
285
- - Topic pages and Discover pages load as expected for Staff, Student and Public.
286
- - Feature switch access to all legacy/non-discover code has been removed.
287
- - The assumption here is that all NP customers + users now have access to Discover-based dashboards + topics
288
- - Major-regression testing is required to ensure that page routes still work as expected
289
- - Discover and topic pages should all load as expected for both Students and Teachers (regression for removal of legacy code)
290
- - Navigating to content within discover, topics, video, series, playlist and latest release will now contain the user's current presentation slug.
291
- - The only exception is where page-loading direct into a legacy link, howevever, all links on the page should have a presentation slug.
292
- - Changing presentations via the switcher should change the presentation URL for subsequent links.
293
- - Loading links without a presentation slug should continue to load as expected (backwards compatibility)
294
- - Searching for a topic that's outside of the user's current presentation and navigating to it should update the URL to be the topic's presentation.
295
- - Page loading a topic that's outside of the user's presentation should load as expected.
296
- - The presentation switcher should always show the user's nominated presentation, even if they're on a page of content that belongs to a different presentation.
297
- - As an authenticated user:
298
- - Discover and topic pages should all load as expected (regression for removal of legacy code)
299
- - Student discover and feed should still work as expected
300
- - The following URLs have been updated to support both public region prefixes and presentation slugs:
301
- - `{presentationSlug}` must be one of the following values `primary`, `secondary`, `tertiary`, `elementary`, `middle`, and `high`.
302
- - Use of any other value should yield a 404
303
- ```
304
- Root:
305
- - Public:
306
- - {region}(/)
307
- - {region}/{presentationSlug}(/)
308
- - Authenticated:
309
- - (/)
310
- - {presentationSlug}(/)
311
- Topics:
312
- - Public:
313
- - {region}/topics(/)
314
- - {region}/topics/:id/topics
315
- - {region}/topics/:id(/:slug)
316
- - {region}/{presentationSlug}/topics(/)
317
- - {region}/{presentationSlug}/topics/:id/topics
318
- - {region}/{presentationSlug}/topics/:id(/:slug)
319
- - Authenticated:
320
- - /topics(/)
321
- - /topics/:id/topics
322
- - /topics/:id(/:slug)
323
- - {presentationSlug}/topics(/)
324
- - {presentationSlug}/topics/:id/topics
325
- - {presentationSlug}/topics/:id(/:slug)
326
- Latest Releases:
327
- - Public:
328
- - {region}/latest-releases
329
- - {region}/latest-releases/:id(/:slug)
330
- - {region}/{presentationSlug}/latest-releases
331
- - {region}/{presentationSlug}/latest-releases/:id(/:slug)
332
- - Authenticated:
333
- - /latest-releases
334
- - /latest-releases/:id(/:slug)
335
- - /{presentationSlug}/latest-releases
336
- - /{presentationSlug}/latest-releases/:id(/:slug)
337
- Discover:
338
- - Public:
339
- - {region}/discover(/)
340
- - {region}/discover/:id/:name
341
- - {region}/{presentationSlug}/discover(/)
342
- - {region}/{presentationSlug}/discover/:id/:name
343
- - Authenticated:
344
- - /discover(/)
345
- - /discover/:id/:name
346
- - /{presentationSlug}/discover(/)
347
- - /{presentationSlug}/discover/:id/:name
348
- Content pages:
349
- - Public:
350
- - {region}/playlists/:id(/:slug)
351
- - {region}/series/:id(/:slug)
352
- - {region}/videos/:id(/:slug)
353
- - {region}/{presentationSlug}/playlists/:id(/:slug)
354
- - {region}/{presentationSlug}/series/:id(/:slug)
355
- - {region}/{presentationSlug}/videos/:id(/:slug)
356
- - Authenticated:
357
- - /playlists/:id(/:slug)
358
- - /series/:id(/:slug)
359
- - /videos/:id(/:slug)
360
- - {presentationSlug}/playlists/:id(/:slug)
361
- - {presentationSlug}/series/:id(/:slug)
362
- - {presentationSlug}/videos/:id(/:slug)
363
- ```
364
- - In LE/Analytics:
365
- - Regression testing of link navigation. Everything should work as expected.
366
- - This one need only be quick. They use the same app router we use in NP, so we just need to make sure it hasn't broken anything.
367
- - Share links for video, playlists should continue to resolve.
368
- - Video links that are resolved via launch should continue to work as expected (for example, those from RSS)
369
- - As a trial user, you should not be able to see the "View usage" action on videos you have uploaded to NP.
370
- - In lite, viewing a playlist, remove videos from the list. The video count in the header should be updated accordingly.
371
- - In the Curator, editing tags of a video, there should be a video title on the top.
372
- - In Lite, an anonymous user should able to visit Calendar page.
373
- - In Lite, visit an invalid calendar page, (`/calendar/{date}` where the date doesn't align to MMM-YYYY format), an error state should be displayed. There is an link navigate you back to the current month calendar page.
374
- - In lite, got to `/settings/content-permissions` page, there should be a link to this support article: https://support.clickvieweducation.com/hc/en-au/articles/14692125209497-Content-Permissions-and-Year-Group-Access
375
- - Export a topic's video table in Curator, when one of the video names has a "#" or a "," in it. The exported CSV should contain all of the video information but the "#" and "," should be removed from the names.
376
- - Export a topic dashboard's videos in Curator, when one of the video names has a "#" or a "," in it. The exported CSV should contain all of the video information but the "#" and "," should be removed from the names.
377
- - Check out https://clickview.atlassian.net/browse/INBOX-4852. Sometimes, the "add to library" request would fail. Test this on a few ClickView videos and they should all work. Preferably test this on an account whose customer has a lot of libraries associated.
378
- - Audience badges for UK Primary will now be more abbreviated. Some examples include:
379
- - "Reception" will now be shortened to "R" if it is displayed in a range, e.g. "R - Upper KS2"
380
- - If the range is "Lower Key Stage X - Upper Key Stage X" the "Upper" and "Lower" words will now be shortened to "U" and "L". Example: "L KS2 - KS2"
381
- - In NP:
382
- - As an authenticated user:
383
- - Clicking on resource items should continue to show the resource preview as expected (regression)
384
- - As a public user:
385
- - Clicking on resource items will now display the sign-up popup. The one exception is link resources, which continue to function as they do today.
386
- - In LE:
387
- - General regression test of page titles. All titles should continue to update in the browser while browsing the product.
388
- - In Reports/New Analytics:
389
- - General regression test of page titles. All titles should continue to update in the browser while browsing the product.
390
- - In Online:
391
- - General regression test of page titles. All titles should continue to update in the browser while browsing the product.
392
- - Dashboard, Topics (inc Content Updates), Workspace Edit Video page, Exchange landing, M+TV Landing and Playlists page should load as expected with page titles set.
393
- - Creating a playlist, editing the playlist details and deleting a playlist should all update the page title while the popup is on screen, then revert back to the old page title once the popup closes.
394
- - In NP:
395
- - General regression test of all core pages to ensure that the page title is being set
396
- - Areas of focus (newer react-based pages):
397
- - Play video in playlist
398
- - Edit video in playlist
399
- - Remove video from playlist
400
- - Delete playlist
401
- - View classification/topic playlist
402
- - Userman: Bulk user upload account review page
403
- - Userman: Staff management page
404
- - Userman: Student management page
405
- - Share playlist popup
406
- - In NP:
407
- - As an authenticated user:
408
- - All pages should continue to correctly update the title page when navigating throughout the product (regression test)
409
- - As a public user:
410
- - All public pages should continue to correctly update the title page when navigating throughout the product (regression test)
411
- - Dev test: `description` meta tag should now be populated on all content pages
412
- - In Curation Studio, in the ingestion tab, test every single form for the first video in the table (called "Harry Potter and the Sorcerers Stone"). When you open each form, the data will be incorrect (which is fine because the fetching part is mocked still). But, when you make changes in the form and hit "save", these will be persisted in the database for video with ID `3713754`. If you refresh this page: https://staging.clickviewcurator.com/hostedlibraries/programs/3713754, the changes you made should be visible in that form (although they won't be visible in curation studio yet).
413
- - In the assembly line, all the bulk actions, except 'Add to libraries', should be working when you use real video id from staging.
414
- - n/a
415
- - Regression test the responsiveness of a curated topics page is the same as in production
416
- - Regression test the responsiveness a play page is the same as in production
417
- - Regression test the responsiveness of the discover page is the same as in production
418
- - Regression test the responsiveness of a playlist page is the same as in production
419
- #### Regression tests
420
- We need to test signing up for one of each of the following types of prospects from Lite. The prospect status can be checked by looking for the `/v1/prospects/_146766174306594881/trial-status` request in the network tab before submitting the school select form:
421
- - `active` Customer who is currently trialing
422
- - `not-required` Customer who already has full access
423
- - `available` Customer does not exist
424
- - `unsupported` Secondary school in UK or AU
425
- - Can't find my school (not a status, but needs a good test)
426
- #### New feature tests
427
- Testing these features will require help from development to set up certain parameters properly, as it will require writing directly to databases. Talk to Sha or Ryan, they should be able to help you set stuff up.
428
- ##### Auth
429
- 1. Go to auth, and use the following command in the console to set cookies to opt into features.
430
- ```
431
- document.cookie = "features.social-signup=true;";
432
- document.cookie = "features.user-no-customers=true;";
433
- document.cookie = "features.account-linking=true;";
434
- ```
435
- These cookies are set up to only last your session.
436
- 2. Click on the sign in button from Lite (This is important), and then when you get to auth add the `&emulateUSA=true` query param.
437
- 3. Sign in with Google and/or Microsoft
438
- 4. Select `Educator`
439
- 5. Repeat all of the tests that are listed under Testing -> Sign up changes -> Regression tests, but for Lite
440
- 6. With a school who has a request to join domain settings set up, request to join a school.
441
- 7. With a school who has auto join domain set up, request to join a school.
442
- ##### Lite
443
- 1. With a school who has auto join domain set up, request to join a school.
444
-
445
-
446
- # Subjects.API
447
-
448
- ## Customer changes
449
- - Curriculum links should be sorted alphabetically.
450
-
451
-
452
- ## Code changes
453
- - Alphabetically sort paths returned by classification paths endpoints. Fixes INBOX-4857:
454
- - `v1/presentations/{presentationId}/objects/{masterObjectId}/classifications/paths`
455
- - `v1/customers/{customerId}/users/{userId}/objects/{masterObjectId}/classifications/paths`
456
-
457
- - Bump `Subjects.Common` to final version for `1.20.1`
458
-
459
-
460
- ## Testing
461
- - Ensure [curriculum links](https://www.staging.clickview.net/videos/25918299/1-times-table) are ordered alphabetically.
462
-
463
- - N/A
464
-
465
-
466
-
467
- # ClickView.Curator
468
-
469
- ## Customer changes
470
- * Fixed an issue where `Pending` or `Draft` videos in Exchange queue cannot be deleted. Close INBOX-4863
471
-
472
-
473
- ## Code changes
474
- * Allow `Pending` and `Draft` videos from Hosted library or Exchange to be deleted
475
-
476
- - Upgraded to .NET Core. Implements CC-266 and implements CC-472
477
-
478
- - Move the user-manager image success and error image to the wizard folder.
479
-
480
-
481
- ## Testing
482
- * Go to Curator->Exchange->Pending Programs and choose a program for deletion, and the program should be deleted
483
-
484
- - Regression test the entirety of Curator. Every single tab, every single button/action possible, and make sure they all work as expected
485
-
486
-
487
-
488
-
489
- # Lite
490
-
491
- ## Dependencies
492
- - Required by https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/3178
493
-
494
-
495
- ## Customer changes
496
- - The server will now issue a `404` when attempting to a content page with an invalid id
497
-
498
-
499
- ## Code changes
500
- - Added a new endpoint to support auto joining when signing up. Talking to `/v1/invites/internal` in user api.
501
-
502
- - Updated `OpenGraphService` to raise an exception if it can't access an object based on the supplied param
503
-
504
- - Updated `AppAsync` in BaseController to bootstrp the presentation slugs for both Auth and Public users
505
-
506
- - Add calendar setting for public browsing.
507
- - Add new calendar invalid date error image asset.
508
-
509
- - Add new movies and tv search filter button icons.
510
-
511
- - Added new banner & cover for hardcode favorite playlist.
512
-
513
-
514
- ## Testing
515
-
516
- - In Np, attempting to go page load on existing routes with incorrect id's will now return a 404
517
- - Previously, the server would return a `200` with the JS then showing a separate error screen
518
-
519
- - N/A
520
-
521
- - n/a
522
-
523
-
524
-
525
-
526
-
527
- # Master.Auth
528
-
529
- ## Before release
530
- - Updated `ClickView.Clients.User` to version `2.15.0`.
531
-
532
- * [ ] Add gateway api to octo variables
533
-
534
-
535
- ## Dependencies
536
- - Can be undrafted and merged after https://gitlab.cvinternal.net/clickview/back-end/Master.Auth/-/merge_requests/418
537
-
538
- - Can be undrafted and merged after https://gitlab.cvinternal.net/clickview/back-end/Master.Auth/-/merge_requests/417
539
-
540
- - Can be undrafted and merged after https://gitlab.cvinternal.net/clickview/back-end/Master.Auth/-/merge_requests/416
541
-
542
- - You can undraft and review after https://gitlab.cvinternal.net/clickview/back-end/Master.Auth/-/merge_requests/415 has been merged. Sorry about this I was just building on top of your work so I could test everything.
543
-
544
-
545
- ## Customer changes
546
- * Allow user to select user type if they sign in using social sign up idp providers, like Google or Microsoft
547
-
548
-
549
- ## Code changes
550
- - The endpoint to create prospects was removed from Gateway by Kev in this MR: https://gitlab.cvinternal.net/clickview/back-end/krakend/-/merge_requests/113. So I've added a `/ajax/trials/prospects` endpoint for creating prospects in the "Can't find my school" sign up workflow.
551
-
552
- - Added a `/ajax/trials/join-request` endpoint, which is using the user api client to create a join request.
553
-
554
- - Adding the images that are required for the sign up app.
555
-
556
- - Adding an endpoint to fetch config values that are required by the sign up app in the frontend.
557
-
558
- * Support adding script and connect sources to CSP middleware
559
- * Add google map and gateway to connect sources
560
- * Add google map to script sources
561
- * Remove no longer used used css file from `_layout.cshtml`
562
-
563
- * Pass down user mail to `SelectCustomerStepResponse` so that the frontend can use it to fetch potential customers from prospect api
564
-
565
- * Add `SelectUserTypeStepResponse` to get user type input from user for social sign up feature only
566
- * Populate new user data from Google and Microsoft claims
567
- * Do not update user role for the existing user if user signs in via social sign up idp like Google or Microsoft
568
-
569
-
570
- ## Testing
571
-
572
-
573
-
574
-
575
-
576
-
577
- * A new user can be created if a user choose a user type when setting both `features.social-signup` and `features.user-no-customers` to `true` in cookie
578
-
579
-
580
-
581
- # Krakend
582
-
583
- ## Code changes
584
- - Exposing the prospect lookup endpoint publicly so that it can be used by the sign up app to fetch customerIds.
585
-
586
- - Adding an `email` query param to the `/v1/prospects/{prospectId}/trial-status` user api endpoint.
587
-
588
- * Add a new endpoint `POST v1/users/remove` to remove users from a customer
589
-
590
- * Add endpoint `GET v1/approved-domains` to get a list of approved domains and customers by domain name
591
- * Add endpoint `POST v1/approved-domains` to create a new approved domain for a customer
592
- * Add endpoint `PUT v1/approved-domains/{id}` to update domain name for a customer by approved domain id
593
- * Add endpoint `DELETE v1/approved-domains/{id}` to delete a customer's approved domain by approved domain id
594
- * Add endpoint `GET v1/customers/{id}/approved-domains` to get a list of approved domains for a customer filtered by `accessType`
595
-
596
-
597
- ## Testing
598
-
599
-
600
- * Post the below body to `v1/users/remove` should remove users from a customer
601
- ```
602
- public abstract class SelectUsersRequest
603
- {
604
- public virtual ulong CustomerId { get; set; }
605
- public virtual UserType? UserType { get; set; }
606
- public virtual UserRole? UserRole { get; set; }
607
- public virtual IEnumerable<ObjectStatus> UserStatuses { get; set; }
608
- public virtual IEnumerable<int> YearGroupValues { get; set; }
609
- public virtual List<ulong> UserIds { get; set; }
610
- public virtual string SearchQuery { get; set; }
611
- }
612
- ```
613
-
614
-
615
-
616
-
617
- # Master.Api
618
-
619
- ## Code changes
620
- - Add directed assoc between contentRegion with interactives with 1:M cardinality. This is mainly for curation studio to allow curators to create interactive for multiple regions.
621
-
622
-
623
- ## Testing
624
- - An interactive and content region should be associated with M:M cardinality undirectionally.
625
- - http://localhost:52899/v2/objects/39835524?query=contentRegions should return
626
- - ![image](/uploads/d259ade6dbe877402ea3723b3ed699d1/image.png)
627
-
628
-
629
-
630
- # ClickView Online
631
-
632
- ## Before release
633
- * [ ] Update `ClickView.DomainApi.Models` nuget package to a stable version
634
-
635
- * [ ] Update `ClickView.DomainApi.Models` nuget package to a stable version
636
-
637
-
638
- ## Dependencies
639
- * https://gitlab.cvinternal.net/clickview/back-end/Domain.Api/-/merge_requests/1086
640
-
641
- * https://gitlab.cvinternal.net/clickview/back-end/Domain.Api/-/merge_requests/1086
642
-
643
-
644
- ## Customer changes
645
- * Fixed an issue where subtitle is not showing up when adding Tv guide video to Workspace. Close INBOX-4482
646
-
647
-
648
- ## Code changes
649
- * Call `POST v2/videos/{id}/copy` endpoint in domain api to push curated ad-free TV guide video to workspace
650
-
651
- * Update some nuget packages to the latest version
652
- * Clean up legacy staff request code
653
-
654
-
655
- ## Testing
656
- * Go to Online and Choose a TV program that has been curated by content team with subtitle and add it to Workspace, the subtitle should be appearing for the video in Workspace
657
-
658
-
659
-
660
-
661
- # Domain.Api
662
-
663
- ## Before release
664
- * [ ] Bump up `ClickView.DomainApi.Models.Common` version to main release version and push it to nuget server
665
-
666
-
667
- ## Customer changes
668
- * Fixed an issue where subtitle is not showing up when adding Tv guide video to Workspace. Close INBOX-4482
669
-
670
-
671
- ## Code changes
672
- * Add capability to `POST v2/videos/{id}/copy` endpoint to allow Online to use it for adding TV guide video to workspace
673
-
674
-
675
- ## Testing
676
-
677
-
678
-
679
- # Analytics Web
680
-
681
-
682
- # Library Editor
683
-