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: {
|
signupVerified: {
|
||||||
description: 'Triggered after a user successfully verifies their account during sign-up. '
|
description: 'Triggered after a user successfully verifies their account during sign-up. '
|
||||||
+ 'Not triggered in grist-core.',
|
+ 'Not triggered in grist-core.',
|
||||||
@ -583,6 +605,7 @@ export const TelemetryEvents = StringUnion(
|
|||||||
'documentUsage',
|
'documentUsage',
|
||||||
'processMonitor',
|
'processMonitor',
|
||||||
'sendingWebhooks',
|
'sendingWebhooks',
|
||||||
|
'signupFirstVisit',
|
||||||
'signupVerified',
|
'signupVerified',
|
||||||
'siteMembership',
|
'siteMembership',
|
||||||
'siteUsage',
|
'siteUsage',
|
||||||
|
@ -866,6 +866,9 @@ export class FlexServer implements GristServer {
|
|||||||
recordSignUpEvent: true
|
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;
|
const domain = mreq.org ?? null;
|
||||||
if (!process.env.GRIST_SINGLE_ORG && this._dbManager.isMergedOrg(domain)) {
|
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
|
// 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
|
// or null if anonymous (and other methods of determining profile such
|
||||||
// as a cookie should not be used), or undefined to use other methods.
|
// as a cookie should not be used), or undefined to use other methods.
|
||||||
getProfile?(req: express.Request|IncomingMessage): Promise<UserProfile|null|undefined>;
|
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