Skip to content
This repository was archived by the owner on Nov 15, 2024. It is now read-only.

Commit 5e6a12e

Browse files
authored
Merge pull request #440 from TeamCodeStream/develop
15.4.0
2 parents 1e8d9c8 + ba37651 commit 5e6a12e

File tree

66 files changed

+1546
-95
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1546
-95
lines changed

api_server/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# Change Log
22

3-
## [15.4.0] - 2024-4-4
3+
## [15.4.0] - 2024-4-17
44

55
### Changed
66

77
- Updates to telemetry events
8+
- A/B test open-in-IDE redirect pages
89

910
## [15.3.0] - 2024-3-14
1011

api_server/bin/api_server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ const DataCollections = {
3535
msteams_conversations: require(ModuleDirectory + '/msteams_conversations/msteams_conversation'),
3636
msteams_states: require(ModuleDirectory + '/msteams_states/msteams_state'),
3737
msteams_teams: require(ModuleDirectory + '/msteams_teams/msteams_team'),
38-
reposByCommitHash: require(ModuleDirectory + '/repos/repo_by_commit_hash')
38+
reposByCommitHash: require(ModuleDirectory + '/repos/repo_by_commit_hash'),
39+
entities: require(ModuleDirectory + '/entities/entity')
3940
};
4041

