mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
(core) Fix recording of signups, and record as telemetry too.
Summary: Previously we failed to log signup info for users who signed up via Google. This fixes that issue by recording it on first post-signup visit. It also includes signup as a new telemetry event, recorded at the same point. Test Plan: Tested locally to see that a signup produces an appropriate log message and telemetry event. Reviewers: georgegevoian Reviewed By: georgegevoian Differential Revision: https://phab.getgrist.com/D3921
This commit is contained in:
parent
f873b38e8f
commit
41280a31f2
@ -404,6 +404,28 @@ export const TelemetryContracts: TelemetryContracts = {
|
||||
},
|
||||
},
|
||||
},
|
||||
signupFirstVisit: {
|
||||
description: 'Triggered when a new user first opens the Grist app',
|
||||
minimumTelemetryLevel: Level.full,
|
||||
metadataContracts: {
|
||||
siteId: {
|
||||
description: 'The site id of first visit after signup.',
|
||||
dataType: 'number',
|
||||
},
|
||||
siteType: {
|
||||
description: 'The site type of first visit after signup.',
|
||||
dataType: 'string',
|
||||
},
|
||||
userId: {
|
||||
description: 'The id of the user that signed up.',
|
||||
dataType: 'number',
|
||||
},
|
||||
altSessionId: {
|
||||
description: 'A random, session-based identifier for the user that triggered this event.',
|
||||
dataType: 'string',
|
||||
},
|
||||
},
|
||||
},
|
||||
signupVerified: {
|
||||
description: 'Triggered after a user successfully verifies their account during sign-up. '
|
||||
+ 'Not triggered in grist-core.',
|
||||
@ -583,6 +605,7 @@ export const TelemetryEvents = StringUnion(
|
||||
'documentUsage',
|
||||
'processMonitor',
|
||||
'sendingWebhooks',
|
||||
'signupFirstVisit',
|
||||
'signupVerified',
|
||||
'siteMembership',
|
||||
'siteUsage',
|
||||
|
@ -866,6 +866,9 @@ export class FlexServer implements GristServer {
|
||||
recordSignUpEvent: true
|
||||
}});
|
||||
|
||||
// Give a chance to the login system to react to the first visit after signup.
|
||||
this._loginMiddleware.onFirstVisit?.(req);
|
||||
|
||||
const domain = mreq.org ?? null;
|
||||
if (!process.env.GRIST_SINGLE_ORG && this._dbManager.isMergedOrg(domain)) {
|
||||
// We're logging in for the first time on the merged org; if the user has
|
||||
|
@ -75,6 +75,8 @@ export interface GristLoginMiddleware {
|
||||
// or null if anonymous (and other methods of determining profile such
|
||||
// as a cookie should not be used), or undefined to use other methods.
|
||||
getProfile?(req: express.Request|IncomingMessage): Promise<UserProfile|null|undefined>;
|
||||
// Called on first visit to an app page after a signup, for reporting or telemetry purposes.
|
||||
onFirstVisit?(req: express.Request): void;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user