Add event for tracking user collaboration

This commit is contained in:
Andrew Kingston 2023-06-06 10:11:51 +01:00
parent 1c983b4638
commit d70e49d74f
4 changed files with 23 additions and 1 deletions

View File

@ -3,6 +3,7 @@ import {
Event, Event,
User, User,
UserCreatedEvent, UserCreatedEvent,
UserDataCollaborationEvent,
UserDeletedEvent, UserDeletedEvent,
UserInviteAcceptedEvent, UserInviteAcceptedEvent,
UserInvitedEvent, UserInvitedEvent,
@ -173,6 +174,15 @@ async function passwordReset(user: User) {
await publishEvent(Event.USER_PASSWORD_RESET, properties) await publishEvent(Event.USER_PASSWORD_RESET, properties)
} }
// COLLABORATION
async function dataCollaboration(users: number) {
const properties: UserDataCollaborationEvent = {
users,
}
await publishEvent(Event.USER_DATA_COLLABORATION, properties)
}
export default { export default {
created, created,
updated, updated,
@ -188,4 +198,5 @@ export default {
passwordUpdated, passwordUpdated,
passwordResetRequested, passwordResetRequested,
passwordReset, passwordReset,
dataCollaboration,
} }

View File

@ -1,6 +1,6 @@
import authorized from "../middleware/authorized" import authorized from "../middleware/authorized"
import { BaseSocket } from "./websocket" import { BaseSocket } from "./websocket"
import { permissions } from "@budibase/backend-core" import { permissions, events } from "@budibase/backend-core"
import http from "http" import http from "http"
import Koa from "koa" import Koa from "koa"
import { Datasource, Table, SocketSession, ContextUser } from "@budibase/types" import { Datasource, Table, SocketSession, ContextUser } from "@budibase/types"
@ -22,6 +22,9 @@ export default class BuilderSocket extends BaseSocket {
// Reply with all users in current room // Reply with all users in current room
const sessions = await this.getRoomSessions(appId) const sessions = await this.getRoomSessions(appId)
callback({ users: sessions }) callback({ users: sessions })
// Track usage
await events.user.dataCollaboration(sessions.length)
}) })
} }

View File

@ -26,6 +26,9 @@ export enum Event {
USER_PASSWORD_RESET_REQUESTED = "user:password:reset:requested", USER_PASSWORD_RESET_REQUESTED = "user:password:reset:requested",
USER_PASSWORD_RESET = "user:password:reset", USER_PASSWORD_RESET = "user:password:reset",
// USER / COLLABORATION
USER_DATA_COLLABORATION = "user:data:collaboration",
// EMAIL // EMAIL
EMAIL_SMTP_CREATED = "email:smtp:created", EMAIL_SMTP_CREATED = "email:smtp:created",
EMAIL_SMTP_UPDATED = "email:smtp:updated", EMAIL_SMTP_UPDATED = "email:smtp:updated",
@ -233,6 +236,7 @@ export const AuditedEventFriendlyName: Record<Event, string | undefined> = {
[Event.USER_PASSWORD_FORCE_RESET]: undefined, [Event.USER_PASSWORD_FORCE_RESET]: undefined,
[Event.USER_GROUP_ONBOARDING]: undefined, [Event.USER_GROUP_ONBOARDING]: undefined,
[Event.USER_ONBOARDING_COMPLETE]: undefined, [Event.USER_ONBOARDING_COMPLETE]: undefined,
[Event.USER_DATA_COLLABORATION]: undefined,
// EMAIL // EMAIL
[Event.EMAIL_SMTP_CREATED]: `Email configuration created`, [Event.EMAIL_SMTP_CREATED]: `Email configuration created`,

View File

@ -86,3 +86,7 @@ export interface UserPasswordResetEvent extends BaseEvent {
email: string email: string
} }
} }
export interface UserDataCollaborationEvent extends BaseEvent {
users: number
}