mirror of
https://github.com/supabase/supabase.git
synced 2026-10-15 22:29:11 +03:00
chore: remove event enums (#33730)
* chore: remove event enums * chore: remove more event enums * chore: remove unused HomepageHeroRequestDemoClickedEvent * chore: remove unused HomepageHeroRequestDemoClickedEvent * chore: rename custom_report events to use underscores * chore: remove telemetry enum * chore: remove unused imports * chore: remove enums from merged events * chore: remove unused imports * chore: add typedocs for module and hide exported types that are not events
This commit is contained in:
1 parent
f3af6c6e23
commit
ff9d6fe4a2
57 files changed
+155
-289
No files matched your search
@@ -13,7 +13,6 @@ import {
|
||||
} from 'react'
|
||||
|
||||
import { type Database, useConstant, useIsLoggedIn } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { Button, cn } from 'ui'
|
||||
|
||||
import { IS_PLATFORM } from '~/lib/constants'
|
||||
@@ -109,7 +108,7 @@ function Feedback({ className }: { className?: string }) {
|
||||
|
||||
function handleVote(response: Response) {
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.DOCS_FEEDBACK_CLICKED,
|
||||
action: 'docs_feedback_clicked',
|
||||
properties: { response },
|
||||
})
|
||||
sendFeedbackVote(response)
|
||||
|
||||
@@ -4,7 +4,6 @@ import { forwardRef, useRef } from 'react'
|
||||
import DataGrid, { DataGridHandle, RowsChangeData } from 'react-data-grid'
|
||||
import { memo } from 'react-tracked'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { formatClipboardValue } from 'components/grid/utils/common'
|
||||
import { TableGridInnerLoadingState } from 'components/interfaces/TableGridEditor/LoadingState'
|
||||
import { formatForeignKeys } from 'components/interfaces/TableGridEditor/SidePanelEditor/ForeignKeySelector/ForeignKeySelector.utils'
|
||||
@@ -224,7 +223,7 @@ export const Grid = memo(
|
||||
onClick={() => {
|
||||
onImportData()
|
||||
sendEvent({
|
||||
action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED,
|
||||
action: 'import_data_button_clicked',
|
||||
properties: { tableType: 'Existing Table' },
|
||||
groups: {
|
||||
project: project?.ref ?? 'Unknown',
|
||||
|
||||
@@ -7,7 +7,6 @@ import { ReactNode, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useDispatch, useTrackedState } from 'components/grid/store/Store'
|
||||
import type { Filter, Sort, SupaTable } from 'components/grid/types'
|
||||
import { formatTableRowsToSQL } from 'components/interfaces/TableGridEditor/TableEntity.utils'
|
||||
@@ -207,7 +206,7 @@ const DefaultHeader = ({ table, onAddColumn, onAddRow, onImportData }: DefaultHe
|
||||
onClick={() => {
|
||||
onImportData()
|
||||
sendEvent({
|
||||
action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED,
|
||||
action: 'import_data_button_clicked',
|
||||
properties: { tableType: 'Existing Table' },
|
||||
groups: {
|
||||
project: ref ?? 'Unknown',
|
||||
|
||||
@@ -2,7 +2,6 @@ import { ExternalLink, Eye, EyeOff, FlaskConical } from 'lucide-react'
|
||||
import Link from 'next/link'
|
||||
import { useEffect, useState } from 'react'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useFlag } from 'hooks/ui/useFlag'
|
||||
import { useAppStateSnapshot } from 'state/app-state'
|
||||
@@ -33,9 +32,7 @@ const FeaturePreviewModal = () => {
|
||||
const toggleFeature = () => {
|
||||
onUpdateFlag(selectedFeatureKey, !isSelectedFeatureEnabled)
|
||||
sendEvent({
|
||||
action: isSelectedFeatureEnabled
|
||||
? TelemetryActions.FEATURE_PREVIEW_DISABLED
|
||||
: TelemetryActions.FEATURE_PREVIEW_ENABLED,
|
||||
action: isSelectedFeatureEnabled ? 'feature_preview_disabled' : 'feature_preview_enabled',
|
||||
properties: { feature: selectedFeatureKey },
|
||||
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
@@ -57,7 +54,7 @@ const FeaturePreviewModal = () => {
|
||||
useEffect(() => {
|
||||
if (snap.showFeaturePreviewModal) {
|
||||
sendEvent({
|
||||
action: TelemetryActions.FEATURE_PREVIEWS_CLICKED,
|
||||
action: 'feature_previews_clicked',
|
||||
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { ChevronDown } from 'lucide-react'
|
||||
import { HTMLAttributes, ReactNode, useState } from 'react'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { getAddons } from 'components/interfaces/Billing/Subscription/Subscription.utils'
|
||||
import AlertError from 'components/ui/AlertError'
|
||||
import DatabaseSelector from 'components/ui/DatabaseSelector'
|
||||
@@ -103,7 +102,7 @@ export const DatabaseConnectionString = () => {
|
||||
const connectionType = connectionInfo?.label ?? 'Unknown'
|
||||
const lang = connectionInfo?.lang ?? 'Unknown'
|
||||
sendEvent({
|
||||
action: TelemetryActions.CONNECTION_STRING_COPIED,
|
||||
action: 'connection_string_copied',
|
||||
properties: { connectionType, lang, connectionMethod },
|
||||
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
|
||||
@@ -3,7 +3,6 @@ import { useTheme } from 'next-themes'
|
||||
import Link from 'next/link'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
import { BASE_PATH } from 'lib/constants'
|
||||
@@ -29,7 +28,7 @@ const ExampleProject = ({ framework, title, description, url }: ExampleProjectPr
|
||||
rel="noreferrer"
|
||||
onClick={() =>
|
||||
sendEvent({
|
||||
action: TelemetryActions.EXAMPLE_PROJECT_CARD_CLICKED,
|
||||
action: 'example_project_card_clicked',
|
||||
properties: { cardTitle: title },
|
||||
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
|
||||
@@ -7,7 +7,6 @@ import { toast } from 'sonner'
|
||||
import z from 'zod'
|
||||
|
||||
import { useWatch } from '@ui/components/shadcn/ui/form'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { urlRegex } from 'components/interfaces/Auth/Auth.constants'
|
||||
import EnableExtensionModal from 'components/interfaces/Database/Extensions/EnableExtensionModal'
|
||||
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
|
||||
@@ -333,7 +332,7 @@ export const CreateCronJobSheet = ({
|
||||
|
||||
if (isEditing) {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_UPDATED,
|
||||
action: 'cron_job_updated',
|
||||
properties: {
|
||||
type: values.type,
|
||||
schedule: schedule,
|
||||
@@ -345,7 +344,7 @@ export const CreateCronJobSheet = ({
|
||||
})
|
||||
} else {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_CREATED,
|
||||
action: 'cron_job_created',
|
||||
properties: {
|
||||
type: values.type,
|
||||
schedule: schedule,
|
||||
|
||||
@@ -4,7 +4,6 @@ import Link from 'next/link'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
|
||||
import { CronJob } from 'data/database-cron-jobs/database-cron-jobs-query'
|
||||
import { useCronJobRunQuery } from 'data/database-cron-jobs/database-cron-jobs-run-query'
|
||||
@@ -94,7 +93,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
|
||||
icon={<History />}
|
||||
onClick={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_HISTORY_CLICKED,
|
||||
action: 'cron_job_history_clicked',
|
||||
groups: {
|
||||
project: selectedProject?.ref ?? 'Unknown',
|
||||
organization: org?.slug ?? 'Unknown',
|
||||
@@ -116,7 +115,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
|
||||
<DropdownMenuItem
|
||||
onClick={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_UPDATE_CLICKED,
|
||||
action: 'cron_job_update_clicked',
|
||||
groups: {
|
||||
project: selectedProject?.ref ?? 'Unknown',
|
||||
organization: org?.slug ?? 'Unknown',
|
||||
@@ -131,7 +130,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
|
||||
<DropdownMenuItem
|
||||
onClick={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_DELETE_CLICKED,
|
||||
action: 'cron_job_delete_clicked',
|
||||
groups: {
|
||||
project: selectedProject?.ref ?? 'Unknown',
|
||||
organization: org?.slug ?? 'Unknown',
|
||||
|
||||
@@ -2,7 +2,6 @@ import { Search } from 'lucide-react'
|
||||
import { parseAsBoolean, parseAsString, useQueryState } from 'nuqs'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { CreateCronJobSheet } from 'components/interfaces/Integrations/CronJobs/CreateCronJobSheet'
|
||||
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
|
||||
import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader'
|
||||
@@ -69,7 +68,7 @@ export const CronjobsTab = () => {
|
||||
|
||||
const onOpenCreateJobSheet = () => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_CREATE_CLICKED,
|
||||
action: 'cron_job_create_clicked',
|
||||
groups: { project: project?.ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
setCreateCronJobSheetShown(true)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
|
||||
import { useDatabaseCronJobDeleteMutation } from 'data/database-cron-jobs/database-cron-jobs-delete-mutation'
|
||||
import { CronJob } from 'data/database-cron-jobs/database-cron-jobs-query'
|
||||
@@ -22,7 +21,7 @@ export const DeleteCronJob = ({ cronJob, visible, onClose }: DeleteCronJobProps)
|
||||
const { mutate: deleteDatabaseCronJob, isLoading } = useDatabaseCronJobDeleteMutation({
|
||||
onSuccess: () => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.CRON_JOB_DELETED,
|
||||
action: 'cron_job_deleted',
|
||||
groups: { project: project?.ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
toast.success(`Successfully removed cron job ${cronJob.jobname}`)
|
||||
|
||||
+2
-3
@@ -1,6 +1,5 @@
|
||||
import { Check } from 'lucide-react'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-query'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
@@ -55,7 +54,7 @@ export const EnterpriseCard = ({ plan, isCurrentPlan, billingPartner }: Enterpri
|
||||
size="tiny"
|
||||
onClick={() =>
|
||||
sendEvent({
|
||||
action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'studio_pricing_plan_cta_clicked',
|
||||
properties: { selectedPlan: 'Enterprise', currentPlan },
|
||||
groups: { organization: orgSlug ?? 'Unknown' },
|
||||
})
|
||||
@@ -92,7 +91,7 @@ export const EnterpriseCard = ({ plan, isCurrentPlan, billingPartner }: Enterpri
|
||||
size="tiny"
|
||||
onClick={() =>
|
||||
sendEvent({
|
||||
action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'studio_pricing_plan_cta_clicked',
|
||||
properties: { selectedPlan: 'Enterprise', currentPlan },
|
||||
groups: { organization: orgSlug ?? 'Unknown' },
|
||||
})
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@ import { useRouter } from 'next/router'
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { StudioPricingSidePanelOpenedEvent, TelemetryActions } from 'common/telemetry-constants'
|
||||
import { StudioPricingSidePanelOpenedEvent } from 'common/telemetry-constants'
|
||||
import { billingPartnerLabel } from 'components/interfaces/Billing/Subscription/Subscription.utils'
|
||||
import Table from 'components/to-be-cleaned/Table'
|
||||
import AlertError from 'components/ui/AlertError'
|
||||
@@ -136,7 +136,7 @@ const PlanUpdateSidePanel = () => {
|
||||
properties.origin = source
|
||||
}
|
||||
sendEvent({
|
||||
action: TelemetryActions.STUDIO_PRICING_SIDE_PANEL_OPENED,
|
||||
action: 'studio_pricing_side_panel_opened',
|
||||
properties,
|
||||
groups: { organization: slug ?? 'Unknown' },
|
||||
})
|
||||
@@ -280,7 +280,7 @@ const PlanUpdateSidePanel = () => {
|
||||
onClick={() => {
|
||||
setSelectedTier(plan.id as any)
|
||||
sendEvent({
|
||||
action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'studio_pricing_plan_cta_clicked',
|
||||
properties: {
|
||||
selectedPlan: plan.name,
|
||||
currentPlan: subscription?.plan?.name,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { useChat } from 'ai/react'
|
||||
import { useEffect, useState } from 'react'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { Markdown } from 'components/interfaces/Markdown'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { BASE_PATH } from 'lib/constants'
|
||||
@@ -172,14 +171,14 @@ export const SchemaGenerator = ({
|
||||
// distinguish between initial step or second step
|
||||
if (step === 'initial') {
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_PROMPT_INTENDED,
|
||||
action: 'project_creation_initial_step_prompt_intended',
|
||||
properties: {
|
||||
isNewPrompt,
|
||||
},
|
||||
})
|
||||
} else {
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_PROMPT_INTENDED,
|
||||
action: 'project_creation_second_step_prompt_intended',
|
||||
properties: {
|
||||
isNewPrompt,
|
||||
},
|
||||
|
||||
@@ -5,7 +5,6 @@ import { Dispatch, SetStateAction, useState } from 'react'
|
||||
import { useForm } from 'react-hook-form'
|
||||
import * as z from 'zod'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { DocsButton } from 'components/ui/DocsButton'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
@@ -56,7 +55,7 @@ export const ChooseChannelPopover = ({ config, onChangeConfig }: ChooseChannelPo
|
||||
const onSubmit = () => {
|
||||
setOpen(false)
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED,
|
||||
action: 'realtime_inspector_listen_channel_clicked',
|
||||
groups: {
|
||||
project: ref ?? 'Unknown',
|
||||
organization: org?.slug ?? 'Unknown',
|
||||
|
||||
@@ -2,7 +2,6 @@ import { PlayCircle, StopCircle } from 'lucide-react'
|
||||
import { Dispatch, SetStateAction } from 'react'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { ButtonTooltip } from 'components/ui/ButtonTooltip'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
@@ -37,7 +36,7 @@ export const Header = ({ config, onChangeConfig }: HeaderProps) => {
|
||||
if (!config.enabled) {
|
||||
// the user has clicked to start listening
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED,
|
||||
action: 'realtime_inspector_listen_channel_clicked',
|
||||
groups: {
|
||||
project: ref ?? 'Unknown',
|
||||
organization: org?.slug ?? 'Unknown',
|
||||
|
||||
@@ -2,7 +2,6 @@ import { X } from 'lucide-react'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import CopyButton from 'components/ui/CopyButton'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
@@ -79,7 +78,7 @@ const MessageSelection = ({ log, onClose }: MessageSelectionProps) => {
|
||||
title="Copy log to clipboard"
|
||||
onClick={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED,
|
||||
action: 'realtime_inspector_copy_message_clicked',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
}}
|
||||
|
||||
@@ -5,7 +5,6 @@ import { useEffect, useState } from 'react'
|
||||
import DataGrid, { Row } from 'react-data-grid'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { DocsButton } from 'components/ui/DocsButton'
|
||||
import ShimmerLine from 'components/ui/ShimmerLine'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
@@ -182,7 +181,7 @@ const MessagesTable = ({
|
||||
selectedCellIdx={undefined}
|
||||
onClick={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_MESSAGE_CLICKED,
|
||||
action: 'realtime_inspector_message_clicked',
|
||||
groups: {
|
||||
project: ref ?? 'Unknown',
|
||||
organization: org?.slug ?? 'Unknown',
|
||||
|
||||
+1
-2
@@ -3,7 +3,6 @@ import Link from 'next/link'
|
||||
import { Dispatch, SetStateAction, useState } from 'react'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
import {
|
||||
@@ -206,7 +205,7 @@ export const RealtimeFilterPopover = ({ config, onChangeConfig }: RealtimeFilter
|
||||
onCancel={() => setApplyConfigOpen(false)}
|
||||
onConfirm={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_FILTERS_APPLIED,
|
||||
action: 'realtime_inspector_filters_applied',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
onChangeConfig(tempConfig)
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
import { Dispatch, SetStateAction, useEffect, useRef } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { RoleImpersonationPopover } from 'components/interfaces/RoleImpersonationSelector'
|
||||
import { useProjectPostgrestConfigQuery } from 'data/config/project-postgrest-config-query'
|
||||
import { getAPIKeys, useProjectSettingsV2Query } from 'data/config/project-settings-v2-query'
|
||||
@@ -40,7 +39,7 @@ export const RealtimeTokensPopover = ({ config, onChangeConfig }: RealtimeTokens
|
||||
useEffect(() => {
|
||||
if (isMounted.current) {
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_DATABASE_ROLE_UPDATED,
|
||||
action: 'realtime_inspector_database_role_updated',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { useParams } from 'common'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { Header } from './Header'
|
||||
import MessagesTable from './MessagesTable'
|
||||
@@ -54,7 +53,7 @@ export const RealtimeInspector = () => {
|
||||
onSelectCancel={() => setSendMessageShown(false)}
|
||||
onSelectConfirm={(v) => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_BROADCAST_SENT,
|
||||
action: 'realtime_inspector_broadcast_sent',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
sendMessage(v.message, v.payload, () => setSendMessageShown(false))
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'react-resizable/css/styles.css'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
|
||||
import { DEFAULT_CHART_CONFIG } from 'components/ui/QueryBlock/QueryBlock'
|
||||
import { AnalyticsInterval } from 'data/analytics/constants'
|
||||
@@ -135,7 +134,7 @@ export const GridResize = ({
|
||||
},
|
||||
}
|
||||
)
|
||||
sendEvent({ action: TelemetryActions.CUSTOM_REPORT_ASSISTANT_SQL_BLOCK_ADDED })
|
||||
sendEvent({ action: 'custom_report_assistant_sql_block_added' })
|
||||
}
|
||||
|
||||
if (!editableReport) return null
|
||||
|
||||
@@ -3,7 +3,6 @@ import { Home } from 'lucide-react'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useContentQuery } from 'data/content/content-query'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled'
|
||||
@@ -138,7 +137,7 @@ export const MetricOptions = ({ config, handleChartSelection }: MetricOptionsPro
|
||||
isAddingChart: true,
|
||||
})
|
||||
sendEvent({
|
||||
action: TelemetryActions.CUSTOM_REPORT_ADD_SQL_BLOCK_CLICKED,
|
||||
action: 'custom_report_add_sql_block_clicked',
|
||||
})
|
||||
}
|
||||
}}
|
||||
|
||||
@@ -9,7 +9,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { GridFooter } from 'components/ui/GridFooter'
|
||||
import { useSqlTitleGenerateMutation } from 'data/ai/sql-title-mutation'
|
||||
import { useEntityDefinitionsQuery } from 'data/database/entity-definitions-query'
|
||||
@@ -317,7 +316,7 @@ export const SQLEditor = () => {
|
||||
})
|
||||
|
||||
sendEvent({
|
||||
action: TelemetryActions.SQL_EDITOR_QUERY_RUN_BUTTON_CLICKED,
|
||||
action: 'sql_editor_query_run_button_clicked',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
}
|
||||
@@ -418,7 +417,7 @@ export const SQLEditor = () => {
|
||||
}
|
||||
|
||||
sendEvent({
|
||||
action: TelemetryActions.ASSISTANT_SQL_DIFF_HANDLER_EVALUATED,
|
||||
action: 'assistant_sql_diff_handler_evaluated',
|
||||
properties: { handlerAccepted: true },
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
@@ -443,7 +442,7 @@ export const SQLEditor = () => {
|
||||
|
||||
const discardAiHandler = useCallback(() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.ASSISTANT_SQL_DIFF_HANDLER_EVALUATED,
|
||||
action: 'assistant_sql_diff_handler_evaluated',
|
||||
properties: { handlerAccepted: false },
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
|
||||
@@ -4,7 +4,6 @@ import { useRouter } from 'next/router'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { SQL_TEMPLATES } from 'components/interfaces/SQLEditor/SQLEditor.queries'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useCheckPermissions } from 'hooks/misc/useCheckPermissions'
|
||||
@@ -79,7 +78,7 @@ const SQLQuickstarts = () => {
|
||||
onClick={(sql, title) => {
|
||||
handleNewQuery(sql, title)
|
||||
sendEvent({
|
||||
action: TelemetryActions.SQL_EDITOR_QUICKSTART_CLICKED,
|
||||
action: 'sql_editor_quickstart_clicked',
|
||||
properties: { quickstartName: title },
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
|
||||
@@ -4,7 +4,6 @@ import { useRouter } from 'next/router'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { SQL_TEMPLATES } from 'components/interfaces/SQLEditor/SQLEditor.queries'
|
||||
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
@@ -79,7 +78,7 @@ const SQLTemplates = () => {
|
||||
onClick={(sql, title) => {
|
||||
handleNewQuery(sql, title)
|
||||
sendEvent({
|
||||
action: TelemetryActions.SQL_EDITOR_TEMPLATE_CLICKED,
|
||||
action: 'sql_editor_template_clicked',
|
||||
properties: { templateName: title },
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { DownloadResultsButton } from 'components/ui/DownloadResultsButton'
|
||||
import { useContentUpsertMutation } from 'data/content/content-upsert-mutation'
|
||||
import { Snippet } from 'data/content/sql-folders-query'
|
||||
@@ -127,19 +126,19 @@ const UtilityPanel = ({
|
||||
fileName={`Supabase Snippet ${snippet.name}`}
|
||||
onDownloadAsCSV={() =>
|
||||
sendEvent({
|
||||
action: TelemetryActions.SQL_EDITOR_RESULT_DOWNLOAD_CSV_CLICKED,
|
||||
action: 'sql_editor_result_download_csv_clicked',
|
||||
groups: { project: ref ?? '', organization: org?.slug ?? '' },
|
||||
})
|
||||
}
|
||||
onCopyAsMarkdown={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.SQL_EDITOR_RESULT_COPY_MARKDOWN_CLICKED,
|
||||
action: 'sql_editor_result_copy_markdown_clicked',
|
||||
groups: { project: ref ?? '', organization: org?.slug ?? '' },
|
||||
})
|
||||
}}
|
||||
onCopyAsJSON={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.SQL_EDITOR_RESULT_COPY_JSON_CLICKED,
|
||||
action: 'sql_editor_result_copy_json_clicked',
|
||||
groups: { project: ref ?? '', organization: org?.slug ?? '' },
|
||||
})
|
||||
}}
|
||||
|
||||
@@ -8,7 +8,6 @@ import { useRef, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
import { object, string } from 'yup'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useAddLoginEvent } from 'data/misc/audit-login-mutation'
|
||||
import { getMfaAuthenticatorAssuranceLevel } from 'data/profile/mfa-authenticator-assurance-level-query'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
@@ -63,7 +62,7 @@ const SignInForm = () => {
|
||||
|
||||
toast.success(`Signed in successfully!`, { id: toastId })
|
||||
sendEvent({
|
||||
action: TelemetryActions.SIGN_IN,
|
||||
action: 'sign_in',
|
||||
properties: { category: 'account', method: 'email' },
|
||||
})
|
||||
addLoginEvent({})
|
||||
|
||||
@@ -15,7 +15,6 @@ import { useDatabasePublicationsQuery } from 'data/database-publications/databas
|
||||
import { useDatabasePublicationUpdateMutation } from 'data/database-publications/database-publications-update-mutation'
|
||||
import { useProjectLintsQuery } from 'data/lint/lint-query'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import {
|
||||
Entity,
|
||||
isTableLike,
|
||||
@@ -151,7 +150,7 @@ const GridHeaderActions = ({ table }: GridHeaderActionsProps) => {
|
||||
.map((x: any) => `${x.schema}.${x.name}`)
|
||||
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_TOGGLE_TABLE_CLICKED,
|
||||
action: 'realtime_toggle_table_clicked',
|
||||
properties: {
|
||||
newState: exists ? 'disabled' : 'enabled',
|
||||
origin: 'tableGridHeader',
|
||||
|
||||
+1
-2
@@ -6,7 +6,6 @@ import { useCallback, useEffect, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
import { Button, SidePanel, Tabs } from 'ui'
|
||||
@@ -172,7 +171,7 @@ const SpreadsheetImport = ({
|
||||
} else {
|
||||
saveContent({ file: uploadedFile, ...spreadsheetData, selectedHeaders, resolve })
|
||||
sendEvent({
|
||||
action: TelemetryActions.IMPORT_DATA_ADDED,
|
||||
action: 'import_data_added',
|
||||
groups: { project: projectRef ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
}
|
||||
|
||||
+1
-2
@@ -10,7 +10,6 @@ import {
|
||||
} from 'react-beautiful-dnd'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import InformationBox from 'components/ui/InformationBox'
|
||||
import type { EnumeratedType } from 'data/enumerated-types/enumerated-types-query'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
@@ -170,7 +169,7 @@ const ColumnManagement = ({
|
||||
onClick={() => {
|
||||
onSelectImportData()
|
||||
sendEvent({
|
||||
action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED,
|
||||
action: 'import_data_button_clicked',
|
||||
properties: { tableType: 'New Table' },
|
||||
groups: {
|
||||
project: projectRef ?? 'Unknown',
|
||||
|
||||
+1
-2
@@ -42,7 +42,6 @@ import {
|
||||
validateFields,
|
||||
} from './TableEditor.utils'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
|
||||
export interface TableEditorProps {
|
||||
@@ -359,7 +358,7 @@ const TableEditor = ({
|
||||
checked={tableFields.isRealtimeEnabled}
|
||||
onChange={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.REALTIME_TOGGLE_TABLE_CLICKED,
|
||||
action: 'realtime_toggle_table_clicked',
|
||||
properties: {
|
||||
newState: tableFields.isRealtimeEnabled ? 'disabled' : 'enabled',
|
||||
origin: 'tableSidePanel',
|
||||
|
||||
+1
-2
@@ -6,7 +6,6 @@ import { ChangeEvent, useEffect, useRef, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendFeedbackMutation } from 'data/feedback/feedback-send'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
@@ -273,7 +272,7 @@ const FeedbackWidget = ({
|
||||
onClick={() => {
|
||||
sendFeedback()
|
||||
sendEvent({
|
||||
action: TelemetryActions.SEND_FEEDBACK_BUTTON_CLICKED,
|
||||
action: 'send_feedback_button_clicked',
|
||||
groups: { project: ref, organization: org?.slug },
|
||||
})
|
||||
}}
|
||||
|
||||
@@ -4,7 +4,6 @@ import Link from 'next/link'
|
||||
import { useRouter } from 'next/router'
|
||||
import SVG from 'react-inlinesvg'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { ButtonTooltip } from 'components/ui/ButtonTooltip'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
|
||||
@@ -38,7 +37,7 @@ const HelpPopover = () => {
|
||||
tooltip={{ content: { side: 'bottom', text: 'Help' } }}
|
||||
onClick={() => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.HELP_BUTTON_CLICKED,
|
||||
action: 'help_button_clicked',
|
||||
groups: { project: project?.ref, organization: org?.slug },
|
||||
})
|
||||
}}
|
||||
|
||||
@@ -9,7 +9,6 @@ import { memo, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams, useSearchParamsShallow } from 'common/hooks'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { subscriptionHasHipaaAddon } from 'components/interfaces/Billing/Subscription/Subscription.utils'
|
||||
import { Markdown } from 'components/interfaces/Markdown'
|
||||
import OptInToOpenAIToggle from 'components/interfaces/Organization/GeneralSettings/OptInToOpenAIToggle'
|
||||
@@ -186,12 +185,12 @@ export const AIAssistant = ({
|
||||
|
||||
if (content.includes('Help me to debug')) {
|
||||
sendEvent({
|
||||
action: TelemetryActions.ASSISTANT_DEBUG_SUBMITTED,
|
||||
action: 'assistant_debug_submitted',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
} else {
|
||||
sendEvent({
|
||||
action: TelemetryActions.ASSISTANT_PROMPT_SUBMITTED,
|
||||
action: 'assistant_prompt_submitted',
|
||||
groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { useRouter } from 'next/router'
|
||||
import { DragEvent, memo, ReactNode, useContext, useEffect, useMemo, useRef } from 'react'
|
||||
|
||||
import { PermissionAction } from '@supabase/shared-types/out/constants'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { ChartConfig } from 'components/interfaces/SQLEditor/UtilityPanel/ChartConfig'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
import { useCheckPermissions } from 'hooks/misc/useCheckPermissions'
|
||||
@@ -181,7 +180,7 @@ export const MarkdownPre = ({ children }: { children: any }) => {
|
||||
|
||||
const onRunQuery = async (queryType: 'select' | 'mutation') => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.ASSISTANT_SUGGESTION_RUN_QUERY_CLICKED,
|
||||
action: 'assistant_suggestion_run_query_clicked',
|
||||
properties: {
|
||||
queryType,
|
||||
...(queryType === 'mutation'
|
||||
|
||||
@@ -2,7 +2,6 @@ import { Edit } from 'lucide-react'
|
||||
import { useRouter } from 'next/router'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { DiffType } from 'components/interfaces/SQLEditor/SQLEditor.types'
|
||||
import useNewQuery from 'components/interfaces/SQLEditor/hooks'
|
||||
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
|
||||
@@ -93,7 +92,7 @@ export const EditQueryButton = ({
|
||||
handleEditInSQLEditor()
|
||||
}
|
||||
sendEvent({
|
||||
action: TelemetryActions.ASSISTANT_EDIT_IN_SQL_EDITOR_CLICKED,
|
||||
action: 'assistant_edit_in_sql_editor_clicked',
|
||||
properties: {
|
||||
isInSQLEditor,
|
||||
isInNewSnippet,
|
||||
|
||||
@@ -4,7 +4,6 @@ import { useRouter } from 'next/router'
|
||||
import { PropsWithChildren, createContext, useContext, useMemo } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { usePermissionsQuery } from 'data/permissions/permissions-query'
|
||||
import { useProfileCreateMutation } from 'data/profile/profile-create-mutation'
|
||||
import { useProfileQuery } from 'data/profile/profile-query'
|
||||
@@ -38,7 +37,7 @@ export const ProfileProvider = ({ children }: PropsWithChildren<{}>) => {
|
||||
const { mutate: sendEvent } = useSendEventMutation()
|
||||
const { mutate: createProfile, isLoading: isCreatingProfile } = useProfileCreateMutation({
|
||||
onSuccess: () => {
|
||||
sendEvent({ action: TelemetryActions.SIGN_UP, properties: { category: 'conversion' } })
|
||||
sendEvent({ action: 'sign_up', properties: { category: 'conversion' } })
|
||||
},
|
||||
onError: (error) => {
|
||||
Sentry.captureMessage('Failed to create users profile: ' + error.message)
|
||||
|
||||
@@ -12,7 +12,6 @@ import { z } from 'zod'
|
||||
import { PopoverSeparator } from '@ui/components/shadcn/ui/popover'
|
||||
import { components } from 'api-types'
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import {
|
||||
FreeProjectLimitWarning,
|
||||
NotOrganizationOwnerWarning,
|
||||
@@ -201,7 +200,7 @@ const Wizard: NextPageWithLayout = () => {
|
||||
} = useProjectCreateMutation({
|
||||
onSuccess: (res) => {
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_SIMPLE_VERSION_SUBMITTED,
|
||||
action: 'project_creation_simple_version_submitted',
|
||||
})
|
||||
router.push(`/project/${res.ref}/building`)
|
||||
},
|
||||
|
||||
@@ -14,7 +14,6 @@ import { toast } from 'sonner'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { PopoverSeparator } from '@ui/components/shadcn/ui/popover'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import {
|
||||
FreeProjectLimitWarning,
|
||||
NotOrganizationOwnerWarning,
|
||||
@@ -309,7 +308,7 @@ const WizardForm = () => {
|
||||
// too important to cause disruption here, make sure to catch and skip any errors
|
||||
try {
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_SUBMITTED,
|
||||
action: 'project_creation_second_step_submitted',
|
||||
})
|
||||
} catch (error) {}
|
||||
|
||||
@@ -538,7 +537,7 @@ const WizardForm = () => {
|
||||
'We have generated a starting schema for you based on your description'
|
||||
)
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED,
|
||||
action: 'project_creation_initial_step_submitted',
|
||||
properties: { onboardingPath: 'use_prompt' },
|
||||
})
|
||||
setStep(2)
|
||||
@@ -547,7 +546,7 @@ const WizardForm = () => {
|
||||
setFormTitle('Start from Scratch')
|
||||
setFormDescription('Configure your new blank project')
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED,
|
||||
action: 'project_creation_initial_step_submitted',
|
||||
properties: { onboardingPath: 'start_blank' },
|
||||
})
|
||||
setStep(2)
|
||||
@@ -558,7 +557,7 @@ const WizardForm = () => {
|
||||
'First we need to create a new project to migrate your database to'
|
||||
)
|
||||
sendEvent({
|
||||
action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED,
|
||||
action: 'project_creation_initial_step_submitted',
|
||||
properties: { onboardingPath: 'migrate' },
|
||||
})
|
||||
setStep(2)
|
||||
|
||||
@@ -4,7 +4,6 @@ import { useEffect, useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
|
||||
import { useParams } from 'common'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import SignInMfaForm from 'components/interfaces/SignIn/SignInMfaForm'
|
||||
import SignInLayout from 'components/layouts/SignInLayout/SignInLayout'
|
||||
import { Loading } from 'components/ui/Loading'
|
||||
@@ -54,7 +53,7 @@ const SignInMfaPage: NextPageWithLayout = () => {
|
||||
|
||||
if (data.currentLevel === data.nextLevel) {
|
||||
sendEvent({
|
||||
action: TelemetryActions.SIGN_IN,
|
||||
action: 'sign_in',
|
||||
properties: {
|
||||
category: 'account',
|
||||
method: signInMethodRef.current,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Link from 'next/link'
|
||||
import { Button, cn } from 'ui'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
|
||||
interface Props {
|
||||
@@ -30,7 +29,7 @@ const CTABanner = ({ darkerBg, className }: Props) => {
|
||||
href="https://supabase.com/dashboard"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
|
||||
action: 'start_project_button_clicked',
|
||||
properties: { buttonLocation: 'CTA Banner' },
|
||||
})
|
||||
}
|
||||
@@ -43,7 +42,7 @@ const CTABanner = ({ darkerBg, className }: Props) => {
|
||||
href="/contact/sales"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED,
|
||||
action: 'request_demo_button_clicked',
|
||||
properties: { buttonLocation: 'CTA Banner' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import Panel from '~/components/Panel'
|
||||
import customerStories from '~/data/CustomerStories'
|
||||
import type { CustomerStoryType } from '~/data/CustomerStories'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
const CustomersSliderMobile = dynamic(() => import('./CustomersSliderMobile'))
|
||||
const CutomsersSliderDesktop = dynamic(() => import('./CutomsersSliderDesktop'))
|
||||
@@ -112,7 +111,7 @@ export const CompositionCol: React.FC<CompositionColProps> = ({ column, classNam
|
||||
className="col-span-12 md:col-span-4 w-full md:w-[450px] h-full"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED,
|
||||
action: 'homepage_customer_story_card_clicked',
|
||||
properties: { customer: customer.organization, cardType: 'expanded' },
|
||||
})
|
||||
}
|
||||
@@ -126,7 +125,7 @@ export const CompositionCol: React.FC<CompositionColProps> = ({ column, classNam
|
||||
className="col-span-12 md:col-span-4 w-full h-full flex-grow"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED,
|
||||
action: 'homepage_customer_story_card_clicked',
|
||||
properties: { customer: customer.organization, cardType: 'narrow' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import { useBreakpoint } from 'common'
|
||||
import { Button } from 'ui'
|
||||
import Panel from './Panel'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
function ExampleCard(props: any) {
|
||||
const isXs = useBreakpoint()
|
||||
@@ -27,7 +26,7 @@ function ExampleCard(props: any) {
|
||||
onClick={() => {
|
||||
if (props.inHomepage)
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_PROJECT_TEMPLATE_CARD_CLICKED,
|
||||
action: 'homepage_project_template_card_clicked',
|
||||
properties: { templateTitle: props.title },
|
||||
})
|
||||
}}
|
||||
|
||||
@@ -3,7 +3,6 @@ import Link from 'next/link'
|
||||
import { CircleAlert } from 'lucide-react'
|
||||
import { Button, cn, Input_Shadcn_, Label_Shadcn_, Separator, TextArea_Shadcn_ } from 'ui'
|
||||
import { Alert } from 'ui/src/components/shadcn/ui/alert'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
|
||||
interface FormData {
|
||||
@@ -267,7 +266,7 @@ const RequestADemoForm: FC<Props> = ({ className }) => {
|
||||
loading={isSubmitting}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED,
|
||||
action: 'request_demo_button_clicked',
|
||||
properties: { buttonLocation: 'Enterprise Request Demo Form' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import Link from 'next/link'
|
||||
|
||||
import { Button } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
|
||||
const Hero = () => {
|
||||
@@ -34,7 +33,7 @@ const Hero = () => {
|
||||
as="https://supabase.com/dashboard"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
|
||||
action: 'start_project_button_clicked',
|
||||
properties: { buttonLocation: 'Homepage Hero' },
|
||||
})
|
||||
}
|
||||
@@ -48,7 +47,7 @@ const Hero = () => {
|
||||
as="/contact/sales"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED,
|
||||
action: 'request_demo_button_clicked',
|
||||
properties: { buttonLocation: 'Homepage Hero' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import Link from 'next/link'
|
||||
import { useState } from 'react'
|
||||
import { cn } from 'ui'
|
||||
import { EASE_IN, EASE_OUT } from '~/lib/animations'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import SectionContainer from '../Layouts/SectionContainer'
|
||||
|
||||
@@ -127,7 +126,7 @@ const HeroFrameworks = ({ className }: { className?: string }) => {
|
||||
className="transition-opacity group"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_FRAMEWORK_QUICKSTART_CLICKED,
|
||||
action: 'homepage_framework_quickstart_clicked',
|
||||
properties: { frameworkName: framework.name },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import React from 'react'
|
||||
import { Button } from 'ui'
|
||||
import { githubStars } from '~/.contentlayer/generated/staticContent/_index.json' with { type: 'json' }
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
const GitHubButton = () => {
|
||||
const kFormatter = (num: number) => {
|
||||
@@ -28,9 +27,7 @@ const GitHubButton = () => {
|
||||
className="hidden group lg:flex text-foreground-light hover:text-foreground"
|
||||
type="text"
|
||||
asChild
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({ action: TelemetryActions.HOMEPAGE_GITHUB_BUTTON_CLICKED })
|
||||
}
|
||||
onClick={() => sendTelemetryEvent({ action: 'homepage_github_button_clicked' })}
|
||||
>
|
||||
<a type={undefined} href="https://github.com/supabase/supabase" target="_blank">
|
||||
<span className="flex items-center gap-1">
|
||||
|
||||
@@ -15,7 +15,6 @@ import { ChevronRight } from 'lucide-react'
|
||||
import ProductModulesData from '~/data/ProductModules'
|
||||
import { jobsCount } from '~/.contentlayer/generated/staticContent/_index.json' with { type: 'json' }
|
||||
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
|
||||
interface Props {
|
||||
@@ -250,7 +249,7 @@ const MobileMenu = ({ open, setOpen, menu }: Props) => {
|
||||
legacyBehavior
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.SIGN_IN_BUTTON_CLICKED,
|
||||
action: 'sign_in_button_clicked',
|
||||
properties: { buttonLocation: 'Mobile Nav' },
|
||||
})
|
||||
}
|
||||
@@ -267,7 +266,7 @@ const MobileMenu = ({ open, setOpen, menu }: Props) => {
|
||||
legacyBehavior
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
|
||||
action: 'start_project_button_clicked',
|
||||
properties: { buttonLocation: 'Mobile Nav' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import MenuItem from './MenuItem'
|
||||
import MobileMenu from './MobileMenu'
|
||||
import RightClickBrandLogo from './RightClickBrandLogo'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
interface Props {
|
||||
hideNavbar: boolean
|
||||
@@ -141,7 +140,7 @@ const Nav = ({ hideNavbar, stickyNavbar = true }: Props) => {
|
||||
href="https://supabase.com/dashboard"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.SIGN_IN_BUTTON_CLICKED,
|
||||
action: 'sign_in_button_clicked',
|
||||
properties: { buttonLocation: 'Header Nav' },
|
||||
})
|
||||
}
|
||||
@@ -154,7 +153,7 @@ const Nav = ({ hideNavbar, stickyNavbar = true }: Props) => {
|
||||
href="https://supabase.com/dashboard"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
|
||||
action: 'start_project_button_clicked',
|
||||
properties: { buttonLocation: 'Header Nav' },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import Link from 'next/link'
|
||||
|
||||
import Panel from '~/components/Panel'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
const RepoCard = ({ repo, activeTab, index }: { repo: any; activeTab: number; index: number }) => {
|
||||
const sendTelemetryEvent = useSendTelemetryEvent()
|
||||
@@ -22,7 +21,7 @@ const RepoCard = ({ repo, activeTab, index }: { repo: any; activeTab: number; in
|
||||
className="h-full"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.OPEN_SOURCE_REPO_CARD_CLICKED,
|
||||
action: 'open_source_repo_card_clicked',
|
||||
properties: { repoName: repo.name },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import { Button, Select, cn } from 'ui'
|
||||
import { PricingTableRowDesktop, PricingTableRowMobile } from '~/components/Pricing/PricingTableRow'
|
||||
import Solutions from '~/data/MainProducts'
|
||||
import { Organization } from '~/data/organizations'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import UpgradePlan from './UpgradePlan'
|
||||
|
||||
@@ -57,7 +56,7 @@ const MobileHeader = ({
|
||||
organizations={organizations}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'www_pricing_plan_cta_clicked',
|
||||
properties: {
|
||||
plan,
|
||||
showUpgradeText: true,
|
||||
@@ -74,7 +73,7 @@ const MobileHeader = ({
|
||||
href={selectedPlan.href}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'www_pricing_plan_cta_clicked',
|
||||
properties: {
|
||||
plan,
|
||||
showUpgradeText: false,
|
||||
@@ -403,7 +402,7 @@ const PricingComparisonTable = ({
|
||||
organizations={organizations}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'www_pricing_plan_cta_clicked',
|
||||
properties: {
|
||||
plan: plan.name,
|
||||
showUpgradeText: true,
|
||||
@@ -425,7 +424,7 @@ const PricingComparisonTable = ({
|
||||
href={plan.href}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'www_pricing_plan_cta_clicked',
|
||||
properties: {
|
||||
plan: plan.name,
|
||||
showUpgradeText: false,
|
||||
|
||||
@@ -6,7 +6,6 @@ import { Button, cn } from 'ui'
|
||||
import { Organization } from '~/data/organizations'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import UpgradePlan from './UpgradePlan'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
interface PricingPlansProps {
|
||||
organizations?: Organization[]
|
||||
@@ -29,7 +28,7 @@ const PricingPlans = ({ organizations, hasExistingOrganizations }: PricingPlansP
|
||||
|
||||
const sendPricingEvent = () => {
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED,
|
||||
action: 'www_pricing_plan_cta_clicked',
|
||||
properties: {
|
||||
plan: plan.name,
|
||||
showUpgradeText: isUpgradablePlan && hasExistingOrganizations ? true : false,
|
||||
|
||||
@@ -11,7 +11,6 @@ import StorageVisual from './StorageVisual'
|
||||
import VectorVisual from './VectorVisual'
|
||||
|
||||
import { PRODUCT_MODULES_SHORTNAMES, PRODUCT_SHORTNAMES } from 'shared-data/products'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
|
||||
import type { ProductType } from '~/data/MainProducts'
|
||||
@@ -27,7 +26,7 @@ const Products: React.FC<Props> = (props) => {
|
||||
product: PRODUCT_SHORTNAMES | PRODUCT_MODULES_SHORTNAMES | 'data-api'
|
||||
) => {
|
||||
return await _sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_PRODUCT_CARD_CLICKED,
|
||||
action: 'homepage_product_card_clicked',
|
||||
properties: { product },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import Link from 'next/link'
|
||||
import { Button } from 'ui'
|
||||
import ProductIcon from '../ProductIcon'
|
||||
import { BookOpen } from 'lucide-react'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
|
||||
type subheader = string
|
||||
@@ -56,7 +55,7 @@ const ProductHeader = (props: Types) => {
|
||||
as="https://supabase.com/dashboard"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.START_PROJECT_BUTTON_CLICKED,
|
||||
action: 'start_project_button_clicked',
|
||||
properties: { buttonLocation: 'Product Page Header - ' + props.title },
|
||||
})
|
||||
}
|
||||
@@ -72,7 +71,7 @@ const ProductHeader = (props: Types) => {
|
||||
className="ml-2"
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.SEE_DOCUMENTATION_BUTTON_CLICKED,
|
||||
action: 'see_documentation_button_clicked',
|
||||
properties: {
|
||||
buttonLocation: 'Product Page Header - ' + props.title,
|
||||
},
|
||||
|
||||
@@ -7,7 +7,6 @@ import TwitterSocialProofMobile from './Sections/TwitterSocialProofMobile'
|
||||
|
||||
import Tweets from '~/data/tweets/Tweets.json'
|
||||
import { useSendTelemetryEvent } from '~/lib/telemetry'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
|
||||
const TwitterSocialSection = () => {
|
||||
const tweets = Tweets.slice(0, 18)
|
||||
@@ -28,7 +27,7 @@ const TwitterSocialSection = () => {
|
||||
tabIndex={-1}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_GITHUB_DISCUSSIONS_BUTTON_CLICKED,
|
||||
action: 'homepage_github_discussions_button_clicked',
|
||||
})
|
||||
}
|
||||
>
|
||||
@@ -42,7 +41,7 @@ const TwitterSocialSection = () => {
|
||||
tabIndex={-1}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.HOMEPAGE_DISCORD_BUTTON_CLICKED,
|
||||
action: 'homepage_discord_button_clicked',
|
||||
})
|
||||
}
|
||||
>
|
||||
|
||||
@@ -14,7 +14,6 @@ import NextImage from 'next/image'
|
||||
import Link from 'next/link'
|
||||
|
||||
import authors from 'lib/authors.json'
|
||||
import { TelemetryActions } from 'common/telemetry-constants'
|
||||
import { isNotNullOrUndefined } from '~/lib/helpers'
|
||||
import mdxComponents from '~/lib/mdx/mdxComponents'
|
||||
import { mdxSerialize } from '~/lib/mdx/mdxSerialize'
|
||||
@@ -287,7 +286,7 @@ const EventPage = ({ event }: InferGetStaticPropsType<typeof getStaticProps>) =>
|
||||
target={event.main_cta?.target ? event.main_cta?.target : undefined}
|
||||
onClick={() =>
|
||||
sendTelemetryEvent({
|
||||
action: TelemetryActions.EVENT_PAGE_CTA_CLICKED,
|
||||
action: 'www_pricing_plan_cta_clicked',
|
||||
properties: { eventTitle: event.title },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,79 +1,13 @@
|
||||
// These events are tracked only when users opt in.
|
||||
// Standardization as per document: https://www.notion.so/supabase/Event-tracking-standardization-1195004b775f80f98ee3fa9e70cf4d05
|
||||
|
||||
export enum TelemetryActions {
|
||||
SIGN_UP = 'sign_up',
|
||||
SIGN_IN = 'sign_in',
|
||||
|
||||
ASSISTANT_PROMPT_SUBMITTED = 'assistant_prompt_submitted',
|
||||
ASSISTANT_DEBUG_SUBMITTED = 'assistant_debug_submitted',
|
||||
ASSISTANT_SUGGESTION_RUN_QUERY_CLICKED = 'assistant_suggestion_run_query_clicked',
|
||||
ASSISTANT_SQL_DIFF_HANDLER_EVALUATED = 'assistant_sql_diff_handler_evaluated',
|
||||
ASSISTANT_EDIT_IN_SQL_EDITOR_CLICKED = 'assistant_edit_in_sql_editor_clicked',
|
||||
|
||||
CONNECTION_STRING_COPIED = 'connection_string_copied',
|
||||
CUSTOM_REPORT_ADD_SQL_BLOCK_CLICKED = 'custom-report-add-sql-block-clicked',
|
||||
CUSTOM_REPORT_ASSISTANT_SQL_BLOCK_ADDED = 'custom-report-assistant-sql-block-added',
|
||||
|
||||
CRON_JOB_CREATED = 'cron_job_created',
|
||||
CRON_JOB_UPDATED = 'cron_job_updated',
|
||||
CRON_JOB_DELETED = 'cron_job_deleted',
|
||||
CRON_JOB_DELETE_CLICKED = 'cron_job_delete_clicked',
|
||||
CRON_JOB_UPDATE_CLICKED = 'cron_job_update_clicked',
|
||||
CRON_JOB_CREATE_CLICKED = 'cron_job_create_clicked',
|
||||
CRON_JOB_HISTORY_CLICKED = 'cron_job_history_clicked',
|
||||
|
||||
FEATURE_PREVIEWS_CLICKED = 'feature_previews_clicked',
|
||||
FEATURE_PREVIEW_ENABLED = 'feature_preview_enabled',
|
||||
FEATURE_PREVIEW_DISABLED = 'feature_preview_disabled',
|
||||
|
||||
PROJECT_CREATION_SIMPLE_VERSION_SUBMITTED = 'project_creation_simple_version_submitted',
|
||||
PROJECT_CREATION_INITIAL_STEP_PROMPT_INTENDED = 'project_creation_initial_step_prompt_intended',
|
||||
PROJECT_CREATION_INITIAL_STEP_SUBMITTED = 'project_creation_initial_step_submitted',
|
||||
PROJECT_CREATION_SECOND_STEP_PROMPT_INTENDED = 'project_creation_second_step_prompt_intended',
|
||||
PROJECT_CREATION_SECOND_STEP_SUBMITTED = 'project_creation_second_step_submitted',
|
||||
|
||||
REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED = 'realtime_inspector_listen_channel_clicked',
|
||||
REALTIME_INSPECTOR_BROADCAST_SENT = 'realtime_inspector_broadcast_sent',
|
||||
REALTIME_INSPECTOR_MESSAGE_CLICKED = 'realtime_inspector_message_clicked',
|
||||
REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED = 'realtime_inspector_copy_message_clicked',
|
||||
REALTIME_INSPECTOR_FILTERS_APPLIED = 'realtime_inspector_filters_applied',
|
||||
REALTIME_INSPECTOR_DATABASE_ROLE_UPDATED = 'realtime_inspector_database_role_updated',
|
||||
REALTIME_TOGGLE_TABLE_CLICKED = 'realtime_toggle_table_clicked',
|
||||
|
||||
SQL_EDITOR_QUICKSTART_CLICKED = 'sql_editor_quickstart_clicked',
|
||||
SQL_EDITOR_TEMPLATE_CLICKED = 'sql_editor_template_clicked',
|
||||
SQL_EDITOR_RESULT_DOWNLOAD_CSV_CLICKED = 'sql_editor_result_download_csv_clicked',
|
||||
SQL_EDITOR_RESULT_COPY_MARKDOWN_CLICKED = 'sql_editor_result_copy_markdown_clicked',
|
||||
SQL_EDITOR_RESULT_COPY_JSON_CLICKED = 'sql_editor_result_copy_json_clicked',
|
||||
|
||||
DOCS_FEEDBACK_CLICKED = 'docs_feedback_clicked',
|
||||
|
||||
HOMEPAGE_HERO_REQUEST_DEMO_CLICKED = 'homepage_hero_request_demo_clicked',
|
||||
HOMEPAGE_FRAMEWORK_QUICKSTART_CLICKED = 'homepage_framework_quickstart_clicked',
|
||||
HOMEPAGE_PRODUCT_CARD_CLICKED = 'homepage_product_card_clicked',
|
||||
WWW_PRICING_PLAN_CTA_CLICKED = 'www_pricing_plan_cta_clicked',
|
||||
EVENT_PAGE_CTA_CLICKED = 'event_page_cta_clicked',
|
||||
HOMEPAGE_GITHUB_BUTTON_CLICKED = 'homepage_github_button_clicked',
|
||||
HOMEPAGE_GITHUB_DISCUSSIONS_BUTTON_CLICKED = 'homepage_github_discussions_button_clicked',
|
||||
HOMEPAGE_DISCORD_BUTTON_CLICKED = 'homepage_discord_button_clicked',
|
||||
HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED = 'homepage_customer_story_card_clicked',
|
||||
HOMEPAGE_PROJECT_TEMPLATE_CARD_CLICKED = 'homepage_project_template_card_clicked',
|
||||
OPEN_SOURCE_REPO_CARD_CLICKED = 'open_source_repo_card_clicked',
|
||||
START_PROJECT_BUTTON_CLICKED = 'start_project_button_clicked',
|
||||
SEE_DOCUMENTATION_BUTTON_CLICKED = 'see_documentation_button_clicked',
|
||||
REQUEST_DEMO_BUTTON_CLICKED = 'request_demo_button_clicked',
|
||||
SIGN_IN_BUTTON_CLICKED = 'sign_in_button_clicked',
|
||||
|
||||
HELP_BUTTON_CLICKED = 'help_button_clicked',
|
||||
SEND_FEEDBACK_BUTTON_CLICKED = 'send_feedback_button_clicked',
|
||||
EXAMPLE_PROJECT_CARD_CLICKED = 'example_project_card_clicked',
|
||||
IMPORT_DATA_BUTTON_CLICKED = 'import_data_button_clicked',
|
||||
IMPORT_DATA_ADDED = 'import_data_added',
|
||||
SQL_EDITOR_QUERY_RUN_BUTTON_CLICKED = 'sql_editor_query_run_button_clicked',
|
||||
STUDIO_PRICING_PLAN_CTA_CLICKED = 'studio_pricing_plan_cta_clicked',
|
||||
STUDIO_PRICING_SIDE_PANEL_OPENED = 'studio_pricing_side_panel_opened',
|
||||
}
|
||||
/**
|
||||
* Consolidated event definitions coming from the frontend, including studio, www, and docs.
|
||||
*
|
||||
* Note that events are not emitted for users that have opted out of telemetry.
|
||||
*
|
||||
* Original definitions located at:
|
||||
* https://github.com/supabase/supabase/blob/master/packages/common/telemetry-constants.ts
|
||||
*
|
||||
* @module telemetry-frontend
|
||||
*/
|
||||
|
||||
/**
|
||||
* Triggered when a user signs up. When signing up with Email and Password, this is only triggered once user confirms their email.
|
||||
@@ -83,7 +17,7 @@ export enum TelemetryActions {
|
||||
* @page /sign-up
|
||||
*/
|
||||
export interface SignUpEvent {
|
||||
action: TelemetryActions.SIGN_UP
|
||||
action: 'sign_up'
|
||||
properties: {
|
||||
category: 'conversion'
|
||||
}
|
||||
@@ -100,7 +34,7 @@ export interface SignUpEvent {
|
||||
* @page /sign-in-mfa
|
||||
*/
|
||||
export interface SignInEvent {
|
||||
action: TelemetryActions.SIGN_IN
|
||||
action: 'sign_in'
|
||||
properties: {
|
||||
category: 'account'
|
||||
/**
|
||||
@@ -117,7 +51,7 @@ export interface SignInEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface ConnectionStringCopiedEvent {
|
||||
action: TelemetryActions.CONNECTION_STRING_COPIED
|
||||
action: 'connection_string_copied'
|
||||
properties: {
|
||||
/**
|
||||
* Method selected by user, e.g. URI, PSQL, SQLAlchemy, etc.
|
||||
@@ -146,7 +80,7 @@ export interface ConnectionStringCopiedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs?dialog-shown=true
|
||||
*/
|
||||
export interface CronJobCreatedEvent {
|
||||
action: TelemetryActions.CRON_JOB_CREATED
|
||||
action: 'cron_job_created'
|
||||
properties: {
|
||||
/**
|
||||
* What the cron job executes, e.g. sql_function or sql_snippet
|
||||
@@ -171,7 +105,7 @@ export interface CronJobCreatedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs?dialog-shown=true
|
||||
*/
|
||||
export interface CronJobUpdatedEvent {
|
||||
action: TelemetryActions.CRON_JOB_UPDATED
|
||||
action: 'cron_job_updated'
|
||||
properties: {
|
||||
/**
|
||||
* What the cron job executes, e.g. sql_function or sql_snippet
|
||||
@@ -196,7 +130,7 @@ export interface CronJobUpdatedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs
|
||||
*/
|
||||
export interface CronJobDeletedEvent {
|
||||
action: TelemetryActions.CRON_JOB_DELETED
|
||||
action: 'cron_job_deleted'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -211,7 +145,7 @@ export interface CronJobDeletedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs
|
||||
*/
|
||||
export interface CronJobCreateClickedEvent {
|
||||
action: TelemetryActions.CRON_JOB_CREATE_CLICKED
|
||||
action: 'cron_job_create_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -226,7 +160,7 @@ export interface CronJobCreateClickedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs
|
||||
*/
|
||||
export interface CronJobUpdateClickedEvent {
|
||||
action: TelemetryActions.CRON_JOB_UPDATE_CLICKED
|
||||
action: 'cron_job_update_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -241,7 +175,7 @@ export interface CronJobUpdateClickedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs
|
||||
*/
|
||||
export interface CronJobDeleteClickedEvent {
|
||||
action: TelemetryActions.CRON_JOB_DELETE_CLICKED
|
||||
action: 'cron_job_delete_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -256,7 +190,7 @@ export interface CronJobDeleteClickedEvent {
|
||||
* @page /dashboard/project/{ref}/integrations/cron/jobs
|
||||
*/
|
||||
export interface CronJobHistoryClickedEvent {
|
||||
action: TelemetryActions.CRON_JOB_HISTORY_CLICKED
|
||||
action: 'cron_job_history_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -272,7 +206,7 @@ export interface CronJobHistoryClickedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface FeaturePreviewsClickedEvent {
|
||||
action: TelemetryActions.FEATURE_PREVIEWS_CLICKED
|
||||
action: 'feature_previews_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -288,7 +222,7 @@ export interface FeaturePreviewsClickedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface FeaturePreviewEnabledEvent {
|
||||
action: TelemetryActions.FEATURE_PREVIEW_ENABLED
|
||||
action: 'feature_preview_enabled'
|
||||
properties: {
|
||||
/**
|
||||
* Feature key of the preview that was enabled. e.g. supabase-ui-api-side-panel
|
||||
@@ -310,7 +244,7 @@ export interface FeaturePreviewEnabledEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface FeaturePreviewDisabledEvent {
|
||||
action: TelemetryActions.FEATURE_PREVIEW_DISABLED
|
||||
action: 'feature_preview_disabled'
|
||||
properties: {
|
||||
/**
|
||||
* Feature key of the preview that was disabled. e.g. supabase-ui-api-side-panel
|
||||
@@ -331,7 +265,7 @@ export interface FeaturePreviewDisabledEvent {
|
||||
* @page new/{slug}
|
||||
*/
|
||||
export interface ProjectCreationSimpleVersionSubmittedEvent {
|
||||
action: TelemetryActions.PROJECT_CREATION_SIMPLE_VERSION_SUBMITTED
|
||||
action: 'project_creation_simple_version_submitted'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -343,7 +277,7 @@ export interface ProjectCreationSimpleVersionSubmittedEvent {
|
||||
* @page new/v2/{slug}
|
||||
*/
|
||||
export interface ProjectCreationInitialStepPromptIntendedEvent {
|
||||
action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_PROMPT_INTENDED
|
||||
action: 'project_creation_initial_step_prompt_intended'
|
||||
/**
|
||||
* Is this a new prompt (e.g. when following the start blank route where no prompt has been filled in the InitialStep). In other
|
||||
* words, was this not just an edit. In this case, it should always be true.
|
||||
@@ -361,7 +295,7 @@ export interface ProjectCreationInitialStepPromptIntendedEvent {
|
||||
* @page new/v2/{slug}
|
||||
*/
|
||||
export interface ProjectCreationInitialStepSubmittedEvent {
|
||||
action: TelemetryActions.PROJECT_CREATION_INITIAL_STEP_SUBMITTED
|
||||
action: 'project_creation_initial_step_submitted'
|
||||
properties: {
|
||||
/**
|
||||
* Records what the user selected in the first step of project creation.
|
||||
@@ -378,7 +312,7 @@ export interface ProjectCreationInitialStepSubmittedEvent {
|
||||
* @page new/v2/{slug}
|
||||
*/
|
||||
export interface ProjectCreationSecondStepPromptIntendedEvent {
|
||||
action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_PROMPT_INTENDED
|
||||
action: 'project_creation_second_step_prompt_intended'
|
||||
properties: {
|
||||
/**
|
||||
* Is this a new prompt (e.g. when following the start blank route where no prompt has been filled in the InitialStep). In other
|
||||
@@ -397,7 +331,7 @@ export interface ProjectCreationSecondStepPromptIntendedEvent {
|
||||
* @page new/v2/{slug}
|
||||
*/
|
||||
export interface ProjectCreationSecondStepSubmittedEvent {
|
||||
action: TelemetryActions.PROJECT_CREATION_SECOND_STEP_SUBMITTED
|
||||
action: 'project_creation_second_step_submitted'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -408,7 +342,7 @@ export interface ProjectCreationSecondStepSubmittedEvent {
|
||||
* @page /dashboard/project/{ref}/realtime/inspector
|
||||
*/
|
||||
export interface RealtimeInspectorListenChannelClickedEvent {
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED
|
||||
action: 'realtime_inspector_listen_channel_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -423,7 +357,7 @@ export interface RealtimeInspectorListenChannelClickedEvent {
|
||||
* @page /dashboard/project/{ref}/realtime/inspector
|
||||
*/
|
||||
export interface RealtimeInspectorBroadcastSentEvent {
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_BROADCAST_SENT
|
||||
action: 'realtime_inspector_broadcast_sent'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -438,7 +372,7 @@ export interface RealtimeInspectorBroadcastSentEvent {
|
||||
* @page /dashboard/project/{ref}/realtime/inspector
|
||||
*/
|
||||
export interface RealtimeInspectorMessageClickedEvent {
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_MESSAGE_CLICKED
|
||||
action: 'realtime_inspector_message_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -453,7 +387,7 @@ export interface RealtimeInspectorMessageClickedEvent {
|
||||
* @page /dashboard/project/{ref}/realtime/inspector
|
||||
*/
|
||||
export interface RealtimeInspectorCopyMessageClickedEvent {
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED
|
||||
action: 'realtime_inspector_copy_message_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -468,7 +402,7 @@ export interface RealtimeInspectorCopyMessageClickedEvent {
|
||||
* @page /dashboard/project/{ref}/realtime/inspector
|
||||
*/
|
||||
export interface RealtimeInspectorFiltersAppliedEvent {
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_FILTERS_APPLIED
|
||||
action: 'realtime_inspector_filters_applied'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -483,7 +417,7 @@ export interface RealtimeInspectorFiltersAppliedEvent {
|
||||
* @page /dashboard/project/{ref}/realtime/inspector
|
||||
*/
|
||||
export interface RealtimeInspectorDatabaseRoleUpdatedEvent {
|
||||
action: TelemetryActions.REALTIME_INSPECTOR_DATABASE_ROLE_UPDATED
|
||||
action: 'realtime_inspector_database_role_updated'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -498,7 +432,7 @@ export interface RealtimeInspectorDatabaseRoleUpdatedEvent {
|
||||
* @page /dashboard/project/{ref}/editor
|
||||
*/
|
||||
export interface RealtimeToggleTableClickedEvent {
|
||||
action: TelemetryActions.REALTIME_TOGGLE_TABLE_CLICKED
|
||||
action: 'realtime_toggle_table_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The state of the toggle.
|
||||
@@ -523,7 +457,7 @@ export interface RealtimeToggleTableClickedEvent {
|
||||
* @page /dashboard/project/{ref}/sql
|
||||
*/
|
||||
export interface SqlEditorQuickstartClickedEvent {
|
||||
action: TelemetryActions.SQL_EDITOR_QUICKSTART_CLICKED
|
||||
action: 'sql_editor_quickstart_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The title of the quickstart card clicked.
|
||||
@@ -544,7 +478,7 @@ export interface SqlEditorQuickstartClickedEvent {
|
||||
* @page /dashboard/project/{ref}/sql
|
||||
*/
|
||||
export interface SqlEditorTemplateClickedEvent {
|
||||
action: TelemetryActions.SQL_EDITOR_TEMPLATE_CLICKED
|
||||
action: 'sql_editor_template_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The name of the template card clicked.
|
||||
@@ -565,7 +499,7 @@ export interface SqlEditorTemplateClickedEvent {
|
||||
* @page /dashboard/project/{ref}/sql
|
||||
*/
|
||||
export interface SqlEditorResultDownloadCsvClickedEvent {
|
||||
action: TelemetryActions.SQL_EDITOR_RESULT_DOWNLOAD_CSV_CLICKED
|
||||
action: 'sql_editor_result_download_csv_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -580,7 +514,7 @@ export interface SqlEditorResultDownloadCsvClickedEvent {
|
||||
* @page /dashboard/project/{ref}/sql
|
||||
*/
|
||||
export interface SqlEditorResultCopyMarkdownClickedEvent {
|
||||
action: TelemetryActions.SQL_EDITOR_RESULT_COPY_MARKDOWN_CLICKED
|
||||
action: 'sql_editor_result_copy_markdown_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -595,7 +529,7 @@ export interface SqlEditorResultCopyMarkdownClickedEvent {
|
||||
* @page /dashboard/project/{ref}/sql
|
||||
*/
|
||||
export interface SqlEditorResultCopyJsonClickedEvent {
|
||||
action: TelemetryActions.SQL_EDITOR_RESULT_COPY_JSON_CLICKED
|
||||
action: 'sql_editor_result_copy_json_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -609,7 +543,7 @@ export interface SqlEditorResultCopyJsonClickedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface AssistantPromptSubmittedEvent {
|
||||
action: TelemetryActions.ASSISTANT_PROMPT_SUBMITTED
|
||||
action: 'assistant_prompt_submitted'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -623,7 +557,7 @@ export interface AssistantPromptSubmittedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface AssistantDebugSubmittedEvent {
|
||||
action: TelemetryActions.ASSISTANT_DEBUG_SUBMITTED
|
||||
action: 'assistant_debug_submitted'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -637,7 +571,7 @@ export interface AssistantDebugSubmittedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface AssistantSuggestionRunQueryClickedEvent {
|
||||
action: TelemetryActions.ASSISTANT_SUGGESTION_RUN_QUERY_CLICKED
|
||||
action: 'assistant_suggestion_run_query_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The type of suggestion that was run by the user. Mutate or Select query types only.
|
||||
@@ -658,7 +592,7 @@ export interface AssistantSuggestionRunQueryClickedEvent {
|
||||
* @page /dashboard/project/{ref}/sql
|
||||
*/
|
||||
export interface AssistantSqlDiffHandlerEvaluatedEvent {
|
||||
action: TelemetryActions.ASSISTANT_SQL_DIFF_HANDLER_EVALUATED
|
||||
action: 'assistant_sql_diff_handler_evaluated'
|
||||
properties: {
|
||||
/**
|
||||
* Whether the user accepted or rejected the changes.
|
||||
@@ -678,7 +612,7 @@ export interface AssistantSqlDiffHandlerEvaluatedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface AssistantEditInSqlEditorClickedEvent {
|
||||
action: TelemetryActions.ASSISTANT_EDIT_IN_SQL_EDITOR_CLICKED
|
||||
action: 'assistant_edit_in_sql_editor_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* Whether the user is in the SQL editor page or in a new snippet.
|
||||
@@ -700,7 +634,7 @@ export interface AssistantEditInSqlEditorClickedEvent {
|
||||
* @page /dashboard/project/{ref}/reports/{id}
|
||||
*/
|
||||
export interface CustomReportAddSQLBlockClicked {
|
||||
action: TelemetryActions.CUSTOM_REPORT_ADD_SQL_BLOCK_CLICKED
|
||||
action: 'custom_report_add_sql_block_clicked'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -711,7 +645,7 @@ export interface CustomReportAddSQLBlockClicked {
|
||||
* @page /dashboard/project/{ref}/reports/{id}
|
||||
*/
|
||||
export interface CustomReportAssistantSQLBlockAdded {
|
||||
action: TelemetryActions.CUSTOM_REPORT_ASSISTANT_SQL_BLOCK_ADDED
|
||||
action: 'custom_report_assistant_sql_block_added'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -721,7 +655,7 @@ export interface CustomReportAssistantSQLBlockAdded {
|
||||
* @source docs
|
||||
*/
|
||||
export interface DocsFeedbackClickedEvent {
|
||||
action: TelemetryActions.DOCS_FEEDBACK_CLICKED
|
||||
action: 'docs_feedback_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* 'yes' means clicking on the tick button, 'no' means clicking on the cross button.
|
||||
@@ -730,17 +664,6 @@ export interface DocsFeedbackClickedEvent {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* User clicked the "Request a Demo" button in the homepage hero section.
|
||||
*
|
||||
* @group Events
|
||||
* @source www
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageHeroRequestDemoClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_HERO_REQUEST_DEMO_CLICKED
|
||||
}
|
||||
|
||||
/**
|
||||
* User clicked the framework quickstart card on the homepage, leading to the specific framework documentation.
|
||||
*
|
||||
@@ -749,7 +672,7 @@ export interface HomepageHeroRequestDemoClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageFrameworkQuickstartClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_FRAMEWORK_QUICKSTART_CLICKED
|
||||
action: 'homepage_framework_quickstart_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The name of the framework quickstart card clicked.
|
||||
@@ -766,7 +689,7 @@ export interface HomepageFrameworkQuickstartClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageProductCardClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_PRODUCT_CARD_CLICKED
|
||||
action: 'homepage_product_card_clicked'
|
||||
properties: {
|
||||
product: string
|
||||
}
|
||||
@@ -780,7 +703,7 @@ export interface HomepageProductCardClickedEvent {
|
||||
* @page /pricing
|
||||
*/
|
||||
export interface WwwPricingPlanCtaClickedEvent {
|
||||
action: TelemetryActions.WWW_PRICING_PLAN_CTA_CLICKED
|
||||
action: 'www_pricing_plan_cta_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The plan type that was clicked.
|
||||
@@ -808,7 +731,7 @@ export interface WwwPricingPlanCtaClickedEvent {
|
||||
* @page /events/*
|
||||
*/
|
||||
export interface EventPageCtaClickedEvent {
|
||||
action: TelemetryActions.EVENT_PAGE_CTA_CLICKED
|
||||
action: 'www_pricing_plan_cta_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The title of the event clicked.
|
||||
@@ -825,7 +748,7 @@ export interface EventPageCtaClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageGitHubButtonClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_GITHUB_BUTTON_CLICKED
|
||||
action: 'homepage_github_button_clicked'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -836,7 +759,7 @@ export interface HomepageGitHubButtonClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageGitHubDiscussionsButtonClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_GITHUB_DISCUSSIONS_BUTTON_CLICKED
|
||||
action: 'homepage_github_discussions_button_clicked'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -847,7 +770,7 @@ export interface HomepageGitHubDiscussionsButtonClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageDiscordButtonClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_DISCORD_BUTTON_CLICKED
|
||||
action: 'homepage_discord_button_clicked'
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -858,7 +781,7 @@ export interface HomepageDiscordButtonClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageCustomerStoryCardClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_CUSTOMER_STORY_CARD_CLICKED
|
||||
action: 'homepage_customer_story_card_clicked'
|
||||
properties: {
|
||||
customer?: string
|
||||
/**
|
||||
@@ -876,7 +799,7 @@ export interface HomepageCustomerStoryCardClickedEvent {
|
||||
* @page /
|
||||
*/
|
||||
export interface HomepageProjectTemplateCardClickedEvent {
|
||||
action: TelemetryActions.HOMEPAGE_PROJECT_TEMPLATE_CARD_CLICKED
|
||||
action: 'homepage_project_template_card_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The title of the project template card clicked.
|
||||
@@ -893,7 +816,7 @@ export interface HomepageProjectTemplateCardClickedEvent {
|
||||
* @page /open-source
|
||||
*/
|
||||
export interface OpenSourceRepoCardClickedEvent {
|
||||
action: TelemetryActions.OPEN_SOURCE_REPO_CARD_CLICKED
|
||||
action: 'open_source_repo_card_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The name of the open source repository clicked.
|
||||
@@ -909,7 +832,7 @@ export interface OpenSourceRepoCardClickedEvent {
|
||||
* @source www
|
||||
*/
|
||||
export interface StartProjectButtonClickedEvent {
|
||||
action: TelemetryActions.START_PROJECT_BUTTON_CLICKED
|
||||
action: 'start_project_button_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The source of the button click, e.g. homepage hero, product page header.
|
||||
@@ -925,7 +848,7 @@ export interface StartProjectButtonClickedEvent {
|
||||
* @source www
|
||||
*/
|
||||
export interface SeeDocumentationButtonClickedEvent {
|
||||
action: TelemetryActions.SEE_DOCUMENTATION_BUTTON_CLICKED
|
||||
action: 'see_documentation_button_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The source of the button click, e.g. homepage hero, product page header - product name.
|
||||
@@ -941,7 +864,7 @@ export interface SeeDocumentationButtonClickedEvent {
|
||||
* @source www
|
||||
*/
|
||||
export interface RequestDemoButtonClickedEvent {
|
||||
action: TelemetryActions.REQUEST_DEMO_BUTTON_CLICKED
|
||||
action: 'request_demo_button_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The source of the button click, e.g. homepage hero, cta banner, product page header.
|
||||
@@ -958,7 +881,7 @@ export interface RequestDemoButtonClickedEvent {
|
||||
* @source www
|
||||
*/
|
||||
export interface SignInButtonClickedEvent {
|
||||
action: TelemetryActions.SIGN_IN_BUTTON_CLICKED
|
||||
action: 'sign_in_button_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The source of the button click, e.g. homepage hero, cta banner, product page header.
|
||||
@@ -974,7 +897,7 @@ export interface SignInButtonClickedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface HelpButtonClickedEvent {
|
||||
action: TelemetryActions.HELP_BUTTON_CLICKED
|
||||
action: 'help_button_clicked'
|
||||
groups: {
|
||||
project?: string
|
||||
organization?: string
|
||||
@@ -988,7 +911,7 @@ export interface HelpButtonClickedEvent {
|
||||
* @source studio
|
||||
*/
|
||||
export interface SendFeedbackButtonClickedEvent {
|
||||
action: TelemetryActions.SEND_FEEDBACK_BUTTON_CLICKED
|
||||
action: 'send_feedback_button_clicked'
|
||||
groups: {
|
||||
project?: string
|
||||
organization?: string
|
||||
@@ -1003,7 +926,7 @@ export interface SendFeedbackButtonClickedEvent {
|
||||
* @page /project/{ref}
|
||||
*/
|
||||
export interface ExampleProjectCardClickedEvent {
|
||||
action: TelemetryActions.EXAMPLE_PROJECT_CARD_CLICKED
|
||||
action: 'example_project_card_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The title of the example project card clicked.
|
||||
@@ -1024,7 +947,7 @@ export interface ExampleProjectCardClickedEvent {
|
||||
* @page /dashboard/project/{ref}/editor
|
||||
*/
|
||||
export interface ImportDataButtonClickedEvent {
|
||||
action: TelemetryActions.IMPORT_DATA_BUTTON_CLICKED
|
||||
action: 'import_data_button_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The type of table the data is imported to.
|
||||
@@ -1047,7 +970,7 @@ export interface ImportDataButtonClickedEvent {
|
||||
* @page /dashboard/project/{ref}/editor
|
||||
*/
|
||||
export interface ImportDataAddedEvent {
|
||||
action: TelemetryActions.IMPORT_DATA_ADDED
|
||||
action: 'import_data_added'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -1062,7 +985,7 @@ export interface ImportDataAddedEvent {
|
||||
* @page /dashboard/project/{ref}/sql/{id}
|
||||
*/
|
||||
export interface SqlEditorQueryRunButtonClickedEvent {
|
||||
action: TelemetryActions.SQL_EDITOR_QUERY_RUN_BUTTON_CLICKED
|
||||
action: 'sql_editor_query_run_button_clicked'
|
||||
groups: {
|
||||
project: string
|
||||
organization: string
|
||||
@@ -1077,7 +1000,7 @@ export interface SqlEditorQueryRunButtonClickedEvent {
|
||||
* @page /billing?panel=subscriptionPlan
|
||||
*/
|
||||
export interface StudioPricingPlanCtaClickedEvent {
|
||||
action: TelemetryActions.STUDIO_PRICING_PLAN_CTA_CLICKED
|
||||
action: 'studio_pricing_plan_cta_clicked'
|
||||
properties: {
|
||||
/**
|
||||
* The plan type that was clicked.
|
||||
@@ -1099,7 +1022,7 @@ export interface StudioPricingPlanCtaClickedEvent {
|
||||
* @page /billing?panel=subscriptionPlan
|
||||
*/
|
||||
export interface StudioPricingSidePanelOpenedEvent {
|
||||
action: TelemetryActions.STUDIO_PRICING_SIDE_PANEL_OPENED
|
||||
action: 'studio_pricing_side_panel_opened'
|
||||
properties: {
|
||||
currentPlan?: string
|
||||
/**
|
||||
@@ -1110,6 +1033,9 @@ export interface StudioPricingSidePanelOpenedEvent {
|
||||
groups: { organization: string }
|
||||
}
|
||||
|
||||
/**
|
||||
* @hidden
|
||||
*/
|
||||
export type TelemetryEvent =
|
||||
| SignUpEvent
|
||||
| SignInEvent
|
||||
@@ -1147,7 +1073,6 @@ export type TelemetryEvent =
|
||||
| AssistantSqlDiffHandlerEvaluatedEvent
|
||||
| AssistantEditInSqlEditorClickedEvent
|
||||
| DocsFeedbackClickedEvent
|
||||
| HomepageHeroRequestDemoClickedEvent
|
||||
| HomepageFrameworkQuickstartClickedEvent
|
||||
| HomepageProductCardClickedEvent
|
||||
| WwwPricingPlanCtaClickedEvent
|
||||
|
||||
Reference in new issue
Block a user