4142
// establish our mongo collections, these include our DataCollections, but
@@ -67,7 +68,6 @@ const MongoCollections = Object.keys(DataCollections).concat([
6768

6869
// changes to Config will be available globally via the /config/writeable.js module
6970
const Config = await ApiConfig.loadPreferredConfig({ wait: true });
70-
Config.telemetry.segment.telemetryEndpoint = 'https://taxonomy-enforcer.service.newrelic.com'; // for now
7171

7272
// establish our logger
7373
const Logger = new SimpleFileLogger(Config.apiServer.logger);

api_server/bin/ensure-indexes.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ const AllModuleIndexes = {
3232
msteams_teams: require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/msteams_teams/indexes'),
3333
reposByCommitHash: require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/repos/repo_by_commit_hash_indexes'),
3434
gitLensUsers: require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/users/gitlens_user_indexes'),
35-
newRelicOrgs: require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/newrelic_comments/new_relic_org_indexes')
35+
newRelicOrgs: require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/newrelic_comments/new_relic_org_indexes'),
36+
entities: require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/entities/indexes')
3637
};
3738

3839
const AllFinished = {

api_server/config/dev-secrets.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"STORAGE_MONGO_URL",
4848
"TELEMETRY_SEGMENT_TOKEN",
4949
"TELEMETRY_SEGMENT_WEB_TOKEN",
50+
"TELEMETRY_ENDPOINT",
5051
"UNIVERSAL_SECRETS_TELEMETRY",
5152
"UNIVERSAL_SECRETS_TELEMETRY",
5253
"SHARED_SECRETS_COMMENT_ENGINE",

api_server/lib/test_base/codestream_api_test.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const RandomCodemarkFactory = require(process.env.CSSVC_BACKEND_ROOT + '/api_ser
1515
const RandomReviewFactory = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/reviews/test/random_review_factory');
1616
const RandomCodeErrorFactory = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/code_errors/test/random_code_error_factory');
1717
const RandomNRCommentFactory = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/newrelic_comments/test/random_nr_comment_factory');
18+
const RandomEntityFactory = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/entities/test/random_entity_factory');
1819
const Assert = require('assert');
1920
const BoundAsync = require(process.env.CSSVC_BACKEND_ROOT + '/shared/server_utils/bound_async');
2021
const TestTeamCreator = require('./test_team_creator');
@@ -75,7 +76,10 @@ class CodeStreamAPITest extends APIRequestTest {
7576
userFactory: this.userFactory,
7677
codeErrorFactory: this.codeErrorFactory
7778
});
78-
79+
this.entityFactory = new RandomEntityFactory({
80+
apiRequester: this
81+
});
82+
7983
this.userOptions = {
8084
numRegistered: 2,
8185
numUnregistered: 0,

api_server/lib/util/deactivator.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ const ObjectId = require('mongodb').ObjectId;
44
const UserIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/users/indexes');
55
const RepoIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/repos/indexes');
66
const StreamIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/streams/indexes');
7+
const EntityIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/entities/indexes');
78

8-
const COLLECTIONS = ['companies', 'teams', 'repos', 'users', 'streams', 'posts', 'codemarks', 'reviews', 'codeErrors', 'markers', 'markerLocations'];
9-
const COLLECTIONS_FOR_TEAM = ['streams', 'posts', 'codemarks', 'reviews', 'codeErrors', 'markers', 'markerLocations'];
9+
const COLLECTIONS = ['companies', 'teams', 'repos', 'users', 'streams', 'posts', 'codemarks', 'reviews', 'codeErrors', 'markers', 'markerLocations', 'entities'];
10+
const COLLECTIONS_FOR_TEAM = ['streams', 'posts', 'codemarks', 'reviews', 'codeErrors', 'markers', 'markerLocations', 'entities'];
1011

1112
class Deleter {
1213

api_server/lib/util/deleter.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ const ApiConfig = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/config/c
33
const ObjectId = require('mongodb').ObjectId;
44
const UserIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/users/indexes');
55
const RepoIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/repos/indexes');
6+
const EntityIndexes = require(process.env.CSSVC_BACKEND_ROOT + '/api_server/modules/entities/indexes');
67

7-
const COLLECTIONS = ['companies', 'teams', 'repos', 'users', 'streams', 'posts', 'codemarks', 'markers', 'markerLocations'];
8+
const COLLECTIONS = ['companies', 'teams', 'repos', 'users', 'streams', 'posts', 'codemarks', 'markers', 'markerLocations', 'entities'];
89

910

1011
class Deleter {
@@ -25,6 +26,7 @@ class Deleter {
2526
await this.deleteCodemarks();
2627
await this.deleteMarkers();
2728
await this.deleteMarkerLocations();
29+
await this.deleteEntities();
2830
}
2931

3032
async openMongoClient () {
@@ -365,6 +367,19 @@ class Deleter {
365367
throw `unable to delete marker locations: ${JSON.stringify(error)}`;
366368
}
367369
}
370+
371+
async deleteEntities () {
372+
this.logger.log(`Deleting entities in team ${this.teamId}...`);
373+
try {
374+
await this.mongoClient.mongoCollections.entities.deleteByQuery(
375+
{ teamId: this.teamId },
376+
{ overrideHintRequired: true }
377+
);
378+
}
379+
catch (error) {
380+
throw `unable to delete entities: ${JSON.stringify(error)}`;
381+
}
382+
}
368383
}
369384

370385
module.exports = Deleter;

api_server/lib/util/restful/post_request.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ class PostRequest extends RestfulRequest {
2525

2626
// after the request has been processed and response returned to the client....
2727
async postProcess () {
28-
await this.creator.postCreate();
28+
if (this.creator) {
29+
await this.creator.postCreate();
30+
}
2931
}
3032

3133
// describe this route for help

api_server/modules/analytics/analytics_client.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ class AnalyticsClient {
3737
properties: data,
3838
messageId: UUID(),
3939
timestamp: new Date(),
40-
type: "track"
40+
type: "track",
41+
anonymousId: UUID(),
4142
};
43+
data.session_id = data.session_id || UUID();
44+
4245
const nrUserId = options.user ? options.user.get('nrUserId') : options.nrUserId;
4346
if (nrUserId) {
4447
trackData.userId = nrUserId; //userId;
4548
}
46-
if (options.anonymousId) {
47-
trackData.anonymousId = options.anonymousId;
48-
}
4949

5050
if (this._requestSaysToTestTracking(options)) {
5151
// we received a header in the request asking us to divert this tracking event
@@ -59,6 +59,10 @@ class AnalyticsClient {
5959
}
6060

6161
//this.segment.track(trackData);
62+
if (options.request) {
63+
options.request.log('TRACKING TO ' + this.config.telemetryEndpoint + '/events');
64+
options.request.log('trackData: ' + JSON.stringify(trackData));
65+
}
6266
Fetch(
6367
this.config.telemetryEndpoint + '/events',
6468
{

api_server/modules/apiweb/apiweb.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ class Web extends APIServerModule {
102102
return JSON.stringify(obj);
103103
});
104104

105+
Handlebars.registerHelper('eq', (a, b) => a == b);
106+
105107
// Not in use, but might be useful in the future
106108
/**
107109
* Format string with data

0 commit comments

Comments
 (0)