From f34720d13cdb008c82c85d26a5cfdaa9336f7511 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Thu, 25 Jul 2024 15:00:49 -0700 Subject: [PATCH 01/20] update onboarding flow --- frontend/apps/web/app/BaseLayout.tsx | 2 + frontend/apps/web/app/globals.css | 10 + .../onboarding-checklist/StepProgress.tsx | 28 +++ .../onboarding-checklist/Welcome.tsx | 206 ++++++++++++++++++ .../onboarding-checklist/WelcomeDarkMode.tsx | 206 ++++++++++++++++++ .../onboarding-checklist/WelcomeDialog.tsx | 60 +++++ .../onboarding-checklist/WelcomeOverview.tsx | 43 ++++ .../onboarding-checklist/WelcomeRouter.tsx | 174 +++++++++++++++ frontend/apps/web/public/images/job-med.png | Bin 0 -> 62019 bytes frontend/apps/web/public/images/jobs-dark.png | Bin 0 -> 141737 bytes frontend/apps/web/public/images/obsub.png | Bin 0 -> 126741 bytes frontend/apps/web/public/images/ss-dark.png | Bin 0 -> 132950 bytes 12 files changed, 729 insertions(+) create mode 100644 frontend/apps/web/components/onboarding-checklist/StepProgress.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/Welcome.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx create mode 100644 frontend/apps/web/public/images/job-med.png create mode 100644 frontend/apps/web/public/images/jobs-dark.png create mode 100644 frontend/apps/web/public/images/obsub.png create mode 100644 frontend/apps/web/public/images/ss-dark.png diff --git a/frontend/apps/web/app/BaseLayout.tsx b/frontend/apps/web/app/BaseLayout.tsx index 7b873eb3e0..c7fb3903fd 100644 --- a/frontend/apps/web/app/BaseLayout.tsx +++ b/frontend/apps/web/app/BaseLayout.tsx @@ -1,5 +1,6 @@ import SiteFooter from '@/components/SiteFooter'; import OnboardingChecklist from '@/components/onboarding-checklist/OnboardingChecklist'; +import WelcomeDialog from '@/components/onboarding-checklist/WelcomeDialog'; import AccountProvider from '@/components/providers/account-provider'; import ConnectProvider from '@/components/providers/connect-provider'; import { KoalaIdentifier } from '@/components/providers/koala-provider'; @@ -40,6 +41,7 @@ export default async function BaseLayout(props: Props): Promise { {/* https://sonner.emilkowal.ski/styling for styling documentation */} + diff --git a/frontend/apps/web/app/globals.css b/frontend/apps/web/app/globals.css index 35fcc51ceb..248053f847 100644 --- a/frontend/apps/web/app/globals.css +++ b/frontend/apps/web/app/globals.css @@ -97,3 +97,13 @@ color: red; /* White text color */ background-color: transparent; } + +.edge-path { + strokedasharray: 12 12; + animation: dashdraw 2s linear infinite; +} +@keyframes dashdraw { + to { + stroke-dashoffset: -80; + } +} diff --git a/frontend/apps/web/components/onboarding-checklist/StepProgress.tsx b/frontend/apps/web/components/onboarding-checklist/StepProgress.tsx new file mode 100644 index 0000000000..38682829ec --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/StepProgress.tsx @@ -0,0 +1,28 @@ +import { cn } from '@/libs/utils'; +import { ReactElement } from 'react'; +import { FormStep } from './WelcomeDialog'; + +interface Props { + steps: FormStep[]; + currentStep: number; +} + +export default function StepProgress(props: Props): ReactElement { + const { steps, currentStep } = props; + + return ( +
+ {steps.map((step, index) => ( +
+ ))} +
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/Welcome.tsx b/frontend/apps/web/components/onboarding-checklist/Welcome.tsx new file mode 100644 index 0000000000..b73b79148c --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/Welcome.tsx @@ -0,0 +1,206 @@ +export const Welcome = () => { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ); +}; diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx new file mode 100644 index 0000000000..5b18a869b0 --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx @@ -0,0 +1,206 @@ +export const WelcomeDarkMode = () => { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ); +}; diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx new file mode 100644 index 0000000000..15e525ed31 --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx @@ -0,0 +1,60 @@ +'use client'; +import { Dialog, DialogContent } from '@/components/ui/dialog'; +import { ReactElement, useState } from 'react'; +import { Button } from '../ui/button'; +import StepProgress from './StepProgress'; +import WelcomeOverview from './WelcomeOverview'; +import WelcomeRouter from './WelcomeRouter'; + +export interface FormStep { + name: string; + component: JSX.Element; +} + +export default function WelcomeDialog(): ReactElement { + const [currentStep, setCurrentStep] = useState(0); + const [isDialogOpen, setIsDialogOpen] = useState(false); + + const multiStepForm: FormStep[] = [ + { + name: 'welcome', + component: ( + + ), + }, + { + name: 'router', + component: ( + + ), + }, + ]; + + return ( + <> + + setIsDialogOpen(!isDialogOpen)} + > + +
+ step)} + currentStep={currentStep} + /> +
{multiStepForm[currentStep].component}
+
+
+
+ + ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx new file mode 100644 index 0000000000..1b7b38b84f --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx @@ -0,0 +1,43 @@ +import { ArrowRightIcon } from '@radix-ui/react-icons'; +import { useTheme } from 'next-themes'; +import { ReactElement } from 'react'; +import { Button } from '../ui/button'; +import { Welcome } from './Welcome'; +import { WelcomeDarkMode } from './WelcomeDarkMode'; + +interface Props { + currentStep: number; + setCurrentStep: (val: number) => void; + setIsDialogOpen: (val: boolean) => void; +} + +export default function WelcomeOverview(props: Props): ReactElement { + const { currentStep, setCurrentStep, setIsDialogOpen } = props; + const theme = useTheme(); + + return ( +
+

Welcome to Neosync

+ {theme.theme == 'light' ? : } +

+ Neosync makes it easy to anonymize sensitive data, generate synthetic + data and sync data across environments. Click{' '} + Next to get started. +

+
+ + +
+
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx new file mode 100644 index 0000000000..465079fc33 --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx @@ -0,0 +1,174 @@ +import { NewJobType } from '@/app/(mgmt)/[account]/new/job/schema'; +import { useAccount } from '@/components/providers/account-provider'; +import { Badge } from '@/components/ui/badge'; +import { + Card, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; +import { cn } from '@/libs/utils'; +import { MagicWandIcon, SymbolIcon } from '@radix-ui/react-icons'; +import { nanoid } from 'nanoid'; +import { useRouter, useSearchParams } from 'next/navigation'; +import { usePostHog } from 'posthog-js/react'; +import { ReactElement, useEffect, useState } from 'react'; +import { AiOutlineExperiment } from 'react-icons/ai'; +import { PageProps } from '../types'; +import { Button } from '../ui/button'; + +interface Props { + currentStep: number; + setCurrentStep: (val: number) => void; + setIsDialogOpen: (val: boolean) => void; +} + +export default function WelcomeRouter({ + params, + currentStep, + setIsDialogOpen, + setCurrentStep, +}: Props & PageProps): ReactElement { + const [sessionToken, setSessionToken] = useState(''); + const searchParams = useSearchParams(); + const { account } = useAccount(); + + useEffect(() => { + // Generate the session token only on the client side + setSessionToken(params?.sessionId ?? nanoid()); + }, []); + + const dataSyncParams = new URLSearchParams(searchParams); + dataSyncParams.set('jobType', 'data-sync'); + if (!dataSyncParams.has('sessionId')) { + dataSyncParams.set('sessionId', sessionToken); + } + + const dataGenParams = new URLSearchParams(searchParams); + dataGenParams.set('jobType', 'generate-table'); + if (!dataGenParams.has('sessionId')) { + dataGenParams.set('sessionId', sessionToken); + } + + const aiDataGenParams = new URLSearchParams(searchParams); + aiDataGenParams.set('jobType', 'ai-generate-table'); + if (!aiDataGenParams.has('sessionId')) { + aiDataGenParams.set('sessionId', sessionToken); + } + + const jobData = [ + { + name: 'Data Synchronization', + description: + 'Synchronize and anonymize data between a source and destination. ', + href: `/${account?.name}/new/job/define?${dataSyncParams.toString()}`, + icon: , + type: 'data-sync', + experimental: false, + }, + { + name: 'Data Generation', + description: + 'Generate synthetic data from scratch for a chosen destination.', + href: `/${account?.name}/new/job/define?${dataGenParams.toString()}`, + icon: , + type: 'generate-table', + experimental: false, + }, + { + name: 'AI Data Generation', + description: 'Generate synthetic data from scratch with AI.', + href: `/${account?.name}/new/job/define?${aiDataGenParams.toString()}`, + icon: , + type: 'ai-generate-table', + experimental: true, + }, + ] as const; + + const [selectedJobType, setSelectedJobType] = + useState('data-sync'); + + const [href, setHref] = useState(); + + const handleJobSelection = (jobType: NewJobType, href: string) => { + setSelectedJobType(jobType); + setHref(href); + }; + + const router = useRouter(); + const posthog = usePostHog(); + + return ( +
+

+

+ Select the type of job that you would like to create. +

+
+ setSelectedJobType}> + {jobData.map((jd) => ( + handleJobSelection(jd.type, jd.href)} + > + +
+
+ +
+
{jd.icon}
+

{jd.name}

+ {jd.experimental ? Experimental : null} +
+
+ + {jd.description} + +
+ +
+
+
+ ))} +
+
+
+ + +
+
+ ); +} diff --git a/frontend/apps/web/public/images/job-med.png b/frontend/apps/web/public/images/job-med.png new file mode 100644 index 0000000000000000000000000000000000000000..1dfac711b64ccea095469a88eb3cc3f18a92734e GIT binary patch literal 62019 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%0D8K1y0RBO!8^|ZGL--!Hg6kjJ#yi! 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 Z>xJ4WqXT{qZ?XV?XZ6mX!JT%v@qfO|A|U_( literal 0 HcmV?d00001 diff --git a/frontend/apps/web/public/images/ss-dark.png b/frontend/apps/web/public/images/ss-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7c538adf1b5c7ecdde61265b2fe92f39ecee776f GIT binary patch literal 132950 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 MEo{t-k9l1AKl*^o3;+NC literal 0 HcmV?d00001 From a0dee0b6be25366337f6f749ce0cc0c4336ae901 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Fri, 16 Aug 2024 13:17:09 -0700 Subject: [PATCH 02/20] updated onboarding to include a welcome modal --- .../onboarding-checklist/WelcomeDialog.tsx | 2 +- .../onboarding-checklist/WelcomeOverview.tsx | 8 +++++--- .../onboarding-checklist/WelcomeRouter.tsx | 14 ++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx index 15e525ed31..d34dd25d0b 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx @@ -13,7 +13,7 @@ export interface FormStep { export default function WelcomeDialog(): ReactElement { const [currentStep, setCurrentStep] = useState(0); - const [isDialogOpen, setIsDialogOpen] = useState(false); + const [isDialogOpen, setIsDialogOpen] = useState(true); //revert after testing const multiStepForm: FormStep[] = [ { diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx index 1b7b38b84f..679b404d4c 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx @@ -15,16 +15,18 @@ export default function WelcomeOverview(props: Props): ReactElement { const { currentStep, setCurrentStep, setIsDialogOpen } = props; const theme = useTheme(); + console.log('theme', theme); + return (

Welcome to Neosync

- {theme.theme == 'light' ? : } + {theme.resolvedTheme == 'light' ? : }

Neosync makes it easy to anonymize sensitive data, generate synthetic data and sync data across environments. Click{' '} - Next to get started. + Next to create a Job.

-
+
diff --git a/frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx b/frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx new file mode 100644 index 0000000000..cd3f9c0db4 --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx @@ -0,0 +1,44 @@ +import { ArrowRightIcon } from '@radix-ui/react-icons'; +import { useTheme } from 'next-themes'; +import { ReactElement } from 'react'; +import { Button } from '../ui/button'; +import { HowItWorksImage } from './hiw'; + +interface Props { + currentStep: number; + setCurrentStep: (val: number) => void; +} + +export default function HowItWorks(props: Props): ReactElement { + const { currentStep, setCurrentStep } = props; + const theme = useTheme(); + + return ( +
+

How it works

+ {theme.resolvedTheme == 'light' ? ( + + ) : ( + + )} +

+ Now that you have an idea of Neosync works, click{' '} + Next to create a Job. +

+
+ + +
+
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx b/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx index 238601c81d..eaef8d4ff7 100644 --- a/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx +++ b/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx @@ -1,279 +1,283 @@ -'use client'; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from '@/components/ui/popover'; -import { Progress } from '@/components/ui/progress'; -import { getErrorMessage } from '@/util/util'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; -import { - AccountOnboardingConfig, - GetAccountOnboardingConfigResponse, - UserAccountType, -} from '@neosync/sdk'; -import { - getAccountOnboardingConfig, - setAccountOnboardingConfig, -} from '@neosync/sdk/connectquery'; -import { - ArrowRightIcon, - ChevronDownIcon, - CircleIcon, - RocketIcon, -} from '@radix-ui/react-icons'; -import { useQueryClient } from '@tanstack/react-query'; -import NextLink from 'next/link'; -import { ReactElement, useEffect, useState } from 'react'; -import { FaCheckCircle } from 'react-icons/fa'; -import { toast } from 'sonner'; -import Spinner from '../Spinner'; -import { useAccount } from '../providers/account-provider'; -import { Badge } from '../ui/badge'; -import { Button } from '../ui/button'; -import { Separator } from '../ui/separator'; -import { Skeleton } from '../ui/skeleton'; +// 'use client'; +// import { +// Popover, +// PopoverContent, +// PopoverTrigger, +// } from '@/components/ui/popover'; +// import { Progress } from '@/components/ui/progress'; +// import { getErrorMessage } from '@/util/util'; +// import { +// createConnectQueryKey, +// useMutation, +// useQuery, +// } from '@connectrpc/connect-query'; +// import { +// AccountOnboardingConfig, +// GetAccountOnboardingConfigResponse, +// UserAccountType, +// } from '@neosync/sdk'; +// import { +// getAccountOnboardingConfig, +// setAccountOnboardingConfig, +// } from '@neosync/sdk/connectquery'; +// import { +// ArrowRightIcon, +// ChevronDownIcon, +// CircleIcon, +// RocketIcon, +// } from '@radix-ui/react-icons'; +// import { useQueryClient } from '@tanstack/react-query'; +// import NextLink from 'next/link'; +// import { ReactElement, useEffect, useState } from 'react'; +// import { FaCheckCircle } from 'react-icons/fa'; +// import { toast } from 'sonner'; +// import Spinner from '../Spinner'; +// import { useAccount } from '../providers/account-provider'; +// import { Badge } from '../ui/badge'; +// import { Button } from '../ui/button'; +// import { Separator } from '../ui/separator'; +// import { Skeleton } from '../ui/skeleton'; -interface OnboardingValues { - hasCreatedSourceConnection: boolean; - hasCreatedDestinationConnection: boolean; - hasCreatedJob: boolean; - hasInvitedMembers?: boolean; -} +// /* +// The welcome modal shows first when a new user signs into the app for the first time. They can either skip the modal at which time the modal closes. Or, they can use the modal to complete the onboarding steps in the app. +// */ -interface Step { - id: string; - title: string; - href: string; - complete: boolean; -} +// interface OnboardingValues { +// hasCreatedSourceConnection: boolean; +// hasCreatedDestinationConnection: boolean; +// hasCreatedJob: boolean; +// hasInvitedMembers?: boolean; +// } -// create a map of {step:metadata} so we can construct that we need to we show in UI -const STEPS_METADATA: Record< - keyof OnboardingValues, - Pick -> = { - hasCreatedSourceConnection: { - title: 'Create a source connection', - href: '/new/connection', - }, - hasCreatedDestinationConnection: { - title: 'Create a destination connection', - href: '/new/connection', - }, - hasCreatedJob: { title: 'Create a Job', href: '/new/job' }, - hasInvitedMembers: { title: 'Invite members', href: '/settings' }, -}; +// interface Step { +// id: string; +// title: string; +// href: string; +// complete: boolean; +// } -export default function OnboardingChecklist(): ReactElement { - const { account } = useAccount(); - const { - data, - isLoading, - isFetching: isValidating, - error, - } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); - const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); - const [isOpen, setIsOpen] = useState(false); - const [showGuide, setShowGuide] = useState(false); - const [isSubmitting, setIsSubmitting] = useState(false); +// // create a map of {step:metadata} so we can construct that we need to we show in UI +// const STEPS_METADATA: Record< +// keyof OnboardingValues, +// Pick +// > = { +// hasCreatedSourceConnection: { +// title: 'Create a source connection', +// href: '/new/connection', +// }, +// hasCreatedDestinationConnection: { +// title: 'Create a destination connection', +// href: '/new/connection', +// }, +// hasCreatedJob: { title: 'Create a Job', href: '/new/job' }, +// hasInvitedMembers: { title: 'Invite members', href: '/settings' }, +// }; - const onboardingValues: OnboardingValues = data?.config - ? { - ...data.config, - hasInvitedMembers: - account?.type === UserAccountType.PERSONAL - ? undefined - : data.config.hasInvitedMembers, - } - : { - hasCreatedDestinationConnection: false, - hasCreatedJob: false, - hasCreatedSourceConnection: false, - hasInvitedMembers: - account?.type === UserAccountType.PERSONAL ? undefined : false, - }; +// export default function OnboardingChecklist(): ReactElement { +// const { account } = useAccount(); +// const { +// data, +// isLoading, +// isFetching: isValidating, +// error, +// } = useQuery( +// getAccountOnboardingConfig, +// { accountId: account?.id ?? '' }, +// { enabled: !!account?.id } +// ); +// const queryclient = useQueryClient(); +// const { mutateAsync: setOnboardingConfigAsync } = useMutation( +// setAccountOnboardingConfig +// ); +// const [isOpen, setIsOpen] = useState(false); +// const [showGuide, setShowGuide] = useState(false); +// const [isSubmitting, setIsSubmitting] = useState(false); - const progress = calculateProgress(onboardingValues); - const isCompleted = isChecklistComplete(progress); +// const onboardingValues: OnboardingValues = data?.config +// ? { +// ...data.config, +// hasInvitedMembers: +// account?.type === UserAccountType.PERSONAL +// ? undefined +// : data.config.hasInvitedMembers, +// } +// : { +// hasCreatedDestinationConnection: false, +// hasCreatedJob: false, +// hasCreatedSourceConnection: false, +// hasInvitedMembers: +// account?.type === UserAccountType.PERSONAL ? undefined : false, +// }; - useEffect(() => { - if (error || isLoading) { - return; - } - if (showGuide && isCompleted) { - { - setTimeout(() => setShowGuide(false), 1000); - return; - } - } - if (!showGuide && !isCompleted) { - setShowGuide(true); - } - }, [isLoading, isValidating, error, isCompleted]); +// const progress = calculateProgress(onboardingValues); +// const isCompleted = isChecklistComplete(progress); - if (isLoading) { - return ; - } - if (!showGuide) { - return <>; - } +// useEffect(() => { +// if (error || isLoading) { +// return; +// } +// if (showGuide && isCompleted) { +// { +// setTimeout(() => setShowGuide(false), 1000); +// return; +// } +// } +// if (!showGuide && !isCompleted) { +// setShowGuide(true); +// } +// }, [isLoading, isValidating, error, isCompleted]); - async function completeForm() { - if (!account?.id || isSubmitting) { - return; - } - setIsSubmitting(true); - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedDestinationConnection: true, - hasCreatedSourceConnection: true, - hasCreatedJob: true, - hasInvitedMembers: true, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - setIsOpen(false); - } catch (e) { - toast.error('Unable to complete onboarding', { - description: getErrorMessage(e), - }); - } finally { - setIsSubmitting(false); - } - } +// if (isLoading) { +// return ; +// } +// if (!showGuide) { +// return <>; +// } - const steps = getSteps(onboardingValues); +// async function completeForm() { +// if (!account?.id || isSubmitting) { +// return; +// } +// setIsSubmitting(true); +// try { +// const resp = await setOnboardingConfigAsync({ +// accountId: account.id, +// config: buildAccountOnboardingConfig({ +// hasCreatedDestinationConnection: true, +// hasCreatedSourceConnection: true, +// hasCreatedJob: true, +// hasInvitedMembers: true, +// }), +// }); +// queryclient.setQueryData( +// createConnectQueryKey(getAccountOnboardingConfig, { +// accountId: account.id, +// }), +// new GetAccountOnboardingConfigResponse({ +// config: resp.config, +// }) +// ); +// setIsOpen(false); +// } catch (e) { +// toast.error('Unable to complete onboarding', { +// description: getErrorMessage(e), +// }); +// } finally { +// setIsSubmitting(false); +// } +// } - return ( -
- - -
-

Onboarding Guide

- {progress}% -
- -
-
-
- -
-
-
-
- -
-

Welcome to Neosync!

- {isValidating ? : null} -
-

Follow these steps to get started

-
-
- -
{progress}%
-
- -
- {steps.map((step) => ( -
-
-
- {step.complete ? ( - - ) : ( - - )} -
-
{step.title}
-
- - - -
- ))} -
+// const steps = getSteps(onboardingValues); -
- - -
-
-
-
-
- ); -} +// return ( +//
+// +// +//
+//

Onboarding Guide

+// {progress}% +//
+// +//
+//
+//
+// +//
+//
+//
+//
+// +//
+//

Welcome to Neosync!

+// {isValidating ? : null} +//
+//

Follow these steps to get started

+//
+//
+// +//
{progress}%
+//
+// +//
+// {steps.map((step) => ( +//
+//
+//
+// {step.complete ? ( +// +// ) : ( +// +// )} +//
+//
{step.title}
+//
+// +// +// +//
+// ))} +//
-function getSteps(data: OnboardingValues): Step[] { - return Object.entries(data) - .filter(([_, value]) => isBoolean(value)) - .map( - ([key, value]): Step => ({ - id: key, - complete: value, - title: STEPS_METADATA[key as keyof OnboardingValues].title, - href: STEPS_METADATA[key as keyof OnboardingValues].href, - }) - ); -} +//
+// +// +//
+//
+//
+//
+//
+// ); +// } -function calculateProgress(data: OnboardingValues): number { - const validValues = Object.values(data).filter(isBoolean); - const totalSteps = validValues.length; - const completedSteps = validValues.filter((x) => x).length; - return Math.round((completedSteps / totalSteps) * 100); -} +// function getSteps(data: OnboardingValues): Step[] { +// return Object.entries(data) +// .filter(([_, value]) => isBoolean(value)) +// .map( +// ([key, value]): Step => ({ +// id: key, +// complete: value, +// title: STEPS_METADATA[key as keyof OnboardingValues].title, +// href: STEPS_METADATA[key as keyof OnboardingValues].href, +// }) +// ); +// } -function isChecklistComplete(progress: number): boolean { - return progress === 100; -} +// function calculateProgress(data: OnboardingValues): number { +// const validValues = Object.values(data).filter(isBoolean); +// const totalSteps = validValues.length; +// const completedSteps = validValues.filter((x) => x).length; +// return Math.round((completedSteps / totalSteps) * 100); +// } -function isBoolean(input: unknown): input is boolean { - return typeof input === 'boolean'; -} +// function isChecklistComplete(progress: number): boolean { +// return progress === 100; +// } -export function buildAccountOnboardingConfig( - values: OnboardingValues -): AccountOnboardingConfig { - return new AccountOnboardingConfig({ - hasCreatedSourceConnection: values.hasCreatedSourceConnection, - hasCreatedDestinationConnection: values.hasCreatedDestinationConnection, - hasCreatedJob: values.hasCreatedJob, - hasInvitedMembers: values.hasInvitedMembers, - }); -} +// function isBoolean(input: unknown): input is boolean { +// return typeof input === 'boolean'; +// } + +// export function buildAccountOnboardingConfig( +// values: OnboardingValues +// ): AccountOnboardingConfig { +// return new AccountOnboardingConfig({ +// hasCreatedSourceConnection: values.hasCreatedSourceConnection, +// hasCreatedDestinationConnection: values.hasCreatedDestinationConnection, +// hasCreatedJob: values.hasCreatedJob, +// hasInvitedMembers: values.hasInvitedMembers, +// }); +// } diff --git a/frontend/apps/web/components/onboarding-checklist/Welcome.tsx b/frontend/apps/web/components/onboarding-checklist/Welcome.tsx index b73b79148c..06235db9f5 100644 --- a/frontend/apps/web/components/onboarding-checklist/Welcome.tsx +++ b/frontend/apps/web/components/onboarding-checklist/Welcome.tsx @@ -14,8 +14,8 @@ export const Welcome = () => { x2="119.023" y2="137.801" stroke="black" - stroke-linecap="round" - stroke-dasharray="5 5" + strokeLinecap="round" + strokeDasharray="5 5" className="edge-path" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 44.6953 134.446)" fill="white" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 0 1 6.38672 163.938)" fill="#BEBFC3" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 -0.5 0 1 51.0801 182.369)" fill="#45474D" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { x2="68.7404" y2="70.6013" stroke="black" - stroke-dasharray="5 5" + strokeDasharray="5 5" className="edge-path" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 138.309 80.1968)" fill="white" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 233.393 136.805)" fill="white" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 0 1 195.084 166.296)" fill="#BEBFC3" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 -0.5 0 1 239.777 184.728)" fill="#45474D" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { x2="69.2298" y2="70.6125" stroke="black" - stroke-dasharray="5 5" + strokeDasharray="5 5" className="edge-path" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 122.531 0)" fill="white" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 0 1 84.2227 29.4912)" fill="#BEBFC3" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 -0.5 0 1 128.916 47.9229)" fill="#45474D" stroke="black" - stroke-linejoin="bevel" + strokeLinejoin="bevel" />
diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx index 5b18a869b0..a38ef9b08b 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx @@ -14,8 +14,8 @@ export const WelcomeDarkMode = () => { x2="119.023" y2="137.801" stroke="#999999" - stroke-linecap="round" - stroke-dasharray="5 5" + strokeLinecap="round" + strokeDasharray="5 5" className="edge-path" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 44.6953 134.446)" fill="#B4B4B4" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 0 1 6.38672 163.938)" fill="#BEBFC3" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 -0.5 0 1 51.0801 182.369)" fill="#45474D" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { x2="68.7404" y2="70.6013" stroke="#999999" - stroke-dasharray="5 5" + strokeDasharray="5 5" className="edge-path" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 138.309 80.1968)" fill="#6D6D6D" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 233.393 136.805)" fill="#B4B4B4" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 0 1 195.084 166.296)" fill="#BEBFC3" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 -0.5 0 1 239.777 184.728)" fill="#45474D" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { x2="69.2298" y2="70.6125" stroke="#999999" - stroke-dasharray="5 5" + strokeDasharray="5 5" className="edge-path" /> { transform="matrix(0.866025 0.5 -0.866025 0.5 122.531 0)" fill="#B4B4B4" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 0.5 0 1 84.2227 29.4912)" fill="#BEBFC3" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" /> { transform="matrix(0.866025 -0.5 0 1 128.916 47.9229)" fill="#45474D" stroke="white" - stroke-linejoin="bevel" + strokeLinejoin="bevel" />
diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx index d34dd25d0b..83bdc85c1b 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx @@ -1,7 +1,23 @@ 'use client'; -import { Dialog, DialogContent } from '@/components/ui/dialog'; -import { ReactElement, useState } from 'react'; -import { Button } from '../ui/button'; +import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog'; +import { getErrorMessage } from '@/util/util'; +import { + createConnectQueryKey, + useMutation, + useQuery, +} from '@connectrpc/connect-query'; +import { GetAccountOnboardingConfigResponse } from '@neosync/sdk'; +import { + getAccountOnboardingConfig, + setAccountOnboardingConfig, +} from '@neosync/sdk/connectquery'; +import { DialogDescription } from '@radix-ui/react-dialog'; +import { useQueryClient } from '@tanstack/react-query'; +import { ReactElement, useEffect, useState } from 'react'; +import { toast } from 'sonner'; +import { useAccount } from '../providers/account-provider'; +import { Skeleton } from '../ui/skeleton'; +import HowItWorks from './HowItWorks'; import StepProgress from './StepProgress'; import WelcomeOverview from './WelcomeOverview'; import WelcomeRouter from './WelcomeRouter'; @@ -12,8 +28,26 @@ export interface FormStep { } export default function WelcomeDialog(): ReactElement { - const [currentStep, setCurrentStep] = useState(0); - const [isDialogOpen, setIsDialogOpen] = useState(true); //revert after testing + const { account } = useAccount(); + const { + data, + isLoading, + isFetching: isValidating, + error, + } = useQuery( + getAccountOnboardingConfig, + { accountId: account?.id ?? '' }, + { enabled: !!account?.id } + ); + const queryclient = useQueryClient(); + const { mutateAsync: setOnboardingConfigAsync } = useMutation( + setAccountOnboardingConfig + ); + + const [currentStep, setCurrentStep] = useState(0); // controls progress through the welcome modal + const [isSubmitting, setIsSubmitting] = useState(false); + const [isComplete, setIsComplete] = useState(false); + const [showGuide, setShowGuide] = useState(false); const multiStepForm: FormStep[] = [ { @@ -22,39 +56,101 @@ export default function WelcomeDialog(): ReactElement { ), }, + { + name: 'how-it-works', + component: ( + + ), + }, { name: 'router', component: ( ), }, ]; + async function completeForm() { + if (!account?.id || isSubmitting) { + return; + } + setIsSubmitting(true); + try { + const resp = await setOnboardingConfigAsync({ + accountId: account.id, + config: { + hasCompletedOnboarding: isComplete, + }, + }); + queryclient.setQueryData( + createConnectQueryKey(getAccountOnboardingConfig, { + accountId: account.id, + }), + new GetAccountOnboardingConfigResponse({ + config: resp.config, + }) + ); + setShowGuide(false); + setIsComplete(true); + } catch (e) { + toast.error('Unable to complete onboarding', { + description: getErrorMessage(e), + }); + } finally { + setIsSubmitting(false); + setIsComplete(false); + } + } + + useEffect(() => { + if (error || isLoading) { + return; + } + + setIsComplete(data?.config?.hasCompletedOnboarding ?? false); + if (isComplete) { + { + setTimeout(() => setShowGuide(false), 1000); + return; + } + } + if (!isComplete) { + setShowGuide(true); + } + }, [isLoading, isValidating, error, isComplete]); + + if (isLoading) { + return ; + } + if (!showGuide) { + return <>; + } + + console.log('isCOmplete', isComplete); + return ( - <> - - setIsDialogOpen(!isDialogOpen)} - > - -
- step)} - currentStep={currentStep} - /> -
{multiStepForm[currentStep].component}
-
-
-
- + + + + +
+ step)} + currentStep={currentStep} + /> +
{multiStepForm[currentStep].component}
+
+
+
); } diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx index 679b404d4c..bd0f1b80e2 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx @@ -9,28 +9,30 @@ interface Props { currentStep: number; setCurrentStep: (val: number) => void; setIsDialogOpen: (val: boolean) => void; + completeForm: () => Promise; } export default function WelcomeOverview(props: Props): ReactElement { - const { currentStep, setCurrentStep, setIsDialogOpen } = props; + const { currentStep, setCurrentStep, setIsDialogOpen, completeForm } = props; const theme = useTheme(); - console.log('theme', theme); - return (

Welcome to Neosync

{theme.resolvedTheme == 'light' ? : } -

+

Neosync makes it easy to anonymize sensitive data, generate synthetic data and sync data across environments. Click{' '} - Next to create a Job. + Next to learn how Neosync works.

diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx index 25d63ae790..5cf5a55842 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeRouter.tsx @@ -22,6 +22,7 @@ interface Props { currentStep: number; setCurrentStep: (val: number) => void; setIsDialogOpen: (val: boolean) => void; + completeForm: () => Promise; } export default function WelcomeRouter({ @@ -29,6 +30,7 @@ export default function WelcomeRouter({ currentStep, setIsDialogOpen, setCurrentStep, + completeForm, }: Props & PageProps): ReactElement { const [sessionToken, setSessionToken] = useState(''); const searchParams = useSearchParams(); @@ -154,6 +156,7 @@ export default function WelcomeRouter({ disabled={!selectedJobType} onClick={() => { setIsDialogOpen(false); + completeForm(); setCurrentStep(currentStep - 1); router.push( href ?? diff --git a/frontend/apps/web/components/onboarding-checklist/hiw.tsx b/frontend/apps/web/components/onboarding-checklist/hiw.tsx new file mode 100644 index 0000000000..3fe623f83c --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/hiw.tsx @@ -0,0 +1,54 @@ +export const HowItWorksImage = () => { + return ( +
+ + + + + + + + + + + + + + + + + + + + + +
+ ); +}; diff --git a/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts b/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts index 02d430192f..900ba8fa7a 100644 --- a/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts +++ b/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts @@ -1711,24 +1711,9 @@ export class SetAccountOnboardingConfigResponse extends Message { /** - * @generated from field: bool has_created_source_connection = 1; + * @generated from field: bool has_completed_onboarding = 1; */ - hasCreatedSourceConnection = false; - - /** - * @generated from field: bool has_created_destination_connection = 2; - */ - hasCreatedDestinationConnection = false; - - /** - * @generated from field: bool has_created_job = 3; - */ - hasCreatedJob = false; - - /** - * @generated from field: bool has_invited_members = 4; - */ - hasInvitedMembers = false; + hasCompletedOnboarding = false; constructor(data?: PartialMessage) { super(); @@ -1738,10 +1723,7 @@ export class AccountOnboardingConfig extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "mgmt.v1alpha1.AccountOnboardingConfig"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "has_created_source_connection", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { no: 2, name: "has_created_destination_connection", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { no: 3, name: "has_created_job", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { no: 4, name: "has_invited_members", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 1, name: "has_completed_onboarding", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): AccountOnboardingConfig { From 2038cb85ea41a76fb11ee57b2afabe5afbae5e66 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Fri, 16 Aug 2024 17:28:14 -0700 Subject: [PATCH 04/20] update rendering logic --- backend/sql/postgresql/models/models.go | 2 +- frontend/apps/web/app/BaseLayout.tsx | 1 - .../OnboardingChecklist.tsx | 283 ------------------ .../onboarding-checklist/WelcomeDialog.tsx | 29 +- 4 files changed, 11 insertions(+), 304 deletions(-) delete mode 100644 frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx diff --git a/backend/sql/postgresql/models/models.go b/backend/sql/postgresql/models/models.go index 7cd6efaa29..285a48c05a 100644 --- a/backend/sql/postgresql/models/models.go +++ b/backend/sql/postgresql/models/models.go @@ -1786,5 +1786,5 @@ func (t *AccountOnboardingConfig) ToDto() *mgmtv1alpha1.AccountOnboardingConfig } func (t *AccountOnboardingConfig) FromDto(dto *mgmtv1alpha1.AccountOnboardingConfig) { - t.ToDto().HasCompletedOnboarding = dto.GetHasCompletedOnboarding() + t.HasCompletedOnboarding = dto.GetHasCompletedOnboarding() } diff --git a/frontend/apps/web/app/BaseLayout.tsx b/frontend/apps/web/app/BaseLayout.tsx index d7df48ee65..d27d2a551a 100644 --- a/frontend/apps/web/app/BaseLayout.tsx +++ b/frontend/apps/web/app/BaseLayout.tsx @@ -39,7 +39,6 @@ export default async function BaseLayout(props: Props): Promise { {/* https://sonner.emilkowal.ski/styling for styling documentation */} - {/* */}
diff --git a/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx b/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx deleted file mode 100644 index eaef8d4ff7..0000000000 --- a/frontend/apps/web/components/onboarding-checklist/OnboardingChecklist.tsx +++ /dev/null @@ -1,283 +0,0 @@ -// 'use client'; -// import { -// Popover, -// PopoverContent, -// PopoverTrigger, -// } from '@/components/ui/popover'; -// import { Progress } from '@/components/ui/progress'; -// import { getErrorMessage } from '@/util/util'; -// import { -// createConnectQueryKey, -// useMutation, -// useQuery, -// } from '@connectrpc/connect-query'; -// import { -// AccountOnboardingConfig, -// GetAccountOnboardingConfigResponse, -// UserAccountType, -// } from '@neosync/sdk'; -// import { -// getAccountOnboardingConfig, -// setAccountOnboardingConfig, -// } from '@neosync/sdk/connectquery'; -// import { -// ArrowRightIcon, -// ChevronDownIcon, -// CircleIcon, -// RocketIcon, -// } from '@radix-ui/react-icons'; -// import { useQueryClient } from '@tanstack/react-query'; -// import NextLink from 'next/link'; -// import { ReactElement, useEffect, useState } from 'react'; -// import { FaCheckCircle } from 'react-icons/fa'; -// import { toast } from 'sonner'; -// import Spinner from '../Spinner'; -// import { useAccount } from '../providers/account-provider'; -// import { Badge } from '../ui/badge'; -// import { Button } from '../ui/button'; -// import { Separator } from '../ui/separator'; -// import { Skeleton } from '../ui/skeleton'; - -// /* -// The welcome modal shows first when a new user signs into the app for the first time. They can either skip the modal at which time the modal closes. Or, they can use the modal to complete the onboarding steps in the app. -// */ - -// interface OnboardingValues { -// hasCreatedSourceConnection: boolean; -// hasCreatedDestinationConnection: boolean; -// hasCreatedJob: boolean; -// hasInvitedMembers?: boolean; -// } - -// interface Step { -// id: string; -// title: string; -// href: string; -// complete: boolean; -// } - -// // create a map of {step:metadata} so we can construct that we need to we show in UI -// const STEPS_METADATA: Record< -// keyof OnboardingValues, -// Pick -// > = { -// hasCreatedSourceConnection: { -// title: 'Create a source connection', -// href: '/new/connection', -// }, -// hasCreatedDestinationConnection: { -// title: 'Create a destination connection', -// href: '/new/connection', -// }, -// hasCreatedJob: { title: 'Create a Job', href: '/new/job' }, -// hasInvitedMembers: { title: 'Invite members', href: '/settings' }, -// }; - -// export default function OnboardingChecklist(): ReactElement { -// const { account } = useAccount(); -// const { -// data, -// isLoading, -// isFetching: isValidating, -// error, -// } = useQuery( -// getAccountOnboardingConfig, -// { accountId: account?.id ?? '' }, -// { enabled: !!account?.id } -// ); -// const queryclient = useQueryClient(); -// const { mutateAsync: setOnboardingConfigAsync } = useMutation( -// setAccountOnboardingConfig -// ); -// const [isOpen, setIsOpen] = useState(false); -// const [showGuide, setShowGuide] = useState(false); -// const [isSubmitting, setIsSubmitting] = useState(false); - -// const onboardingValues: OnboardingValues = data?.config -// ? { -// ...data.config, -// hasInvitedMembers: -// account?.type === UserAccountType.PERSONAL -// ? undefined -// : data.config.hasInvitedMembers, -// } -// : { -// hasCreatedDestinationConnection: false, -// hasCreatedJob: false, -// hasCreatedSourceConnection: false, -// hasInvitedMembers: -// account?.type === UserAccountType.PERSONAL ? undefined : false, -// }; - -// const progress = calculateProgress(onboardingValues); -// const isCompleted = isChecklistComplete(progress); - -// useEffect(() => { -// if (error || isLoading) { -// return; -// } -// if (showGuide && isCompleted) { -// { -// setTimeout(() => setShowGuide(false), 1000); -// return; -// } -// } -// if (!showGuide && !isCompleted) { -// setShowGuide(true); -// } -// }, [isLoading, isValidating, error, isCompleted]); - -// if (isLoading) { -// return ; -// } -// if (!showGuide) { -// return <>; -// } - -// async function completeForm() { -// if (!account?.id || isSubmitting) { -// return; -// } -// setIsSubmitting(true); -// try { -// const resp = await setOnboardingConfigAsync({ -// accountId: account.id, -// config: buildAccountOnboardingConfig({ -// hasCreatedDestinationConnection: true, -// hasCreatedSourceConnection: true, -// hasCreatedJob: true, -// hasInvitedMembers: true, -// }), -// }); -// queryclient.setQueryData( -// createConnectQueryKey(getAccountOnboardingConfig, { -// accountId: account.id, -// }), -// new GetAccountOnboardingConfigResponse({ -// config: resp.config, -// }) -// ); -// setIsOpen(false); -// } catch (e) { -// toast.error('Unable to complete onboarding', { -// description: getErrorMessage(e), -// }); -// } finally { -// setIsSubmitting(false); -// } -// } - -// const steps = getSteps(onboardingValues); - -// return ( -//
-// -// -//
-//

Onboarding Guide

-// {progress}% -//
-// -//
-//
-//
-// -//
-//
-//
-//
-// -//
-//

Welcome to Neosync!

-// {isValidating ? : null} -//
-//

Follow these steps to get started

-//
-//
-// -//
{progress}%
-//
-// -//
-// {steps.map((step) => ( -//
-//
-//
-// {step.complete ? ( -// -// ) : ( -// -// )} -//
-//
{step.title}
-//
-// -// -// -//
-// ))} -//
- -//
-// -// -//
-//
-//
-//
-//
-// ); -// } - -// function getSteps(data: OnboardingValues): Step[] { -// return Object.entries(data) -// .filter(([_, value]) => isBoolean(value)) -// .map( -// ([key, value]): Step => ({ -// id: key, -// complete: value, -// title: STEPS_METADATA[key as keyof OnboardingValues].title, -// href: STEPS_METADATA[key as keyof OnboardingValues].href, -// }) -// ); -// } - -// function calculateProgress(data: OnboardingValues): number { -// const validValues = Object.values(data).filter(isBoolean); -// const totalSteps = validValues.length; -// const completedSteps = validValues.filter((x) => x).length; -// return Math.round((completedSteps / totalSteps) * 100); -// } - -// function isChecklistComplete(progress: number): boolean { -// return progress === 100; -// } - -// function isBoolean(input: unknown): input is boolean { -// return typeof input === 'boolean'; -// } - -// export function buildAccountOnboardingConfig( -// values: OnboardingValues -// ): AccountOnboardingConfig { -// return new AccountOnboardingConfig({ -// hasCreatedSourceConnection: values.hasCreatedSourceConnection, -// hasCreatedDestinationConnection: values.hasCreatedDestinationConnection, -// hasCreatedJob: values.hasCreatedJob, -// hasInvitedMembers: values.hasInvitedMembers, -// }); -// } diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx index 83bdc85c1b..d08fb445fb 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx @@ -44,9 +44,8 @@ export default function WelcomeDialog(): ReactElement { setAccountOnboardingConfig ); - const [currentStep, setCurrentStep] = useState(0); // controls progress through the welcome modal + const [currentStep, setCurrentStep] = useState(0); const [isSubmitting, setIsSubmitting] = useState(false); - const [isComplete, setIsComplete] = useState(false); const [showGuide, setShowGuide] = useState(false); const multiStepForm: FormStep[] = [ @@ -89,7 +88,7 @@ export default function WelcomeDialog(): ReactElement { const resp = await setOnboardingConfigAsync({ accountId: account.id, config: { - hasCompletedOnboarding: isComplete, + hasCompletedOnboarding: true, }, }); queryclient.setQueryData( @@ -101,14 +100,12 @@ export default function WelcomeDialog(): ReactElement { }) ); setShowGuide(false); - setIsComplete(true); } catch (e) { toast.error('Unable to complete onboarding', { description: getErrorMessage(e), }); } finally { setIsSubmitting(false); - setIsComplete(false); } } @@ -117,17 +114,8 @@ export default function WelcomeDialog(): ReactElement { return; } - setIsComplete(data?.config?.hasCompletedOnboarding ?? false); - if (isComplete) { - { - setTimeout(() => setShowGuide(false), 1000); - return; - } - } - if (!isComplete) { - setShowGuide(true); - } - }, [isLoading, isValidating, error, isComplete]); + setShowGuide(!data?.config?.hasCompletedOnboarding); + }, [isLoading, isValidating, error, data?.config?.hasCompletedOnboarding]); if (isLoading) { return ; @@ -136,11 +124,14 @@ export default function WelcomeDialog(): ReactElement { return <>; } - console.log('isCOmplete', isComplete); - return ( - + { + e.preventDefault(); + }} + >
From 8112547a3aed69c48c0714f730f233b86c03bdc0 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Fri, 16 Aug 2024 17:35:58 -0700 Subject: [PATCH 05/20] clean up account onboarding checks in other files --- .../new/connection/aws-s3/AwsS3Form.tsx | 80 +------------------ .../new/connection/dynamodb/DynamoDBForm.tsx | 48 +---------- .../gcp-cloud-storage/GcpCloudStorageForm.tsx | 51 +----------- .../new/connection/mongodb/MongoDBForm.tsx | 49 +----------- .../new/connection/mssql/MssqlForm.tsx | 74 +---------------- .../new/connection/mysql/MysqlForm.tsx | 74 +---------------- .../new/connection/postgres/PostgresForm.tsx | 79 +----------------- frontend/apps/web/package.json | 1 - frontend/package-lock.json | 24 ------ 9 files changed, 10 insertions(+), 470 deletions(-) diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/aws-s3/AwsS3Form.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/aws-s3/AwsS3Form.tsx index 2fe8ec4c61..9b175dcb24 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/aws-s3/AwsS3Form.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/aws-s3/AwsS3Form.tsx @@ -3,7 +3,6 @@ import ButtonText from '@/components/ButtonText'; import { PasswordInput } from '@/components/PasswordComponent'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; import SwitchCard from '@/components/switches/SwitchCard'; @@ -25,22 +24,13 @@ import { AWS_FORM_SCHEMA, CreateConnectionFormContext, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { createConnectQueryKey, useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; -import { - GetAccountOnboardingConfigResponse, - GetConnectionResponse, -} from '@neosync/sdk'; +import { GetConnectionResponse } from '@neosync/sdk'; import { createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { useQueryClient } from '@tanstack/react-query'; import { useRouter, useSearchParams } from 'next/navigation'; @@ -55,16 +45,7 @@ export default function AwsS3Form() { const { account } = useAccount(); const sourceConnId = searchParams.get('sourceId'); const [isLoading, setIsLoading] = useState(); - - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); const { mutateAsync: isConnectionNameAvailableAsync } = useMutation( isConnectionNameAvailable ); @@ -96,63 +77,6 @@ export default function AwsS3Form() { connectionConfig: buildConnectionConfigAwsS3(values), }); - // updates the onboarding data - if ( - onboardingData?.config?.hasCreatedSourceConnection && - !onboardingData?.config.hasCreatedDestinationConnection - ) { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData.config.hasCreatedSourceConnection, - hasCreatedDestinationConnection: true, - hasCreatedJob: onboardingData.config.hasCreatedJob, - hasInvitedMembers: onboardingData.config.hasInvitedMembers, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } else { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/dynamodb/DynamoDBForm.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/dynamodb/DynamoDBForm.tsx index 46142acc68..4e757be92f 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/dynamodb/DynamoDBForm.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/dynamodb/DynamoDBForm.tsx @@ -3,7 +3,6 @@ import ButtonText from '@/components/ButtonText'; import { PasswordInput } from '@/components/PasswordComponent'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import PermissionsDialog from '@/components/permissions/PermissionsDialog'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; @@ -32,24 +31,17 @@ import { CreateConnectionFormContext, DynamoDbFormValues, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { createConnectQueryKey, useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; import { CheckConnectionConfigResponse, - GetAccountOnboardingConfigResponse, GetConnectionResponse, } from '@neosync/sdk'; import { checkConnectionConfig, createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useQueryClient } from '@tanstack/react-query'; @@ -66,15 +58,7 @@ export default function NewDynamoDBForm(): ReactElement { const { data: systemAppConfig } = useGetSystemAppConfig(); const sourceConnId = searchParams.get('sourceId'); const [isLoading, setIsLoading] = useState(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); const { mutateAsync: isConnectionNameAvailableAsync } = useMutation( isConnectionNameAvailable ); @@ -178,36 +162,6 @@ export default function NewDynamoDBForm(): ReactElement { posthog.capture('New Connection Created', { type: 'dynamodb' }); toast.success('Successfully created connection!'); - // updates the onboarding data - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? - onboardingData?.config?.hasCreatedSourceConnection ?? - false, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? false, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? false, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/gcp-cloud-storage/GcpCloudStorageForm.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/gcp-cloud-storage/GcpCloudStorageForm.tsx index 436f3f4936..7a6180f6c4 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/gcp-cloud-storage/GcpCloudStorageForm.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/gcp-cloud-storage/GcpCloudStorageForm.tsx @@ -2,7 +2,6 @@ import ButtonText from '@/components/ButtonText'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; @@ -23,22 +22,13 @@ import { CreateConnectionFormContext, GcpCloudStorageFormValues, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { createConnectQueryKey, useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; -import { - GetAccountOnboardingConfigResponse, - GetConnectionResponse, -} from '@neosync/sdk'; +import { GetConnectionResponse } from '@neosync/sdk'; import { createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { useQueryClient } from '@tanstack/react-query'; import Error from 'next/error'; @@ -82,15 +72,7 @@ export default function GcpCloudStorageForm(): ReactElement { useMutation(createConnection); const { mutateAsync: getGcpCloudStorageConnection } = useMutation(getConnection); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); async function onSubmit(values: GcpCloudStorageFormValues) { if (!account || isSubmitting) { @@ -105,35 +87,6 @@ export default function GcpCloudStorageForm(): ReactElement { }); posthog.capture('New Connection Created', { type: 'gcp-cloud-storage' }); toast.success('Successfully created connection!'); - - // updates the onboarding data - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? false, // gcp cloud storage is only a destination - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? true, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? false, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? false, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/mongodb/MongoDBForm.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/mongodb/MongoDBForm.tsx index bc66c0dd95..0ff5d6ea3e 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/mongodb/MongoDBForm.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/mongodb/MongoDBForm.tsx @@ -2,7 +2,6 @@ import ButtonText from '@/components/ButtonText'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import PermissionsDialog from '@/components/permissions/PermissionsDialog'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; @@ -30,24 +29,17 @@ import { CreateConnectionFormContext, MongoDbFormValues, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { createConnectQueryKey, useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; import { CheckConnectionConfigResponse, - GetAccountOnboardingConfigResponse, GetConnectionResponse, } from '@neosync/sdk'; import { checkConnectionConfig, createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useQueryClient } from '@tanstack/react-query'; @@ -63,15 +55,7 @@ export default function MongoDBForm(): ReactElement { const { account } = useAccount(); const sourceConnId = searchParams.get('sourceId'); const [isLoading, setIsLoading] = useState(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); const { mutateAsync: isConnectionNameAvailableAsync } = useMutation( isConnectionNameAvailable ); @@ -158,37 +142,6 @@ export default function MongoDBForm(): ReactElement { }); posthog.capture('New Connection Created', { type: 'mongodb' }); toast.success('Successfully created connection!'); - - // updates the onboarding data - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? - onboardingData?.config?.hasCreatedSourceConnection ?? - false, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? false, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? false, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/mssql/MssqlForm.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/mssql/MssqlForm.tsx index 7d87921471..54418fdf71 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/mssql/MssqlForm.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/mssql/MssqlForm.tsx @@ -2,7 +2,6 @@ import ButtonText from '@/components/ButtonText'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import PermissionsDialog from '@/components/permissions/PermissionsDialog'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; @@ -30,24 +29,17 @@ import { MssqlCreateConnectionFormContext, MssqlFormValues, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { createConnectQueryKey, useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; import { CheckConnectionConfigResponse, - GetAccountOnboardingConfigResponse, GetConnectionResponse, } from '@neosync/sdk'; import { checkConnectionConfig, createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useQueryClient } from '@tanstack/react-query'; @@ -105,16 +97,7 @@ export default function MssqlForm() { checkConnectionConfig ); const { mutateAsync: getMssqlConnection } = useMutation(getConnection); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); - async function onSubmit(values: MssqlFormValues) { if (!account) { return; @@ -127,61 +110,6 @@ export default function MssqlForm() { }); posthog.capture('New Connection Created', { type: 'mssql' }); toast.success('Successfully created connection!'); - - // updates the onboarding data - if (onboardingData?.config?.hasCreatedSourceConnection) { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData.config.hasCreatedSourceConnection, - hasCreatedDestinationConnection: true, - hasCreatedJob: onboardingData.config.hasCreatedJob, - hasInvitedMembers: onboardingData.config.hasInvitedMembers, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } else { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/mysql/MysqlForm.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/mysql/MysqlForm.tsx index 72a0c69f62..46d8ae289c 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/mysql/MysqlForm.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/mysql/MysqlForm.tsx @@ -3,7 +3,6 @@ import ButtonText from '@/components/ButtonText'; import { PasswordInput } from '@/components/PasswordComponent'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import PermissionsDialog from '@/components/permissions/PermissionsDialog'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; @@ -41,24 +40,17 @@ import { MysqlCreateConnectionFormContext, MysqlFormValues, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { createConnectQueryKey, useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; import { CheckConnectionConfigResponse, - GetAccountOnboardingConfigResponse, GetConnectionResponse, } from '@neosync/sdk'; import { checkConnectionConfig, createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; import { useQueryClient } from '@tanstack/react-query'; @@ -127,16 +119,7 @@ export default function MysqlForm() { checkConnectionConfig ); const { mutateAsync: getMysqlConnection } = useMutation(getConnection); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); - async function onSubmit(values: MysqlFormValues) { if (!account) { return; @@ -153,61 +136,6 @@ export default function MysqlForm() { }); posthog.capture('New Connection Created', { type: 'mysql' }); toast.success('Successfully created connection!'); - - // updates the onboarding data - if (onboardingData?.config?.hasCreatedSourceConnection) { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData.config.hasCreatedSourceConnection, - hasCreatedDestinationConnection: true, - hasCreatedJob: onboardingData.config.hasCreatedJob, - hasInvitedMembers: onboardingData.config.hasInvitedMembers, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } else { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/connection/postgres/PostgresForm.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/connection/postgres/PostgresForm.tsx index 945fe09f3a..ab6ee302a9 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/connection/postgres/PostgresForm.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/connection/postgres/PostgresForm.tsx @@ -3,7 +3,6 @@ import ButtonText from '@/components/ButtonText'; import { PasswordInput } from '@/components/PasswordComponent'; import Spinner from '@/components/Spinner'; import RequiredLabel from '@/components/labels/RequiredLabel'; -import { buildAccountOnboardingConfig } from '@/components/onboarding-checklist/OnboardingChecklist'; import PermissionsDialog from '@/components/permissions/PermissionsDialog'; import { useAccount } from '@/components/providers/account-provider'; import SkeletonForm from '@/components/skeleton/SkeletonForm'; @@ -42,26 +41,16 @@ import { PostgresFormValues, SSL_MODES, } from '@/yup-validations/connections'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { useMutation } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; -import { - CheckConnectionConfigResponse, - GetAccountOnboardingConfigResponse, -} from '@neosync/sdk'; +import { CheckConnectionConfigResponse } from '@neosync/sdk'; import { checkConnectionConfig, createConnection, - getAccountOnboardingConfig, getConnection, isConnectionNameAvailable, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; -import { useQueryClient } from '@tanstack/react-query'; import { useRouter, useSearchParams } from 'next/navigation'; import { usePostHog } from 'posthog-js/react'; import { ReactElement, useEffect, useState } from 'react'; @@ -76,15 +65,6 @@ export default function PostgresForm() { const { account } = useAccount(); const sourceConnId = searchParams.get('sourceId'); const [isLoading, setIsLoading] = useState(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id ?? '' }, - { enabled: !!account?.id } - ); - const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfigAsync } = useMutation( - setAccountOnboardingConfig - ); const { mutateAsync: isConnectionNameAvailableAsync } = useMutation( isConnectionNameAvailable ); @@ -165,61 +145,6 @@ export default function PostgresForm() { }); posthog.capture('New Connection Created', { type: 'postgres' }); toast.success('Successfully created connection!'); - - // updates the onboarding data - if (onboardingData?.config?.hasCreatedSourceConnection) { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: - onboardingData.config.hasCreatedSourceConnection, - hasCreatedDestinationConnection: true, - hasCreatedJob: onboardingData.config.hasCreatedJob, - hasInvitedMembers: onboardingData.config.hasInvitedMembers, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } else { - try { - const resp = await setOnboardingConfigAsync({ - accountId: account.id, - config: buildAccountOnboardingConfig({ - hasCreatedSourceConnection: true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedJob: onboardingData?.config?.hasCreatedJob ?? true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }), - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - const returnTo = searchParams.get('returnTo'); if (returnTo) { router.push(returnTo); diff --git a/frontend/apps/web/package.json b/frontend/apps/web/package.json index 9517ae883d..8b57d10900 100644 --- a/frontend/apps/web/package.json +++ b/frontend/apps/web/package.json @@ -30,7 +30,6 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-popover": "^1.1.1", - "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 17b4ed2017..7302834589 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -36,7 +36,6 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-popover": "^1.1.1", - "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", @@ -2711,29 +2710,6 @@ } } }, - "node_modules/@radix-ui/react-progress": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.0.tgz", - "integrity": "sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==", - "dependencies": { - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-radio-group": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz", From 9b9bc95afcf2e2e55db1deb36910b7d5535d6d39 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Fri, 16 Aug 2024 17:38:47 -0700 Subject: [PATCH 06/20] cleaning up jobs and members from account onboarding --- .../new/job/aigenerate/single/schema/page.tsx | 49 +--------------- .../new/job/generate/single/schema/page.tsx | 54 +----------------- .../(mgmt)/[account]/new/job/schema/page.tsx | 51 +---------------- .../(mgmt)/[account]/new/job/subset/page.tsx | 56 +------------------ 4 files changed, 6 insertions(+), 204 deletions(-) diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/job/aigenerate/single/schema/page.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/job/aigenerate/single/schema/page.tsx index 261c8c20d2..cc4ba1b2d3 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/job/aigenerate/single/schema/page.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/job/aigenerate/single/schema/page.tsx @@ -35,24 +35,16 @@ import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { getSingleOrUndefined } from '@/libs/utils'; import { getErrorMessage } from '@/util/util'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { useMutation, useQuery } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; -import { GetAccountOnboardingConfigResponse } from '@neosync/sdk'; import { createJob, - getAccountOnboardingConfig, getAiGeneratedData, getConnections, getConnectionSchemaMap, getConnectionTableConstraints, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; -import { useQueryClient } from '@tanstack/react-query'; import { ColumnDef } from '@tanstack/react-table'; import { useRouter } from 'next/navigation'; import { usePostHog } from 'posthog-js/react'; @@ -76,15 +68,6 @@ import { SampleRecord } from './types'; export default function Page({ searchParams }: PageProps): ReactElement { const { account } = useAccount(); const router = useRouter(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id }, - { enabled: !!account?.id } - ); - const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfig } = useMutation( - setAccountOnboardingConfig - ); const posthog = usePostHog(); const [aioutput, setaioutput] = useState([]); @@ -184,36 +167,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { clearNewJobSession(window.sessionStorage, sessionPrefix); - // updates the onboarding data - if (!onboardingData?.config?.hasCreatedJob) { - try { - const resp = await setOnboardingConfig({ - accountId: account.id, - config: { - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? true, - hasCreatedJob: true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }, - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - if (job.job?.id) { router.push(`/${account?.name}/jobs/${job.job.id}`); } else { diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/job/generate/single/schema/page.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/job/generate/single/schema/page.tsx index 5ebd3f555e..163c8c5ceb 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/job/generate/single/schema/page.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/job/generate/single/schema/page.tsx @@ -31,27 +31,17 @@ import { import { Input } from '@/components/ui/input'; import { getSingleOrUndefined } from '@/libs/utils'; import { getErrorMessage } from '@/util/util'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { useMutation, useQuery } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; -import { - GetAccountOnboardingConfigResponse, - ValidateJobMappingsResponse, -} from '@neosync/sdk'; +import { ValidateJobMappingsResponse } from '@neosync/sdk'; import { createJob, - getAccountOnboardingConfig, getConnections, getConnectionSchemaMap, getConnectionTableConstraints, - setAccountOnboardingConfig, validateJobMappings, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; -import { useQueryClient } from '@tanstack/react-query'; import { useRouter } from 'next/navigation'; import { usePostHog } from 'posthog-js/react'; import { ReactElement, useEffect, useMemo, useState } from 'react'; @@ -71,15 +61,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { const { account } = useAccount(); const router = useRouter(); const posthog = usePostHog(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id }, - { enabled: !!account?.id } - ); - const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfig } = useMutation( - setAccountOnboardingConfig - ); const [validateMappingsResponse, setValidateMappingsResponse] = useState< ValidateJobMappingsResponse | undefined @@ -181,37 +162,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { toast.success('Successfully created job!'); clearNewJobSession(window.sessionStorage, sessionPrefix); - - // updates the onboarding data - if (!onboardingData?.config?.hasCreatedJob) { - try { - const resp = await setOnboardingConfig({ - accountId: account.id, - config: { - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? true, - hasCreatedJob: true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }, - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - if (job.job?.id) { router.push(`/${account?.name}/jobs/${job.job.id}`); } else { diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx index f4373fa0cc..64b4d05af4 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/job/schema/page.tsx @@ -23,17 +23,12 @@ import { VirtualForeignConstraintFormValues, } from '@/yup-validations/jobs'; import { PartialMessage } from '@bufbuild/protobuf'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { useMutation, useQuery } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; import { Connection, DatabaseColumn, ForeignConstraintTables, - GetAccountOnboardingConfigResponse, GetConnectionSchemaMapRequest, GetConnectionSchemaMapsResponse, PrimaryConstraint, @@ -43,16 +38,13 @@ import { } from '@neosync/sdk'; import { createJob, - getAccountOnboardingConfig, getConnection, getConnections, getConnectionSchemaMap, getConnectionSchemaMaps, getConnectionTableConstraints, - setAccountOnboardingConfig, validateJobMappings, } from '@neosync/sdk/connectquery'; -import { useQueryClient } from '@tanstack/react-query'; import { useRouter } from 'next/navigation'; import { usePostHog } from 'posthog-js/react'; import { ReactElement, useCallback, useEffect, useMemo, useState } from 'react'; @@ -86,16 +78,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { const { account } = useAccount(); const router = useRouter(); const posthog = usePostHog(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id }, - { enabled: !!account?.id } - ); - const queryclient = useQueryClient(); - const { mutateAsync: setOnboardingConfig } = useMutation( - setAccountOnboardingConfig - ); - const [validateMappingsResponse, setValidateMappingsResponse] = useState< ValidateJobMappingsResponse | undefined >(); @@ -225,37 +207,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { clearNewJobSession(window.sessionStorage, sessionPrefix); - // updates the onboarding data - if (!onboardingData?.config?.hasCreatedJob) { - try { - const resp = await setOnboardingConfig({ - accountId: account.id, - config: { - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? - true, - hasCreatedJob: true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }, - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - if (job.job?.id) { router.push(`/${account?.name}/jobs/${job.job.id}`); } else { diff --git a/frontend/apps/web/app/(mgmt)/[account]/new/job/subset/page.tsx b/frontend/apps/web/app/(mgmt)/[account]/new/job/subset/page.tsx index 270f9c33c2..66855cdcd1 100644 --- a/frontend/apps/web/app/(mgmt)/[account]/new/job/subset/page.tsx +++ b/frontend/apps/web/app/(mgmt)/[account]/new/job/subset/page.tsx @@ -22,26 +22,15 @@ import { Separator } from '@/components/ui/separator'; import { getSingleOrUndefined } from '@/libs/utils'; import { getErrorMessage } from '@/util/util'; import { SchemaFormValues } from '@/yup-validations/jobs'; -import { - createConnectQueryKey, - useMutation, - useQuery, -} from '@connectrpc/connect-query'; +import { useMutation, useQuery } from '@connectrpc/connect-query'; import { yupResolver } from '@hookform/resolvers/yup'; -import { - ConnectionConfig, - GetAccountOnboardingConfigResponse, - JobMapping, -} from '@neosync/sdk'; +import { ConnectionConfig, JobMapping } from '@neosync/sdk'; import { createJob, - getAccountOnboardingConfig, getConnections, getConnectionTableConstraints, - setAccountOnboardingConfig, } from '@neosync/sdk/connectquery'; import { ExclamationTriangleIcon } from '@radix-ui/react-icons'; -import { useQueryClient } from '@tanstack/react-query'; import { useRouter } from 'next/navigation'; import { usePostHog } from 'posthog-js/react'; import { ReactElement, useEffect, useState } from 'react'; @@ -66,13 +55,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { const { account } = useAccount(); const router = useRouter(); const posthog = usePostHog(); - const { data: onboardingData } = useQuery( - getAccountOnboardingConfig, - { accountId: account?.id }, - { enabled: !!account?.id } - ); - const queryclient = useQueryClient(); - useEffect(() => { if (!searchParams?.sessionId) { router.push(`/${account?.name}/new/job`); @@ -85,10 +67,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { ); const connections = connectionsData?.connections ?? []; - const { mutateAsync: setOnboardingConfig } = useMutation( - setAccountOnboardingConfig - ); - const sessionPrefix = getSingleOrUndefined(searchParams?.sessionId) ?? ''; const sessionKeys = getNewJobSessionKeys(sessionPrefix); @@ -191,36 +169,6 @@ export default function Page({ searchParams }: PageProps): ReactElement { toast.success('Successfully created the job!'); clearNewJobSession(window.sessionStorage, sessionPrefix); - // updates the onboarding data - if (!onboardingData?.config?.hasCreatedJob) { - try { - const resp = await setOnboardingConfig({ - accountId: account.id, - config: { - hasCreatedSourceConnection: - onboardingData?.config?.hasCreatedSourceConnection ?? true, - hasCreatedDestinationConnection: - onboardingData?.config?.hasCreatedDestinationConnection ?? true, - hasCreatedJob: true, - hasInvitedMembers: - onboardingData?.config?.hasInvitedMembers ?? true, - }, - }); - queryclient.setQueryData( - createConnectQueryKey(getAccountOnboardingConfig, { - accountId: account.id, - }), - new GetAccountOnboardingConfigResponse({ - config: resp.config, - }) - ); - } catch (e) { - toast.error('Unable to update onboarding status!', { - description: getErrorMessage(e), - }); - } - } - if (job.job?.id) { router.push(`/${account?.name}/jobs/${job.job.id}`); } else { From d5df3de76da4b12cfe2cc01c079497b57692dd0a Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Fri, 16 Aug 2024 17:42:03 -0700 Subject: [PATCH 07/20] clean up progress --- frontend/apps/web/components/ui/progress.tsx | 28 -------------------- 1 file changed, 28 deletions(-) delete mode 100644 frontend/apps/web/components/ui/progress.tsx diff --git a/frontend/apps/web/components/ui/progress.tsx b/frontend/apps/web/components/ui/progress.tsx deleted file mode 100644 index 3756981788..0000000000 --- a/frontend/apps/web/components/ui/progress.tsx +++ /dev/null @@ -1,28 +0,0 @@ -'use client'; - -import * as React from 'react'; -import * as ProgressPrimitive from '@radix-ui/react-progress'; - -import { cn } from '@/libs/utils'; - -const Progress = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, value, ...props }, ref) => ( - - - -)); -Progress.displayName = ProgressPrimitive.Root.displayName; - -export { Progress }; From 119d9c1479aa0a1405f50883eaf24c2499708aa5 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Sat, 17 Aug 2024 21:48:44 -0700 Subject: [PATCH 08/20] updated connect and configure screens in onboarding modal --- .../onboarding-checklist/Configure.tsx | 99 +++++++++ .../onboarding-checklist/Connect.tsx | 76 +++++++ .../onboarding-checklist/ConnectDarkMode.tsx | 173 +++++++++++++++ .../{Welcome.tsx => ConnectLightMode.tsx} | 2 +- .../onboarding-checklist/Execute.tsx | 44 ++++ .../onboarding-checklist/WelcomeDarkMode.tsx | 206 ------------------ .../onboarding-checklist/WelcomeDialog.tsx | 20 +- .../onboarding-checklist/WelcomeOverview.tsx | 10 +- .../components/onboarding-checklist/hiw.tsx | 137 +++++++++--- frontend/apps/web/public/icons/AwsS3Icon.tsx | 25 +++ frontend/apps/web/public/icons/DynamoDB.tsx | 25 +++ frontend/apps/web/public/icons/GCSIcon.tsx | 39 ++++ frontend/apps/web/public/icons/Mysql.tsx | 28 +++ .../apps/web/public/icons/NeonGrayScale.tsx | 41 ++++ 14 files changed, 685 insertions(+), 240 deletions(-) create mode 100644 frontend/apps/web/components/onboarding-checklist/Configure.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/Connect.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/ConnectDarkMode.tsx rename frontend/apps/web/components/onboarding-checklist/{Welcome.tsx => ConnectLightMode.tsx} (99%) create mode 100644 frontend/apps/web/components/onboarding-checklist/Execute.tsx delete mode 100644 frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx create mode 100644 frontend/apps/web/public/icons/AwsS3Icon.tsx create mode 100644 frontend/apps/web/public/icons/DynamoDB.tsx create mode 100644 frontend/apps/web/public/icons/GCSIcon.tsx create mode 100644 frontend/apps/web/public/icons/Mysql.tsx create mode 100644 frontend/apps/web/public/icons/NeonGrayScale.tsx diff --git a/frontend/apps/web/components/onboarding-checklist/Configure.tsx b/frontend/apps/web/components/onboarding-checklist/Configure.tsx new file mode 100644 index 0000000000..fc8ef70a69 --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/Configure.tsx @@ -0,0 +1,99 @@ +import { ArrowRightIcon, CaretSortIcon } from '@radix-ui/react-icons'; +import { ReactElement } from 'react'; +import { Badge } from '../ui/badge'; +import { Button } from '../ui/button'; + +interface Props { + currentStep: number; + setCurrentStep: (val: number) => void; +} + +export default function Config(props: Props): ReactElement { + const { currentStep, setCurrentStep } = props; + + return ( +
+

Configure

+
+ +
+
public.users
+ + Primary Key + + + UUID + + +
+
+
public.users
+
+ + varchar(255) + + +
+
+
public.users
+ + Foreign Key + + + varchar(255) + + +
+
+
public.users
+
+ + varchar(255) + + +
+
+

+ Configure your schema, transformers and subsetting rules in order to + anonymize and generate data to sync to lower level environments. +

+
+ + +
+
+ ); +} + +interface TransformerSelectorProps { + text: string; +} + +function TransformerSelector(props: TransformerSelectorProps): ReactElement { + const { text } = props; + return ( +
+
+ {text}{' '} +
+
+ +
+
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/Connect.tsx b/frontend/apps/web/components/onboarding-checklist/Connect.tsx new file mode 100644 index 0000000000..2fc13ce2e8 --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/Connect.tsx @@ -0,0 +1,76 @@ +import { AwsS3Icon } from '@/public/icons/AwsS3Icon'; +import { DynamoDBIcon } from '@/public/icons/DynamoDB'; +import { NeonGrayScale } from '@/public/icons/NeonGrayScale'; +import { ArrowRightIcon } from '@radix-ui/react-icons'; +import { useTheme } from 'next-themes'; +import { ReactElement } from 'react'; +import { DiMongodb } from 'react-icons/di'; +import { + SiGooglecloudstorage, + SiMicrosoftsqlserver, + SiPostgresql, + SiSupabase, +} from 'react-icons/si'; +import { MysqlIcon } from '../../public/icons/Mysql'; +import { Button } from '../ui/button'; + +interface Props { + currentStep: number; + setCurrentStep: (val: number) => void; +} + +export default function Connect(props: Props): ReactElement { + const { currentStep, setCurrentStep } = props; + + const theme = useTheme(); + + console.log('themne', theme); + + const integrations = [ + { name: 'Postgres', icon: }, + { name: 'Mysql', icon: }, + { name: 'Mongo DB', icon: }, + { name: 'Dynamo DB', icon: }, + { name: 'SQL Server', icon: }, + { name: 'AWS S3', icon: }, + { name: 'GCS', icon: }, + { name: 'Supabase', icon: }, + { name: 'Neon', icon: }, + ]; + + return ( +
+

Connect

+
+ {integrations.map((item) => ( +
+ {item.icon} + {item.name} +
+ ))} +
+

+ Create Connections to your + upstream and downstream data sources. Neosync supports a variety of + databases and types of object storage. +

+
+ + +
+
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/ConnectDarkMode.tsx b/frontend/apps/web/components/onboarding-checklist/ConnectDarkMode.tsx new file mode 100644 index 0000000000..87657c919f --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/ConnectDarkMode.tsx @@ -0,0 +1,173 @@ +export const ConnectDarkMode = () => { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ); +}; diff --git a/frontend/apps/web/components/onboarding-checklist/Welcome.tsx b/frontend/apps/web/components/onboarding-checklist/ConnectLightMode.tsx similarity index 99% rename from frontend/apps/web/components/onboarding-checklist/Welcome.tsx rename to frontend/apps/web/components/onboarding-checklist/ConnectLightMode.tsx index 06235db9f5..9174ad94ec 100644 --- a/frontend/apps/web/components/onboarding-checklist/Welcome.tsx +++ b/frontend/apps/web/components/onboarding-checklist/ConnectLightMode.tsx @@ -1,4 +1,4 @@ -export const Welcome = () => { +export const ConnectLightMode = () => { return (
void; +} + +export default function Execute(props: Props): ReactElement { + const { currentStep, setCurrentStep } = props; + const theme = useTheme(); + + return ( +
+

How it works

+ {theme.resolvedTheme == 'light' ? ( + + ) : ( + + )} +

+ Now that you have an idea of Neosync works, click{' '} + Next to create a Job. +

+
+ + +
+
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx deleted file mode 100644 index a38ef9b08b..0000000000 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDarkMode.tsx +++ /dev/null @@ -1,206 +0,0 @@ -export const WelcomeDarkMode = () => { - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -}; diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx index d08fb445fb..c08dc9fea4 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx @@ -17,7 +17,9 @@ import { ReactElement, useEffect, useState } from 'react'; import { toast } from 'sonner'; import { useAccount } from '../providers/account-provider'; import { Skeleton } from '../ui/skeleton'; -import HowItWorks from './HowItWorks'; +import Configure from './Configure'; +import Connect from './Connect'; +import Execute from './Execute'; import StepProgress from './StepProgress'; import WelcomeOverview from './WelcomeOverview'; import WelcomeRouter from './WelcomeRouter'; @@ -61,9 +63,21 @@ export default function WelcomeDialog(): ReactElement { ), }, { - name: 'how-it-works', + name: 'connect', component: ( - + + ), + }, + { + name: 'configure', + component: ( + + ), + }, + { + name: 'execute', + component: ( + ), }, { diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx index bd0f1b80e2..4b00260990 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeOverview.tsx @@ -2,8 +2,8 @@ import { ArrowRightIcon } from '@radix-ui/react-icons'; import { useTheme } from 'next-themes'; import { ReactElement } from 'react'; import { Button } from '../ui/button'; -import { Welcome } from './Welcome'; -import { WelcomeDarkMode } from './WelcomeDarkMode'; +import { ConnectDarkMode } from './ConnectDarkMode'; +import { ConnectLightMode } from './ConnectLightMode'; interface Props { currentStep: number; @@ -19,7 +19,11 @@ export default function WelcomeOverview(props: Props): ReactElement { return (

Welcome to Neosync

- {theme.resolvedTheme == 'light' ? : } + {theme.resolvedTheme == 'light' ? ( + + ) : ( + + )}

Neosync makes it easy to anonymize sensitive data, generate synthetic data and sync data across environments. Click{' '} diff --git a/frontend/apps/web/components/onboarding-checklist/hiw.tsx b/frontend/apps/web/components/onboarding-checklist/hiw.tsx index 3fe623f83c..5171dea599 100644 --- a/frontend/apps/web/components/onboarding-checklist/hiw.tsx +++ b/frontend/apps/web/components/onboarding-checklist/hiw.tsx @@ -2,52 +2,135 @@ export const HowItWorksImage = () => { return (

+ + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
); diff --git a/frontend/apps/web/public/icons/AwsS3Icon.tsx b/frontend/apps/web/public/icons/AwsS3Icon.tsx new file mode 100644 index 0000000000..a259b20daf --- /dev/null +++ b/frontend/apps/web/public/icons/AwsS3Icon.tsx @@ -0,0 +1,25 @@ +interface Props { + theme: string | undefined; +} + +export const AwsS3Icon = (props: Props) => { + const { theme } = props; + return ( +
+ + + +
+ ); +}; diff --git a/frontend/apps/web/public/icons/DynamoDB.tsx b/frontend/apps/web/public/icons/DynamoDB.tsx new file mode 100644 index 0000000000..bc34ef5535 --- /dev/null +++ b/frontend/apps/web/public/icons/DynamoDB.tsx @@ -0,0 +1,25 @@ +interface Props { + theme: string | undefined; +} + +export const DynamoDBIcon = (props: Props) => { + const { theme } = props; + return ( +
+ + + +
+ ); +}; diff --git a/frontend/apps/web/public/icons/GCSIcon.tsx b/frontend/apps/web/public/icons/GCSIcon.tsx new file mode 100644 index 0000000000..95079c92d1 --- /dev/null +++ b/frontend/apps/web/public/icons/GCSIcon.tsx @@ -0,0 +1,39 @@ +export const GCSIcon = () => { + return ( +
+ + + + + + + +
+ ); +}; diff --git a/frontend/apps/web/public/icons/Mysql.tsx b/frontend/apps/web/public/icons/Mysql.tsx new file mode 100644 index 0000000000..69fe991097 --- /dev/null +++ b/frontend/apps/web/public/icons/Mysql.tsx @@ -0,0 +1,28 @@ +interface Props { + theme: string | undefined; +} + +export const MysqlIcon = (props: Props) => { + const { theme } = props; + return ( +
+ + + + +
+ ); +}; diff --git a/frontend/apps/web/public/icons/NeonGrayScale.tsx b/frontend/apps/web/public/icons/NeonGrayScale.tsx new file mode 100644 index 0000000000..5addf62502 --- /dev/null +++ b/frontend/apps/web/public/icons/NeonGrayScale.tsx @@ -0,0 +1,41 @@ +interface Props { + theme: string | undefined; +} + +export const NeonGrayScale = (props: Props) => { + const { theme } = props; + return ( +
+ + + + + + +
+ ); +}; From 6ba639a26e7185272874f570a65e5bded5b86b24 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Sun, 18 Aug 2024 19:36:32 -0700 Subject: [PATCH 09/20] updated sync page --- .../onboarding-checklist/Configure.tsx | 45 +++--- .../onboarding-checklist/Connect.tsx | 11 +- .../onboarding-checklist/Execute.tsx | 44 ------ .../onboarding-checklist/HowItWorks.tsx | 44 ------ .../components/onboarding-checklist/Sync.tsx | 75 ++++++++++ .../onboarding-checklist/WelcomeDialog.tsx | 4 +- .../components/onboarding-checklist/hiw.tsx | 137 ------------------ 7 files changed, 106 insertions(+), 254 deletions(-) delete mode 100644 frontend/apps/web/components/onboarding-checklist/Execute.tsx delete mode 100644 frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx create mode 100644 frontend/apps/web/components/onboarding-checklist/Sync.tsx delete mode 100644 frontend/apps/web/components/onboarding-checklist/hiw.tsx diff --git a/frontend/apps/web/components/onboarding-checklist/Configure.tsx b/frontend/apps/web/components/onboarding-checklist/Configure.tsx index fc8ef70a69..f54c13a726 100644 --- a/frontend/apps/web/components/onboarding-checklist/Configure.tsx +++ b/frontend/apps/web/components/onboarding-checklist/Configure.tsx @@ -14,54 +14,55 @@ export default function Config(props: Props): ReactElement { return (

Configure

-
+

+ Configure your schema, transformers and subsetting rules in order to + anonymize and generate data to sync to lower level environments. +

+
-
public.users
+
id
Primary Key UUID - +
-
public.users
+
first_name
varchar(255) - +
-
public.users
- - Foreign Key - +
last_name
+
varchar(255) - +
-
public.users
-
+
email
+ + + Foreign Key + varchar(255) - +
-

- Configure your schema, transformers and subsetting rules in order to - anonymize and generate data to sync to lower level environments. -

- -
-
- ); -} diff --git a/frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx b/frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx deleted file mode 100644 index cd3f9c0db4..0000000000 --- a/frontend/apps/web/components/onboarding-checklist/HowItWorks.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { ArrowRightIcon } from '@radix-ui/react-icons'; -import { useTheme } from 'next-themes'; -import { ReactElement } from 'react'; -import { Button } from '../ui/button'; -import { HowItWorksImage } from './hiw'; - -interface Props { - currentStep: number; - setCurrentStep: (val: number) => void; -} - -export default function HowItWorks(props: Props): ReactElement { - const { currentStep, setCurrentStep } = props; - const theme = useTheme(); - - return ( -
-

How it works

- {theme.resolvedTheme == 'light' ? ( - - ) : ( - - )} -

- Now that you have an idea of Neosync works, click{' '} - Next to create a Job. -

-
- - -
-
- ); -} diff --git a/frontend/apps/web/components/onboarding-checklist/Sync.tsx b/frontend/apps/web/components/onboarding-checklist/Sync.tsx new file mode 100644 index 0000000000..a06f94522b --- /dev/null +++ b/frontend/apps/web/components/onboarding-checklist/Sync.tsx @@ -0,0 +1,75 @@ +import { ArrowRightIcon, CheckIcon } from '@radix-ui/react-icons'; +import { useTheme } from 'next-themes'; +import { ReactElement } from 'react'; +import { Badge } from '../ui/badge'; +import { Button } from '../ui/button'; +import { Input } from '../ui/input'; + +interface Props { + currentStep: number; + setCurrentStep: (val: number) => void; +} + +export default function Sync(props: Props): ReactElement { + const { currentStep, setCurrentStep } = props; + const theme = useTheme(); + + return ( +
+

Sync

+

+ Run your job on a set schedule or run it ad-hoc whenever you'd like. Now + that you have an idea of Neosync works, click{' '} + Next to create a Job. +

+ {/* {theme.resolvedTheme == 'light' ? ( + + ) : ( + + )} */} +
+
+

Schedule

+ +
+
+

Job Runs

+
+ +
+
sync-prod
+
08/14/2024 12:15:54 PM
+
08/14/2024 12:16:00 PM
+ +

Complete

+
+
+
+
+
+
+ + +
+
+ ); +} diff --git a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx index c08dc9fea4..2aa9306a9d 100644 --- a/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx +++ b/frontend/apps/web/components/onboarding-checklist/WelcomeDialog.tsx @@ -19,8 +19,8 @@ import { useAccount } from '../providers/account-provider'; import { Skeleton } from '../ui/skeleton'; import Configure from './Configure'; import Connect from './Connect'; -import Execute from './Execute'; import StepProgress from './StepProgress'; +import Sync from './Sync'; import WelcomeOverview from './WelcomeOverview'; import WelcomeRouter from './WelcomeRouter'; @@ -77,7 +77,7 @@ export default function WelcomeDialog(): ReactElement { { name: 'execute', component: ( - + ), }, { diff --git a/frontend/apps/web/components/onboarding-checklist/hiw.tsx b/frontend/apps/web/components/onboarding-checklist/hiw.tsx deleted file mode 100644 index 5171dea599..0000000000 --- a/frontend/apps/web/components/onboarding-checklist/hiw.tsx +++ /dev/null @@ -1,137 +0,0 @@ -export const HowItWorksImage = () => { - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -}; From e0dcf141370d4ddb486f29a94e2fbe2939851121 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Sun, 18 Aug 2024 20:00:07 -0700 Subject: [PATCH 10/20] clean up --- .../apps/web/components/onboarding-checklist/Sync.tsx | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/frontend/apps/web/components/onboarding-checklist/Sync.tsx b/frontend/apps/web/components/onboarding-checklist/Sync.tsx index a06f94522b..55fcde3187 100644 --- a/frontend/apps/web/components/onboarding-checklist/Sync.tsx +++ b/frontend/apps/web/components/onboarding-checklist/Sync.tsx @@ -1,5 +1,4 @@ import { ArrowRightIcon, CheckIcon } from '@radix-ui/react-icons'; -import { useTheme } from 'next-themes'; import { ReactElement } from 'react'; import { Badge } from '../ui/badge'; import { Button } from '../ui/button'; @@ -12,21 +11,15 @@ interface Props { export default function Sync(props: Props): ReactElement { const { currentStep, setCurrentStep } = props; - const theme = useTheme(); return (

Sync

- Run your job on a set schedule or run it ad-hoc whenever you'd like. Now - that you have an idea of Neosync works, click{' '} + Run your job on a set schedule or run it ad-hoc whenever you'd + like. Now that you have an idea of Neosync works, click{' '} Next to create a Job.

- {/* {theme.resolvedTheme == 'light' ? ( - - ) : ( - - )} */}

Schedule

From 83671311240c0abbce37267847df75fe9ba13806 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Sun, 18 Aug 2024 20:04:07 -0700 Subject: [PATCH 11/20] clean up knip --- frontend/apps/web/public/icons/GCSIcon.tsx | 39 ---------------------- 1 file changed, 39 deletions(-) delete mode 100644 frontend/apps/web/public/icons/GCSIcon.tsx diff --git a/frontend/apps/web/public/icons/GCSIcon.tsx b/frontend/apps/web/public/icons/GCSIcon.tsx deleted file mode 100644 index 95079c92d1..0000000000 --- a/frontend/apps/web/public/icons/GCSIcon.tsx +++ /dev/null @@ -1,39 +0,0 @@ -export const GCSIcon = () => { - return ( -
- - - - - - - -
- ); -}; From b4f94234334b245dd0b5a984c926355e886658bd Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Mon, 30 Sep 2024 16:27:06 -0700 Subject: [PATCH 12/20] add usage metrics to top nav --- .../apps/web/components/SupportDrawer.tsx | 4 +- .../onboarding-checklist/Configure.tsx | 2 +- .../site-header/RecordsProgressBar copy.tsx | 0 .../site-header/RecordsProgressBar.tsx | 82 +++++++++++++++++++ .../web/components/site-header/SiteHeader.tsx | 22 +++-- frontend/apps/web/components/ui/progress.tsx | 28 +++++++ frontend/apps/web/package.json | 1 + 7 files changed, 131 insertions(+), 8 deletions(-) create mode 100644 frontend/apps/web/components/site-header/RecordsProgressBar copy.tsx create mode 100644 frontend/apps/web/components/site-header/RecordsProgressBar.tsx create mode 100644 frontend/apps/web/components/ui/progress.tsx diff --git a/frontend/apps/web/components/SupportDrawer.tsx b/frontend/apps/web/components/SupportDrawer.tsx index ee57b74b94..1172f5304e 100644 --- a/frontend/apps/web/components/SupportDrawer.tsx +++ b/frontend/apps/web/components/SupportDrawer.tsx @@ -1,7 +1,7 @@ import { siteConfig } from '@/app/config/site'; import { + ArrowTopRightIcon, DiscordLogoIcon, - ExternalLinkIcon, GitHubLogoIcon, } from '@radix-ui/react-icons'; import Link from 'next/link'; @@ -48,7 +48,7 @@ export default function SupportDrawer(): ReactElement {
{link.description}
- +
))} diff --git a/frontend/apps/web/components/onboarding-checklist/Configure.tsx b/frontend/apps/web/components/onboarding-checklist/Configure.tsx index f54c13a726..356534dfca 100644 --- a/frontend/apps/web/components/onboarding-checklist/Configure.tsx +++ b/frontend/apps/web/components/onboarding-checklist/Configure.tsx @@ -15,7 +15,7 @@ export default function Config(props: Props): ReactElement {

Configure

- Configure your schema, transformers and subsetting rules in order to + Configure your Schema, Transformers and Subsetting rules in order to anonymize and generate data to sync to lower level environments.

diff --git a/frontend/apps/web/components/site-header/RecordsProgressBar copy.tsx b/frontend/apps/web/components/site-header/RecordsProgressBar copy.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx new file mode 100644 index 0000000000..aebe772554 --- /dev/null +++ b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx @@ -0,0 +1,82 @@ +'use client'; +import { cn } from '@/libs/utils'; +import { useQuery } from '@connectrpc/connect-query'; +import { RangedMetricName } from '@neosync/sdk'; +import { getMetricCount } from '@neosync/sdk/connectquery'; +import { useRouter } from 'next/navigation'; +import { ReactElement, useState } from 'react'; +import { Button } from '../ui/button'; +import { Progress } from '../ui/progress'; +import { Skeleton } from '../ui/skeleton'; +import { dateToNeoDate, periodToDateRange, UsagePeriod } from '../usage/util'; + +interface Props { + identifier: string; +} + +export default function RecordsProgressBar(props: Props): ReactElement { + const { identifier } = props; + const [period, _] = useState('current'); + const metric = RangedMetricName.INPUT_RECEIVED; + const idtype = 'accountId'; + + const router = useRouter(); + + const [start, end] = periodToDateRange(period); + + const { data: metricCountData, isLoading } = useQuery( + getMetricCount, + { + metric, + startDay: dateToNeoDate(start), + endDay: dateToNeoDate(end), + identifier: + idtype === 'accountId' + ? { case: 'accountId', value: identifier } + : idtype === 'jobId' + ? { case: 'jobId', value: identifier } + : idtype === 'runId' + ? { case: 'runId', value: identifier } + : undefined, + }, + { + enabled: !!metric && !!identifier && !!idtype && !!period, + } + ); + + const formatNumber = (num: number): string => { + const browserLanguages = navigator.languages; + const formatter = new Intl.NumberFormat(browserLanguages, { + notation: 'compact', + compactDisplay: 'short', + maximumFractionDigits: 1, + }); + return formatter.format(num); + }; + + if (isLoading) { + return ; + } + + const count = + metricCountData?.count !== undefined ? Number(metricCountData.count) : 0; + + const totalRecords = 20000; + const percentageUsed = (count / totalRecords) * 100; + + return ( + + ); +} diff --git a/frontend/apps/web/components/site-header/SiteHeader.tsx b/frontend/apps/web/components/site-header/SiteHeader.tsx index cf7440c639..0ec461c894 100644 --- a/frontend/apps/web/components/site-header/SiteHeader.tsx +++ b/frontend/apps/web/components/site-header/SiteHeader.tsx @@ -1,3 +1,4 @@ +'use client'; import { getSystemAppConfig } from '@/app/api/config/config'; import { Button } from '@/components/ui/button'; import { @@ -10,31 +11,42 @@ import { SheetTitle, SheetTrigger, } from '@/components/ui/sheet'; +import { UserAccountType } from '@neosync/sdk'; import { QuestionMarkCircledIcon } from '@radix-ui/react-icons'; import { ReactElement } from 'react'; +import { useAccount } from '../providers/account-provider'; import SupportDrawer from '../SupportDrawer'; import AccountSwitcher from './AccountSwitcher'; import { MainNav } from './MainNav'; import { MobileNav } from './MobileNav'; import { ModeToggle } from './ModeToggle'; import NeosyncVersion from './NeosyncVersion'; +import RecordsProgressBar from './RecordsProgressBar'; import Upgrade from './Upgrade'; import { UserNav } from './UserNav'; export default function SiteHeader(): ReactElement { const systemAppConfig = getSystemAppConfig(); + const { account } = useAccount(); + return (
- + {!systemAppConfig.isNeosyncCloud && + account?.type == UserAccountType.PERSONAL && ( + + )} + {systemAppConfig.isAuthEnabled && ( + + )} + {!systemAppConfig.isAuthEnabled && } - {systemAppConfig.isAuthEnabled && }
diff --git a/frontend/apps/web/components/ui/progress.tsx b/frontend/apps/web/components/ui/progress.tsx new file mode 100644 index 0000000000..497a4b590c --- /dev/null +++ b/frontend/apps/web/components/ui/progress.tsx @@ -0,0 +1,28 @@ +"use client" + +import * as React from "react" +import * as ProgressPrimitive from "@radix-ui/react-progress" + +import { cn } from "@/libs/utils" + +const Progress = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, value, ...props }, ref) => ( + + + +)) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } diff --git a/frontend/apps/web/package.json b/frontend/apps/web/package.json index 8b57d10900..9517ae883d 100644 --- a/frontend/apps/web/package.json +++ b/frontend/apps/web/package.json @@ -30,6 +30,7 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-popover": "^1.1.1", + "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", From cd01b68883ac043446afc036294dee320a597dcd Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Mon, 30 Sep 2024 17:16:35 -0700 Subject: [PATCH 13/20] clean up --- .../onboarding-checklist/Connect.tsx | 2 -- .../site-header/RecordsProgressBar copy.tsx | 0 frontend/package-lock.json | 24 +++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) delete mode 100644 frontend/apps/web/components/site-header/RecordsProgressBar copy.tsx diff --git a/frontend/apps/web/components/onboarding-checklist/Connect.tsx b/frontend/apps/web/components/onboarding-checklist/Connect.tsx index 07dc68e01d..7c7ed0bedc 100644 --- a/frontend/apps/web/components/onboarding-checklist/Connect.tsx +++ b/frontend/apps/web/components/onboarding-checklist/Connect.tsx @@ -24,8 +24,6 @@ export default function Connect(props: Props): ReactElement { const theme = useTheme(); - console.log('themne', theme); - const integrations = [ { name: 'Postgres', icon: }, { name: 'Mysql', icon: }, diff --git a/frontend/apps/web/components/site-header/RecordsProgressBar copy.tsx b/frontend/apps/web/components/site-header/RecordsProgressBar copy.tsx deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7302834589..17b4ed2017 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -36,6 +36,7 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-popover": "^1.1.1", + "@radix-ui/react-progress": "^1.1.0", "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", @@ -2710,6 +2711,29 @@ } } }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.0.tgz", + "integrity": "sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==", + "dependencies": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-radio-group": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz", From c844c2ceacdd66aa0084566e65406e502dd128d1 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Mon, 30 Sep 2024 17:32:14 -0700 Subject: [PATCH 14/20] prettier --- frontend/apps/web/components/ui/progress.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/apps/web/components/ui/progress.tsx b/frontend/apps/web/components/ui/progress.tsx index 497a4b590c..3756981788 100644 --- a/frontend/apps/web/components/ui/progress.tsx +++ b/frontend/apps/web/components/ui/progress.tsx @@ -1,9 +1,9 @@ -"use client" +'use client'; -import * as React from "react" -import * as ProgressPrimitive from "@radix-ui/react-progress" +import * as React from 'react'; +import * as ProgressPrimitive from '@radix-ui/react-progress'; -import { cn } from "@/libs/utils" +import { cn } from '@/libs/utils'; const Progress = React.forwardRef< React.ElementRef, @@ -12,7 +12,7 @@ const Progress = React.forwardRef< -)) -Progress.displayName = ProgressPrimitive.Root.displayName +)); +Progress.displayName = ProgressPrimitive.Root.displayName; -export { Progress } +export { Progress }; From 843e662074b957759585b6b244c7d06a53486974 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Tue, 1 Oct 2024 11:02:49 -0700 Subject: [PATCH 15/20] creates recordsprogressbar wrapper --- .../site-header/AccountsRecordProgress.tsx | 15 +++++++++++++++ .../components/site-header/RecordsProgressBar.tsx | 4 ++-- .../web/components/site-header/SiteHeader.tsx | 14 ++++---------- 3 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 frontend/apps/web/components/site-header/AccountsRecordProgress.tsx diff --git a/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx b/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx new file mode 100644 index 0000000000..b3300c36e7 --- /dev/null +++ b/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx @@ -0,0 +1,15 @@ +import { UserAccountType } from '@neosync/sdk'; +import { ReactElement } from 'react'; +import { useAccount } from '../providers/account-provider'; +import RecordsProgressBar from './RecordsProgressBar'; + +export default function AccountsRecordProgress(): ReactElement | null { + const { account } = useAccount(); + const idtype = 'accountId'; + + if (account?.type === UserAccountType.PERSONAL) { + return ; + } + + return null; +} diff --git a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx index aebe772554..51182fd59a 100644 --- a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx +++ b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx @@ -12,13 +12,13 @@ import { dateToNeoDate, periodToDateRange, UsagePeriod } from '../usage/util'; interface Props { identifier: string; + idtype: string; } export default function RecordsProgressBar(props: Props): ReactElement { - const { identifier } = props; + const { identifier, idtype } = props; const [period, _] = useState('current'); const metric = RangedMetricName.INPUT_RECEIVED; - const idtype = 'accountId'; const router = useRouter(); diff --git a/frontend/apps/web/components/site-header/SiteHeader.tsx b/frontend/apps/web/components/site-header/SiteHeader.tsx index 0ec461c894..08ebf3dc3f 100644 --- a/frontend/apps/web/components/site-header/SiteHeader.tsx +++ b/frontend/apps/web/components/site-header/SiteHeader.tsx @@ -11,23 +11,20 @@ import { SheetTitle, SheetTrigger, } from '@/components/ui/sheet'; -import { UserAccountType } from '@neosync/sdk'; import { QuestionMarkCircledIcon } from '@radix-ui/react-icons'; import { ReactElement } from 'react'; -import { useAccount } from '../providers/account-provider'; import SupportDrawer from '../SupportDrawer'; +import AccountsRecordProgress from './AccountsRecordProgress'; import AccountSwitcher from './AccountSwitcher'; import { MainNav } from './MainNav'; import { MobileNav } from './MobileNav'; import { ModeToggle } from './ModeToggle'; import NeosyncVersion from './NeosyncVersion'; -import RecordsProgressBar from './RecordsProgressBar'; import Upgrade from './Upgrade'; import { UserNav } from './UserNav'; export default function SiteHeader(): ReactElement { const systemAppConfig = getSystemAppConfig(); - const { account } = useAccount(); return (
@@ -35,17 +32,14 @@ export default function SiteHeader(): ReactElement {
- {!systemAppConfig.isNeosyncCloud && - account?.type == UserAccountType.PERSONAL && ( - - )} - {systemAppConfig.isAuthEnabled && ( + {systemAppConfig.isNeosyncCloud && } + {systemAppConfig.isNeosyncCloud && ( )} - {!systemAppConfig.isAuthEnabled && } + {systemAppConfig.isAuthEnabled && } From d07bf08096ed4a930d8c4d096f0fbb69953747b0 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Tue, 1 Oct 2024 11:59:24 -0700 Subject: [PATCH 16/20] updates form logic --- .../onboarding-checklist/Configure.tsx | 14 +-- .../onboarding-checklist/Connect.tsx | 14 +-- .../onboarding-checklist/StepProgress.tsx | 11 ++- .../components/onboarding-checklist/Sync.tsx | 14 +-- .../onboarding-checklist/WelcomeDialog.tsx | 99 ++++++++++++++----- .../onboarding-checklist/WelcomeOverview.tsx | 7 +- .../onboarding-checklist/WelcomeRouter.tsx | 24 ++--- .../site-header/AccountsRecordProgress.tsx | 1 + .../web/components/site-header/SiteHeader.tsx | 11 +-- 9 files changed, 117 insertions(+), 78 deletions(-) diff --git a/frontend/apps/web/components/onboarding-checklist/Configure.tsx b/frontend/apps/web/components/onboarding-checklist/Configure.tsx index 356534dfca..aca0ab5703 100644 --- a/frontend/apps/web/components/onboarding-checklist/Configure.tsx +++ b/frontend/apps/web/components/onboarding-checklist/Configure.tsx @@ -4,12 +4,12 @@ import { Badge } from '../ui/badge'; import { Button } from '../ui/button'; interface Props { - currentStep: number; - setCurrentStep: (val: number) => void; + onNextStep: () => void; + onPreviousStep: () => void; } export default function Config(props: Props): ReactElement { - const { currentStep, setCurrentStep } = props; + const { onNextStep, onPreviousStep } = props; return (
@@ -64,14 +64,10 @@ export default function Config(props: Props): ReactElement {
- -
- - - -
-
diff --git a/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx b/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx index b3300c36e7..f1f9b6ebcf 100644 --- a/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx +++ b/frontend/apps/web/components/site-header/AccountsRecordProgress.tsx @@ -1,3 +1,4 @@ +'use client'; import { UserAccountType } from '@neosync/sdk'; import { ReactElement } from 'react'; import { useAccount } from '../providers/account-provider'; diff --git a/frontend/apps/web/components/site-header/SiteHeader.tsx b/frontend/apps/web/components/site-header/SiteHeader.tsx index 08ebf3dc3f..01ea3e2b56 100644 --- a/frontend/apps/web/components/site-header/SiteHeader.tsx +++ b/frontend/apps/web/components/site-header/SiteHeader.tsx @@ -1,4 +1,3 @@ -'use client'; import { getSystemAppConfig } from '@/app/api/config/config'; import { Button } from '@/components/ui/button'; import { @@ -33,12 +32,10 @@ export default function SiteHeader(): ReactElement {
{systemAppConfig.isNeosyncCloud && } - {systemAppConfig.isNeosyncCloud && ( - - )} + {systemAppConfig.isAuthEnabled && } From c50bf976510732665ce4564ae40b82dfa1005d02 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Tue, 1 Oct 2024 13:05:08 -0700 Subject: [PATCH 17/20] updated protos and test for user account service + some front end type safety --- .../protos/mgmt/v1alpha1/user_account.proto | 11 +++- .../user-account-service_integration_test.go | 20 ++------ docs/protos/data/proto_docs.json | 50 ++++++++++++++++++- .../site-header/RecordsProgressBar.tsx | 13 ++++- .../client/mgmt/v1alpha1/user_account_pb.ts | 38 +++++++++++++- 5 files changed, 110 insertions(+), 22 deletions(-) diff --git a/backend/protos/mgmt/v1alpha1/user_account.proto b/backend/protos/mgmt/v1alpha1/user_account.proto index be3ef156c8..57d3b76b93 100644 --- a/backend/protos/mgmt/v1alpha1/user_account.proto +++ b/backend/protos/mgmt/v1alpha1/user_account.proto @@ -186,7 +186,16 @@ message SetAccountOnboardingConfigResponse { } message AccountOnboardingConfig { - bool has_completed_onboarding = 1; + // @deprecated - use has_completed_onboarding + bool has_created_source_connection = 1; + // @deprecated - use has_completed_onboarding + bool has_created_destination_connection = 2; + // @deprecated - use has_completed_onboarding + bool has_created_job = 3; + // @deprecated - use has_completed_onboarding + bool has_invited_members = 4; + // @deprecated - use has_completed_onboarding + bool has_completed_onboarding = 5; } message GetAccountStatusRequest { diff --git a/backend/services/mgmt/v1alpha1/integration_tests/user-account-service_integration_test.go b/backend/services/mgmt/v1alpha1/integration_tests/user-account-service_integration_test.go index 6169d1c3e2..33572e71e0 100644 --- a/backend/services/mgmt/v1alpha1/integration_tests/user-account-service_integration_test.go +++ b/backend/services/mgmt/v1alpha1/integration_tests/user-account-service_integration_test.go @@ -36,10 +36,7 @@ func (s *IntegrationTestSuite) Test_UserAccountService_GetAccountOnboardingConfi onboardingConfig := resp.Msg.GetConfig() require.NotNil(s.T(), onboardingConfig) - require.False(s.T(), onboardingConfig.GetHasCreatedSourceConnection()) - require.False(s.T(), onboardingConfig.GetHasCreatedDestinationConnection()) - require.False(s.T(), onboardingConfig.GetHasCreatedJob()) - require.False(s.T(), onboardingConfig.GetHasInvitedMembers()) + require.False(s.T(), onboardingConfig.GetHasCompletedOnboarding()) } func (s *IntegrationTestSuite) Test_UserAccountService_GetAccountOnboardingConfig_NoAccount() { @@ -62,10 +59,7 @@ func (s *IntegrationTestSuite) Test_UserAccountService_SetAccountOnboardingConfi onboardingConfig := resp.Msg.GetConfig() require.NotNil(s.T(), onboardingConfig) - require.False(s.T(), onboardingConfig.GetHasCreatedSourceConnection()) - require.False(s.T(), onboardingConfig.GetHasCreatedDestinationConnection()) - require.False(s.T(), onboardingConfig.GetHasCreatedJob()) - require.False(s.T(), onboardingConfig.GetHasInvitedMembers()) + require.False(s.T(), onboardingConfig.GetHasCompletedOnboarding()) } func (s *IntegrationTestSuite) Test_UserAccountService_SetAccountOnboardingConfig() { @@ -73,10 +67,7 @@ func (s *IntegrationTestSuite) Test_UserAccountService_SetAccountOnboardingConfi resp, err := s.unauthdClients.users.SetAccountOnboardingConfig(s.ctx, connect.NewRequest(&mgmtv1alpha1.SetAccountOnboardingConfigRequest{ AccountId: accountId, Config: &mgmtv1alpha1.AccountOnboardingConfig{ - HasCreatedSourceConnection: true, - HasCreatedDestinationConnection: true, - HasCreatedJob: true, - HasInvitedMembers: true, + HasCompletedOnboarding: true, }}, )) requireNoErrResp(s.T(), resp, err) @@ -84,10 +75,7 @@ func (s *IntegrationTestSuite) Test_UserAccountService_SetAccountOnboardingConfi onboardingConfig := resp.Msg.GetConfig() require.NotNil(s.T(), onboardingConfig) - require.True(s.T(), onboardingConfig.GetHasCreatedSourceConnection()) - require.True(s.T(), onboardingConfig.GetHasCreatedDestinationConnection()) - require.True(s.T(), onboardingConfig.GetHasCreatedJob()) - require.True(s.T(), onboardingConfig.GetHasInvitedMembers()) + require.True(s.T(), onboardingConfig.GetHasCompletedOnboarding()) } var ( diff --git a/docs/protos/data/proto_docs.json b/docs/protos/data/proto_docs.json index 1ed86fbf77..afca570012 100644 --- a/docs/protos/data/proto_docs.json +++ b/docs/protos/data/proto_docs.json @@ -13755,9 +13755,57 @@ "hasOneofs": false, "extensions": [], "fields": [ + { + "name": "has_created_source_connection", + "description": "@deprecated - use has_completed_onboarding", + "label": "", + "type": "bool", + "longType": "bool", + "fullType": "bool", + "ismap": false, + "isoneof": false, + "oneofdecl": "", + "defaultValue": "" + }, + { + "name": "has_created_destination_connection", + "description": "@deprecated - use has_completed_onboarding", + "label": "", + "type": "bool", + "longType": "bool", + "fullType": "bool", + "ismap": false, + "isoneof": false, + "oneofdecl": "", + "defaultValue": "" + }, + { + "name": "has_created_job", + "description": "@deprecated - use has_completed_onboarding", + "label": "", + "type": "bool", + "longType": "bool", + "fullType": "bool", + "ismap": false, + "isoneof": false, + "oneofdecl": "", + "defaultValue": "" + }, + { + "name": "has_invited_members", + "description": "@deprecated - use has_completed_onboarding", + "label": "", + "type": "bool", + "longType": "bool", + "fullType": "bool", + "ismap": false, + "isoneof": false, + "oneofdecl": "", + "defaultValue": "" + }, { "name": "has_completed_onboarding", - "description": "", + "description": "@deprecated - use has_completed_onboarding", "label": "", "type": "bool", "longType": "bool", diff --git a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx index 51182fd59a..5ca536ccd5 100644 --- a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx +++ b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx @@ -1,7 +1,7 @@ 'use client'; import { cn } from '@/libs/utils'; import { useQuery } from '@connectrpc/connect-query'; -import { RangedMetricName } from '@neosync/sdk'; +import { GetMetricCountRequest, RangedMetricName } from '@neosync/sdk'; import { getMetricCount } from '@neosync/sdk/connectquery'; import { useRouter } from 'next/navigation'; import { ReactElement, useState } from 'react'; @@ -12,7 +12,7 @@ import { dateToNeoDate, periodToDateRange, UsagePeriod } from '../usage/util'; interface Props { identifier: string; - idtype: string; + idtype: MetricsIdentifierCase; } export default function RecordsProgressBar(props: Props): ReactElement { @@ -80,3 +80,12 @@ export default function RecordsProgressBar(props: Props): ReactElement { ); } + +// helper fund to extract case types for metric identifiers + +type ExtractCase = T extends { case: infer U } ? U : never; + +// Extraction type that pulls out all of the connection config cases +export type MetricsIdentifierCase = NonNullable< + ExtractCase +>; diff --git a/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts b/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts index 900ba8fa7a..f717c5df88 100644 --- a/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts +++ b/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts @@ -1711,7 +1711,37 @@ export class SetAccountOnboardingConfigResponse extends Message { /** - * @generated from field: bool has_completed_onboarding = 1; + * @deprecated - use has_completed_onboarding + * + * @generated from field: bool has_created_source_connection = 1; + */ + hasCreatedSourceConnection = false; + + /** + * @deprecated - use has_completed_onboarding + * + * @generated from field: bool has_created_destination_connection = 2; + */ + hasCreatedDestinationConnection = false; + + /** + * @deprecated - use has_completed_onboarding + * + * @generated from field: bool has_created_job = 3; + */ + hasCreatedJob = false; + + /** + * @deprecated - use has_completed_onboarding + * + * @generated from field: bool has_invited_members = 4; + */ + hasInvitedMembers = false; + + /** + * @deprecated - use has_completed_onboarding + * + * @generated from field: bool has_completed_onboarding = 5; */ hasCompletedOnboarding = false; @@ -1723,7 +1753,11 @@ export class AccountOnboardingConfig extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "mgmt.v1alpha1.AccountOnboardingConfig"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "has_completed_onboarding", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 1, name: "has_created_source_connection", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 2, name: "has_created_destination_connection", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 3, name: "has_created_job", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 4, name: "has_invited_members", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 5, name: "has_completed_onboarding", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): AccountOnboardingConfig { From 2992cbfdb303ec6bfac55858a7242f59cd6a904d Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Tue, 1 Oct 2024 13:41:49 -0700 Subject: [PATCH 18/20] fixed proto --- backend/protos/mgmt/v1alpha1/user_account.proto | 1 - docs/protos/data/proto_docs.json | 2 +- .../packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/backend/protos/mgmt/v1alpha1/user_account.proto b/backend/protos/mgmt/v1alpha1/user_account.proto index 57d3b76b93..eccee5eae5 100644 --- a/backend/protos/mgmt/v1alpha1/user_account.proto +++ b/backend/protos/mgmt/v1alpha1/user_account.proto @@ -194,7 +194,6 @@ message AccountOnboardingConfig { bool has_created_job = 3; // @deprecated - use has_completed_onboarding bool has_invited_members = 4; - // @deprecated - use has_completed_onboarding bool has_completed_onboarding = 5; } diff --git a/docs/protos/data/proto_docs.json b/docs/protos/data/proto_docs.json index afca570012..ae4ecaec59 100644 --- a/docs/protos/data/proto_docs.json +++ b/docs/protos/data/proto_docs.json @@ -13805,7 +13805,7 @@ }, { "name": "has_completed_onboarding", - "description": "@deprecated - use has_completed_onboarding", + "description": "", "label": "", "type": "bool", "longType": "bool", diff --git a/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts b/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts index f717c5df88..641b67ead7 100644 --- a/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts +++ b/frontend/packages/sdk/src/client/mgmt/v1alpha1/user_account_pb.ts @@ -1739,8 +1739,6 @@ export class AccountOnboardingConfig extends Message { hasInvitedMembers = false; /** - * @deprecated - use has_completed_onboarding - * * @generated from field: bool has_completed_onboarding = 5; */ hasCompletedOnboarding = false; From 27609d057fb1a0e293a5117ac938f8c0a82cf048 Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Tue, 1 Oct 2024 13:57:11 -0700 Subject: [PATCH 19/20] rebased main --- .../protos/mgmt/v1alpha1/user_account.pb.go | 580 +++++++++--------- 1 file changed, 298 insertions(+), 282 deletions(-) diff --git a/backend/gen/go/protos/mgmt/v1alpha1/user_account.pb.go b/backend/gen/go/protos/mgmt/v1alpha1/user_account.pb.go index f11733ab50..2235e19a43 100644 --- a/backend/gen/go/protos/mgmt/v1alpha1/user_account.pb.go +++ b/backend/gen/go/protos/mgmt/v1alpha1/user_account.pb.go @@ -2188,10 +2188,15 @@ type AccountOnboardingConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HasCreatedSourceConnection bool `protobuf:"varint,1,opt,name=has_created_source_connection,json=hasCreatedSourceConnection,proto3" json:"has_created_source_connection,omitempty"` + // @deprecated - use has_completed_onboarding + HasCreatedSourceConnection bool `protobuf:"varint,1,opt,name=has_created_source_connection,json=hasCreatedSourceConnection,proto3" json:"has_created_source_connection,omitempty"` + // @deprecated - use has_completed_onboarding HasCreatedDestinationConnection bool `protobuf:"varint,2,opt,name=has_created_destination_connection,json=hasCreatedDestinationConnection,proto3" json:"has_created_destination_connection,omitempty"` - HasCreatedJob bool `protobuf:"varint,3,opt,name=has_created_job,json=hasCreatedJob,proto3" json:"has_created_job,omitempty"` - HasInvitedMembers bool `protobuf:"varint,4,opt,name=has_invited_members,json=hasInvitedMembers,proto3" json:"has_invited_members,omitempty"` + // @deprecated - use has_completed_onboarding + HasCreatedJob bool `protobuf:"varint,3,opt,name=has_created_job,json=hasCreatedJob,proto3" json:"has_created_job,omitempty"` + // @deprecated - use has_completed_onboarding + HasInvitedMembers bool `protobuf:"varint,4,opt,name=has_invited_members,json=hasInvitedMembers,proto3" json:"has_invited_members,omitempty"` + HasCompletedOnboarding bool `protobuf:"varint,5,opt,name=has_completed_onboarding,json=hasCompletedOnboarding,proto3" json:"has_completed_onboarding,omitempty"` } func (x *AccountOnboardingConfig) Reset() { @@ -2254,6 +2259,13 @@ func (x *AccountOnboardingConfig) GetHasInvitedMembers() bool { return false } +func (x *AccountOnboardingConfig) GetHasCompletedOnboarding() bool { + if x != nil { + return x.HasCompletedOnboarding + } + return false +} + type GetAccountStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3139,7 +3151,7 @@ var file_mgmt_v1alpha1_user_account_proto_rawDesc = []byte{ 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x81, 0x02, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, + 0xbb, 0x02, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x1d, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, @@ -3155,298 +3167,302 @@ var file_mgmt_v1alpha1_user_account_proto_rawDesc = []byte{ 0x4a, 0x6f, 0x62, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x22, 0x42, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, - 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0f, 0x75, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x35, 0x0a, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x9c, 0x01, 0x0a, 0x1b, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, - 0x01, 0x0a, 0x1c, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, - 0x6f, 0x75, 0x6c, 0x64, 0x50, 0x6f, 0x6c, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, - 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x50, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, - 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, - 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, - 0x3c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0x54, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, - 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x92, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, - 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, - 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1e, 0x0a, 0x1a, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x53, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, - 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x55, - 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x66, 0x0a, - 0x0d, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, - 0x0a, 0x1a, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, - 0x0a, 0x15, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x49, 0x4c, - 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x49, - 0x52, 0x45, 0x44, 0x10, 0x02, 0x32, 0xa0, 0x16, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x68, 0x61, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x42, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, + 0x0a, 0x11, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x14, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x12, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x1b, 0x49, 0x73, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, + 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x39, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x49, 0x73, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x50, 0x6f, + 0x6c, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x52, 0x0a, + 0x27, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x22, 0x5c, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, + 0x14, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, + 0x50, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x22, 0x56, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, + 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x3c, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0x54, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xe2, 0x01, + 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, + 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, + 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, + 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2a, 0x92, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, + 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x45, 0x52, 0x53, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, + 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, + 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x66, 0x0a, 0x0d, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x49, 0x4c, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4c, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x32, + 0xa0, 0x16, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x50, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x68, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x61, - 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x49, - 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, - 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x41, 0x63, + 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x7d, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x89, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, + 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x11, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x49, 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x49, 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, - 0x0a, 0x18, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, - 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x7a, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x54, - 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x15, 0x47, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, + 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x12, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, + 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, + 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, + 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x17, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2b, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x7a, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, - 0x17, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x54, + 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x54, 0x65, - 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, - 0x83, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x17, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, + 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x65, 0x61, 0x6d, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x83, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, + 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, - 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x10, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x74, 0x0a, 0x14, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x2a, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x95, 0x01, 0x0a, 0x20, - 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x36, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, + 0x74, 0x0a, 0x14, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x2a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x95, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, + 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x34, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, - 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x72, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x71, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xcc, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x10, - 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x50, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, - 0x75, 0x63, 0x6c, 0x65, 0x75, 0x73, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x6f, 0x73, - 0x79, 0x6e, 0x63, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x2f, - 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x67, 0x6d, 0x74, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x4d, 0x67, 0x6d, - 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x0d, 0x4d, 0x67, 0x6d, - 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x19, 0x4d, 0x67, 0x6d, - 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, + 0x71, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, + 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, + 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0xcc, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x10, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x50, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x75, 0x73, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x6f, 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x73, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x3b, 0x6d, 0x67, 0x6d, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x4d, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x19, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x0e, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From ed182358e4aac45aaa0aba7512459cb5dba08efe Mon Sep 17 00:00:00 2001 From: Evis Drenova Date: Tue, 1 Oct 2024 14:01:08 -0700 Subject: [PATCH 20/20] cleans up knip --- .../apps/web/components/site-header/RecordsProgressBar.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx index 5ca536ccd5..637fd4bec1 100644 --- a/frontend/apps/web/components/site-header/RecordsProgressBar.tsx +++ b/frontend/apps/web/components/site-header/RecordsProgressBar.tsx @@ -82,10 +82,8 @@ export default function RecordsProgressBar(props: Props): ReactElement { } // helper fund to extract case types for metric identifiers - type ExtractCase = T extends { case: infer U } ? U : never; -// Extraction type that pulls out all of the connection config cases -export type MetricsIdentifierCase = NonNullable< +type MetricsIdentifierCase = NonNullable< ExtractCase >;