@clickview/ship-it 0.0.11 → 0.0.13
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.
- package/lib/src/api-clients/git-lab/GitLabApiClient.js +10 -13
- package/lib/src/api-clients/git-lab/GitLabMapper.js +2 -1
- package/lib/src/services/GitLabService.js +9 -27
- package/lib/src/tasks/BumpVersionTxtTask.js +1 -1
- package/lib/src/tasks/ValidateCommitsTask.js +21 -15
- package/lib/src/utils/Commits.js +29 -21
- package/package.json +1 -1
- package/dist/X2/Analytics Web.md +0 -11
- package/dist/X2/Batch.Api.md +0 -11
- package/dist/X2/ClickView Online.md +0 -43
- package/dist/X2/ClickView.Cloud247.SpliceService.md +0 -12
- package/dist/X2/ClickView.Cron.md +0 -10
- package/dist/X2/ClickView.Curator.md +0 -22
- package/dist/X2/ClickView.OnlineApi.md +0 -14
- package/dist/X2/Curriculum.App.md +0 -9
- package/dist/X2/CurriculumIngestion.Api.md +0 -8
- package/dist/X2/Discover.Api.md +0 -35
- package/dist/X2/Domain.Api.md +0 -11
- package/dist/X2/FileGenerator.md +0 -11
- package/dist/X2/Hydration.App.md +0 -9
- package/dist/X2/Integrations.Api.md +0 -8
- package/dist/X2/Krakend.md +0 -18
- package/dist/X2/LTI.md +0 -11
- package/dist/X2/Library Editor.md +0 -11
- package/dist/X2/Library.Api.md +0 -13
- package/dist/X2/Lite.md +0 -21
- package/dist/X2/Master.Api.md +0 -21
- package/dist/X2/Master.Auth.md +0 -22
- package/dist/X2/Objects.Api.md +0 -30
- package/dist/X2/Permissions.Api.md +0 -34
- package/dist/X2/Release Notes.md +0 -932
- package/dist/X2/Share.Api.md +0 -8
- package/dist/X2/Subjects.API.md +0 -21
- package/dist/X2/TvProgramMonitor.App.md +0 -8
- package/dist/X2/Users.Api.md +0 -25
- package/dist/X2/VideoProcessorService.md +0 -12
- package/dist/X2/X2 Release Notes.md +0 -932
- package/dist/X2/X2 Testing Notes.csv +0 -1200
- package/dist/X2/X2 Testing Notes_old.csv +0 -2060
- package/dist/X2/clickview.md +0 -314
- package/dist/X2/index.app.md +0 -8
- package/dist/X2/notification-service.md +0 -48
- package/dist/Y2/Y2 Testing Notes.csv +0 -1057
|
@@ -165,23 +165,20 @@ var GitLabApiClient = /** @class */ (function () {
|
|
|
165
165
|
});
|
|
166
166
|
});
|
|
167
167
|
};
|
|
168
|
-
GitLabApiClient.prototype.
|
|
168
|
+
GitLabApiClient.prototype.getCommitsForRelease = function (projectId, dateSince) {
|
|
169
169
|
return __awaiter(this, void 0, void 0, function () {
|
|
170
|
-
var
|
|
170
|
+
var commits;
|
|
171
171
|
return __generator(this, function (_a) {
|
|
172
172
|
switch (_a.label) {
|
|
173
|
-
case 0: return [4 /*yield*/, this.client.Commits.
|
|
173
|
+
case 0: return [4 /*yield*/, this.client.Commits.all(projectId, {
|
|
174
|
+
ref_name: 'dev',
|
|
175
|
+
since: dateSince,
|
|
176
|
+
/**
|
|
177
|
+
* This allows us to get merge commits of MRs being accepted
|
|
178
|
+
*/
|
|
179
|
+
first_parent: true
|
|
180
|
+
})];
|
|
174
181
|
case 1:
|
|
175
|
-
commit = _a.sent();
|
|
176
|
-
return [4 /*yield*/, this.client.Commits.all(projectId, {
|
|
177
|
-
ref_name: branchName,
|
|
178
|
-
since: commit.committed_date,
|
|
179
|
-
/**
|
|
180
|
-
* This allows us to get merge commits of MRs being accepted
|
|
181
|
-
*/
|
|
182
|
-
first_parent: true
|
|
183
|
-
})];
|
|
184
|
-
case 2:
|
|
185
182
|
commits = _a.sent();
|
|
186
183
|
return [2 /*return*/, commits.map(GitLabMapper_1.GitLabMapper.commit)];
|
|
187
184
|
}
|
|
@@ -17,7 +17,8 @@ exports.GitLabMapper = {
|
|
|
17
17
|
targetBranch: m.target_branch,
|
|
18
18
|
sourceBranch: m.source_branch,
|
|
19
19
|
milestone: exports.GitLabMapper.milestone(m.milestone),
|
|
20
|
-
labels: m.labels
|
|
20
|
+
labels: m.labels,
|
|
21
|
+
dateCreated: m.created_at
|
|
21
22
|
};
|
|
22
23
|
},
|
|
23
24
|
project: function (p) {
|
|
@@ -205,30 +205,12 @@ var GitLabService = /** @class */ (function () {
|
|
|
205
205
|
});
|
|
206
206
|
});
|
|
207
207
|
};
|
|
208
|
-
GitLabService.prototype.
|
|
208
|
+
GitLabService.prototype.getCommitsForRelease = function (projectId, dateSince) {
|
|
209
209
|
return __awaiter(this, void 0, void 0, function () {
|
|
210
|
-
var commits, mergeCommitIndex;
|
|
211
210
|
return __generator(this, function (_a) {
|
|
212
211
|
switch (_a.label) {
|
|
213
|
-
case 0: return [4 /*yield*/, this.apiClient.
|
|
214
|
-
case 1:
|
|
215
|
-
commits = _a.sent();
|
|
216
|
-
mergeCommitIndex = commits.findIndex(function (commit) {
|
|
217
|
-
var title = commit.title.toLowerCase();
|
|
218
|
-
return title.includes('merge') &&
|
|
219
|
-
title.includes('master') &&
|
|
220
|
-
title.includes('dev');
|
|
221
|
-
});
|
|
222
|
-
if (mergeCommitIndex > -1)
|
|
223
|
-
commits.splice(mergeCommitIndex, 1);
|
|
224
|
-
/**
|
|
225
|
-
* This is commented out right now because of a problem with the logic of this approach of validating MRs.
|
|
226
|
-
* We need to find a way to fetch all commits that will be included in this release. Leaving this commented
|
|
227
|
-
* until we figure that out - Sha
|
|
228
|
-
*/
|
|
229
|
-
// if (!commits?.length)
|
|
230
|
-
// throw new ShipItError(`Could not find any commits in dev for projectId: ${projectId} since ${sinceSha}`);
|
|
231
|
-
return [2 /*return*/, commits];
|
|
212
|
+
case 0: return [4 /*yield*/, this.apiClient.getCommitsForRelease(projectId, dateSince)];
|
|
213
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
232
214
|
}
|
|
233
215
|
});
|
|
234
216
|
});
|
|
@@ -412,9 +394,9 @@ var GitLabService = /** @class */ (function () {
|
|
|
412
394
|
* We use the latest valid semver tag in master to determine what the current version
|
|
413
395
|
* of a project is
|
|
414
396
|
*/
|
|
415
|
-
GitLabService.prototype.
|
|
397
|
+
GitLabService.prototype.getCurrentMinorVersionTag = function (projectId) {
|
|
416
398
|
return __awaiter(this, void 0, void 0, function () {
|
|
417
|
-
var tags, tagNames, sortedTagNames,
|
|
399
|
+
var tags, tagNames, sortedTagNames, latestMinorVersion, currentTag;
|
|
418
400
|
return __generator(this, function (_a) {
|
|
419
401
|
switch (_a.label) {
|
|
420
402
|
case 0: return [4 /*yield*/, this.apiClient.getLatestTags(projectId)];
|
|
@@ -425,9 +407,9 @@ var GitLabService = /** @class */ (function () {
|
|
|
425
407
|
tagNames = tags.map(function (t) { return t.name; }).filter(function (t) { return semver_1.default.valid(t); });
|
|
426
408
|
if (!tagNames.length)
|
|
427
409
|
return [2 /*return*/, null];
|
|
428
|
-
sortedTagNames = semver_1.default.sort(tagNames);
|
|
429
|
-
|
|
430
|
-
currentTag = tags.find(function (t) { return t.name ===
|
|
410
|
+
sortedTagNames = semver_1.default.sort(tagNames).reverse();
|
|
411
|
+
latestMinorVersion = sortedTagNames.find(function (tag) { return tag.endsWith('.0'); });
|
|
412
|
+
currentTag = tags.find(function (t) { return t.name === latestMinorVersion; });
|
|
431
413
|
if (!currentTag)
|
|
432
414
|
return [2 /*return*/, null];
|
|
433
415
|
return [2 /*return*/, currentTag];
|
|
@@ -453,7 +435,7 @@ var GitLabService = /** @class */ (function () {
|
|
|
453
435
|
var tag, nextVersion, branchName, branch;
|
|
454
436
|
return __generator(this, function (_a) {
|
|
455
437
|
switch (_a.label) {
|
|
456
|
-
case 0: return [4 /*yield*/, this.
|
|
438
|
+
case 0: return [4 /*yield*/, this.getCurrentMinorVersionTag(projectId)];
|
|
457
439
|
case 1:
|
|
458
440
|
tag = _a.sent();
|
|
459
441
|
if (!tag)
|
|
@@ -75,7 +75,7 @@ var BumpVersionTxtTask = /** @class */ (function () {
|
|
|
75
75
|
if (!(_i < projects_1.length)) return [3 /*break*/, 6];
|
|
76
76
|
project = projects_1[_i];
|
|
77
77
|
if (this.skip(project.id))
|
|
78
|
-
return [
|
|
78
|
+
return [3 /*break*/, 5];
|
|
79
79
|
return [4 /*yield*/, this.service.getNextBranchInfo(project.id, options.version)];
|
|
80
80
|
case 3:
|
|
81
81
|
_a = _b.sent(), nextVersion = _a.nextVersion, branchName = _a.branchName;
|
|
@@ -59,43 +59,49 @@ var ValidateCommitsTask = /** @class */ (function () {
|
|
|
59
59
|
this.service = service;
|
|
60
60
|
}
|
|
61
61
|
ValidateCommitsTask.prototype.run = function (options) {
|
|
62
|
+
var _a;
|
|
62
63
|
return __awaiter(this, void 0, void 0, function () {
|
|
63
|
-
var projects, cont, _i, projects_1, project,
|
|
64
|
-
return __generator(this, function (
|
|
65
|
-
switch (
|
|
64
|
+
var projects, cont, _i, projects_1, project, _b, branch, tag, previousReleaseBranchName, previousReleaseMergeRequest, devCommits, _c, shouldCherryPick, invalidCommits;
|
|
65
|
+
return __generator(this, function (_d) {
|
|
66
|
+
switch (_d.label) {
|
|
66
67
|
case 0:
|
|
67
68
|
utils_1.Logger.logTask('Validating dev commits');
|
|
68
69
|
return [4 /*yield*/, this.service.getProjects(options)];
|
|
69
70
|
case 1:
|
|
70
|
-
projects =
|
|
71
|
+
projects = _d.sent();
|
|
71
72
|
cont = true;
|
|
72
73
|
_i = 0, projects_1 = projects;
|
|
73
|
-
|
|
74
|
+
_d.label = 2;
|
|
74
75
|
case 2:
|
|
75
|
-
if (!(_i < projects_1.length)) return [3 /*break*/,
|
|
76
|
+
if (!(_i < projects_1.length)) return [3 /*break*/, 7];
|
|
76
77
|
project = projects_1[_i];
|
|
77
78
|
return [4 /*yield*/, this.service.getNextBranchInfo(project.id, options.version)];
|
|
78
79
|
case 3:
|
|
79
|
-
|
|
80
|
+
_b = _d.sent(), branch = _b.branch, tag = _b.tag;
|
|
80
81
|
/**
|
|
81
82
|
* If the release branch already exists, this can be skipped as this
|
|
82
83
|
* validation is only required when creating a new release
|
|
83
84
|
*/
|
|
84
85
|
if (branch)
|
|
85
|
-
return [3 /*break*/,
|
|
86
|
-
|
|
86
|
+
return [3 /*break*/, 6];
|
|
87
|
+
previousReleaseBranchName = utils_1.BranchNames.getRelease(tag.name);
|
|
88
|
+
return [4 /*yield*/, this.service.getMergeRequest(project.id, previousReleaseBranchName)];
|
|
87
89
|
case 4:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
previousReleaseMergeRequest = _d.sent();
|
|
91
|
+
return [4 /*yield*/, this.service.getCommitsForRelease(project.id, (_a = previousReleaseMergeRequest === null || previousReleaseMergeRequest === void 0 ? void 0 : previousReleaseMergeRequest.dateCreated) !== null && _a !== void 0 ? _a : '')];
|
|
92
|
+
case 5:
|
|
93
|
+
devCommits = _d.sent();
|
|
94
|
+
_c = utils_1.Commits.shouldCherryPick(project, devCommits), shouldCherryPick = _c.shouldCherryPick, invalidCommits = _c.invalidCommits;
|
|
90
95
|
if (shouldCherryPick) {
|
|
91
|
-
utils_1.Logger.logError("[".concat(project.title, "]: Requires cherrypicking"));
|
|
96
|
+
utils_1.Logger.logError("[".concat(project.title, "]: Requires cherrypicking. These are the merge commits that either have the wrong milestone, or no milestone:"));
|
|
97
|
+
invalidCommits.forEach(function (commit) { return utils_1.Logger.logError("- ".concat(commit.id)); });
|
|
92
98
|
cont = false;
|
|
93
99
|
}
|
|
94
|
-
|
|
95
|
-
case
|
|
100
|
+
_d.label = 6;
|
|
101
|
+
case 6:
|
|
96
102
|
_i++;
|
|
97
103
|
return [3 /*break*/, 2];
|
|
98
|
-
case
|
|
104
|
+
case 7:
|
|
99
105
|
if (cont)
|
|
100
106
|
utils_1.Logger.logSuccess('No projects require cherrypicking');
|
|
101
107
|
return [2 /*return*/, cont];
|
package/lib/src/utils/Commits.js
CHANGED
|
@@ -13,31 +13,39 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.Commits = void 0;
|
|
15
15
|
exports.Commits = {
|
|
16
|
-
/**
|
|
17
|
-
* Returns true if dev contains commits that are merge commits from a milestone
|
|
18
|
-
* that is beyond the current release milestone
|
|
19
|
-
*/
|
|
20
16
|
shouldCherryPick: function (project, commits) {
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Build a lookup table of every merge request with the milestone we passed.
|
|
19
|
+
*/
|
|
20
|
+
var mergeRequestLookup = project.mergeRequests.reduce(function (acc, current) {
|
|
23
21
|
var _a;
|
|
24
22
|
if (!current.mergeCommit)
|
|
25
|
-
return
|
|
26
|
-
|
|
23
|
+
return acc;
|
|
24
|
+
if (current.sourceBranch === 'master')
|
|
25
|
+
return acc;
|
|
26
|
+
return __assign(__assign({}, acc), (_a = {}, _a[current.mergeCommit] = current, _a));
|
|
27
27
|
}, {});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
39
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Loop through every single commit since the last release was created.
|
|
30
|
+
* Any commit that has more than 1 parent Id is a merge commit.
|
|
31
|
+
*
|
|
32
|
+
* Every single merge commit should have a corresponding merge request in the lookup table.
|
|
33
|
+
* If a merge commit does not have a corresponding merge request, it means that the merge request has the wrong milestone.
|
|
34
|
+
*/
|
|
35
|
+
var invalidCommits = commits.filter(function (commit) {
|
|
36
|
+
var _a;
|
|
37
|
+
if (!commit.parentIds || ((_a = commit.parentIds) === null || _a === void 0 ? void 0 : _a.length) < 2)
|
|
38
|
+
return false;
|
|
39
|
+
if (commit.title.toLowerCase().includes('merge') && commit.title.includes('master') && commit.title.includes('dev'))
|
|
40
|
+
return false;
|
|
41
|
+
return !mergeRequestLookup[commit.id];
|
|
42
|
+
});
|
|
43
|
+
if (invalidCommits.length) {
|
|
44
|
+
return {
|
|
45
|
+
shouldCherryPick: true,
|
|
46
|
+
invalidCommits: invalidCommits
|
|
47
|
+
};
|
|
40
48
|
}
|
|
41
|
-
return false;
|
|
49
|
+
return { shouldCherryPick: false, invalidCommits: [] };
|
|
42
50
|
}
|
|
43
51
|
};
|
package/package.json
CHANGED
package/dist/X2/Analytics Web.md
DELETED
package/dist/X2/Batch.Api.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Customer changes
|
|
3
|
-
- 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
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Code changes
|
|
7
|
-
- 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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# Testing
|
|
11
|
-
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Dependencies
|
|
3
|
-
- https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Customer changes
|
|
7
|
-
- 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
|
|
8
|
-
|
|
9
|
-
- Fix users not being marked as SSO in new user manager (attempt #2). Fixes INBOX-3676
|
|
10
|
-
|
|
11
|
-
* 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
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# Code changes
|
|
15
|
-
- Notifications now use the `appLink` field before referencing the old `link` field. Partially implements INBOX-3984
|
|
16
|
-
- Added a new shared `SafeUrlConcat` helper
|
|
17
|
-
|
|
18
|
-
- Add missing IdpCode mappings to the DataRender class
|
|
19
|
-
- Ensure all sql to get SsoMappings contains the same select statements
|
|
20
|
-
|
|
21
|
-
* Replace `username/email` with `UserId` when checking the owner of shared link because `username/email` is no longer saved in short code api
|
|
22
|
-
* Replace `CustomerId` with `MasterCustomerId` when checking the customer, because newly generated share link does not save `CustomerId` anymore
|
|
23
|
-
|
|
24
|
-
- Updated libraries to React 18. Partially implements CORE-770
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
# Testing
|
|
28
|
-
- All notifications should show the correct icon
|
|
29
|
-
|
|
30
|
-
- All notification links should still work. Especially:
|
|
31
|
-
- Auto captions available
|
|
32
|
-
- Library request notifs
|
|
33
|
-
- Old staff request notifs
|
|
34
|
-
- Video available
|
|
35
|
-
- Video available in your custom library (when your staff request gets approved)
|
|
36
|
-
|
|
37
|
-
- 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
|
|
38
|
-
|
|
39
|
-
- 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
|
|
40
|
-
|
|
41
|
-
* Video should be played back normally after domain migration
|
|
42
|
-
|
|
43
|
-
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Before release
|
|
3
|
-
- Confirm that the web editor has be modified to divert curator tv workflow to vps and has been pushed to production
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Code changes
|
|
7
|
-
- Remove curator video re-encoding logic with embedded ClickView watermark
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# Testing
|
|
11
|
-
- Video Splicing task requesting watermark on will be rejected.
|
|
12
|
-
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Dependencies
|
|
3
|
-
- https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2536
|
|
4
|
-
|
|
5
|
-
- https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Customer changes
|
|
9
|
-
- Changed all copy from "working list" or "working set" to "workbench" or "your workbench". Partially implements CC-389
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# Code changes
|
|
13
|
-
- Add `Clips` and `Interactives` tabs under `Content` in Curator Implements CC-369
|
|
14
|
-
|
|
15
|
-
- Updated libraries to React 18. Partially implements CORE-770
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Testing
|
|
19
|
-
|
|
20
|
-
- In curator, the new `Clips` and `Interactives` tabs under `Content` will only be displayed when users log in as dev.
|
|
21
|
-
|
|
22
|
-
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Customer changes
|
|
3
|
-
* Add endpoints to allow online and user api to set and get sso year group mappings. Partially implements CORE-930
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Code changes
|
|
7
|
-
* Add new endpoint `GET v2/admin/customers/{customerGuid}/sso-year-group-mappings` to fetch sso year group mappings of a customer
|
|
8
|
-
* Add new endpoint `POST v2/admin/customers/{customerGuid}/sso-year-group-mappings` to add or update sso year group mappings for a customer
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# Testing
|
|
12
|
-
* 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
|
|
13
|
-
* Hitting `POST v2/admin/customers/{customerGuid}/sso-year-group-mappings` endpoint should add or update sso year group mappings for a customer
|
|
14
|
-
|
package/dist/X2/Discover.Api.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Customer changes
|
|
3
|
-
- Non-curator users will see only `Published` dashboards and widgets
|
|
4
|
-
|
|
5
|
-
- For curated widgets, widgets contents will be presented in the same order as the objects were provided on the widget creation.
|
|
6
|
-
|
|
7
|
-
- Dashboards that use `classifications` widget can now filter classifications by `CanBePreferred`
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# Code changes
|
|
11
|
-
- If user is non-curator, set status filters to `Published`. Closes INBOX-4006
|
|
12
|
-
|
|
13
|
-
- Fix curated media test
|
|
14
|
-
|
|
15
|
-
- Content fetched from `Objects Api` is reordered according to the list of object Ids stored in `Discover Api`. Fixes (CORE-960)
|
|
16
|
-
|
|
17
|
-
- Added nullable boolean optional filter `canBePreferred` to be used on `classifications` widget data fetching. Implements CORE-942
|
|
18
|
-
|
|
19
|
-
- In `curated_media` widget, clips and interactives will also return parent media data with thumbnails. Closes CORE-955
|
|
20
|
-
|
|
21
|
-
- Update build scripts to their latest
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
# Testing
|
|
25
|
-
- When accessing dashboards created in Curation Studio, if non-curator user, it should view only `Published` dashboards and widgets
|
|
26
|
-
|
|
27
|
-
- All tests should run successfully
|
|
28
|
-
|
|
29
|
-
- Curated widgets should present the correct order of objects, same order when objects were assigned on widget creation
|
|
30
|
-
|
|
31
|
-
- When fetching data in `Discover Api`, `classifications` widget, if optional filter `canBePreferred` is set, result data will be filtered accordingly (`true`/`false`).
|
|
32
|
-
|
|
33
|
-
- In `Discover API`, clips and interactives in `curated_media` widget should return parent media data with thumbnails.
|
|
34
|
-
|
|
35
|
-
|
package/dist/X2/Domain.Api.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Code changes
|
|
3
|
-
- 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.
|
|
4
|
-
|
|
5
|
-
- Create `v1/subjects/presentations/{presentationId}/audiences` endpoint, for fetching audiences by presentation
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Testing
|
|
9
|
-
|
|
10
|
-
- N/A
|
|
11
|
-
|
package/dist/X2/FileGenerator.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Code changes
|
|
3
|
-
* Making sure the new csv report doesn't contain videos with empty titles. Fixes INBOX-4027
|
|
4
|
-
|
|
5
|
-
- Remove migration report handler used for pbt. Closes CORE-650
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Testing
|
|
9
|
-
* Generate a video usage report and make sure none of the video title columns are null or empty
|
|
10
|
-
|
|
11
|
-
|
package/dist/X2/Hydration.App.md
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Code changes
|
|
3
|
-
* Using accessible presentations by customer instead of accessible presentations by user to filter out presentations in stream hydrated events. Fixes INBOX-3946
|
|
4
|
-
* 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
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# Testing
|
|
8
|
-
* 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
|
|
9
|
-
|
package/dist/X2/Krakend.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Dependencies
|
|
3
|
-
- https://gitlab.cvinternal.net/clickview/back-end/permissions.api/-/merge_requests/28
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Code changes
|
|
7
|
-
* Add a new endpoint `GET /v1/customers/{id}/sso-year-group-mappings` to fetch a list of sso year group mappings for a customer
|
|
8
|
-
* Add a new endpoint `POST /v1/customers/{id}/sso-year-group-mappings` to set sso year group mappings for a customer
|
|
9
|
-
|
|
10
|
-
- Use the new permissions endpoint: `v1/users/permissions`
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# Testing
|
|
14
|
-
* Hitting `GET /v1/customers/{id}/sso-year-group-mappings` should return a list of sso year group mappings
|
|
15
|
-
* Hitting `POST /v1/customers/{id}/sso-year-group-mappings` should allow you to set year group mappings for a customer
|
|
16
|
-
|
|
17
|
-
- Visiting [Settings](https://www.clickview.net/settings) as an Admin should show the User Management section, but visting as a Learner shouldn't.
|
|
18
|
-
|
package/dist/X2/LTI.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Code changes
|
|
3
|
-
- Upgrade project to .NET6. Closes INBOX-3498
|
|
4
|
-
- Update build scripts to their latest versions
|
|
5
|
-
- Replace `ClickView.LtiAdvantage` with the official "alpha" version at `LtiAdvantage`
|
|
6
|
-
- Remove `IdentityServer4.AccessTokenValidation` as its no longer maintained
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# Testing
|
|
10
|
-
- Ensure that LTI still works
|
|
11
|
-
|
package/dist/X2/Library.Api.md
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Customer changes
|
|
3
|
-
* Fixed an issue where teachers can send library requests to unpublished custom library. Close INBOX-3923
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Code changes
|
|
7
|
-
* Add library `CurationStatus` check to stop non-admin staff from adding library request to the unpublished library
|
|
8
|
-
* Return `Bad Request` with error type `library-not-published` error when calling `POST v1/library-requests` endpoint
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# Testing
|
|
12
|
-
* 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
|
|
13
|
-
|
package/dist/X2/Lite.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Dependencies
|
|
3
|
-
- https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/1992
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Code changes
|
|
7
|
-
- Add `App()` to `BaseController` and rename `Home/Index.cshtml to `Shared/App.cshtml`
|
|
8
|
-
- Replace all `View("Index", ViewModel)` with `App()`
|
|
9
|
-
|
|
10
|
-
- Added new `GeoLocationService`
|
|
11
|
-
- Added `CloudflareGeoLocationProvider` which uses cloudflare headers
|
|
12
|
-
- Added `MaxMindGeoLocationProvider` which uses maxmind
|
|
13
|
-
|
|
14
|
-
- Updated libraries to React 18. Partially implements CORE-770
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
# Testing
|
|
18
|
-
- Lite loads
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
package/dist/X2/Master.Api.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Customer changes
|
|
3
|
-
- Master api allows direct assoc between:
|
|
4
|
-
- `SubjectPresentationClassification` x `Interactives`
|
|
5
|
-
- `SubjectPresentationClassification` x `Clips`
|
|
6
|
-
- `SubjectPresentationAudience` x `Interactives`
|
|
7
|
-
- `SubjectPresentationAudience` x `Clips`
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# Code changes
|
|
11
|
-
- Added new `AssocType` `SUBJECT_PRESENTATION_AUDIENCE`. Implements CORE-944
|
|
12
|
-
- Added new type constraints for:
|
|
13
|
-
- `SubjectPresentationClassification` x `Interactives`
|
|
14
|
-
- `SubjectPresentationClassification` x `Clips`
|
|
15
|
-
- `SubjectPresentationAudience` x `Interactives`
|
|
16
|
-
- `SubjectPresentationAudience` x `Clips`
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# Testing
|
|
20
|
-
- In Master Api, Clips and interactives can be directly associated to Subject Presentation Classifications and Subject Presentation Audiences
|
|
21
|
-
|
package/dist/X2/Master.Auth.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Code changes
|
|
3
|
-
- Fix lockout events not logged to snowflake because we have no instance region. Always log to AU snowflake. Fixes INBOX-3922
|
|
4
|
-
|
|
5
|
-
- Delete Customer Idp Mappings when a customer is deleted. Closes INBOX-4032
|
|
6
|
-
- Delete Customer settings when a customer is deleted
|
|
7
|
-
|
|
8
|
-
- Add `robots.txt` to block everything just in case. Closes INBOX-4059
|
|
9
|
-
|
|
10
|
-
- Create scope for managing access policies
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# Testing
|
|
14
|
-
- when you are locked out of your account, there should be an event in snowflake
|
|
15
|
-
|
|
16
|
-
- Add an idp mapping to a customer in auth, then delete the customer from master api. The idp mapping should also be deleted
|
|
17
|
-
- Deleting a customer should not delete all idp mappings
|
|
18
|
-
|
|
19
|
-
- `/robots.txt` exists
|
|
20
|
-
|
|
21
|
-
- N/A
|
|
22
|
-
|