diff --git a/web/gql-queries-generator/doc/queries.graphql b/web/gql-queries-generator/doc/queries.graphql
index 8189d88b6..f8b32d672 100644
--- a/web/gql-queries-generator/doc/queries.graphql
+++ b/web/gql-queries-generator/doc/queries.graphql
@@ -1924,10 +1924,6 @@ mutation consoleDeleteAccountMembership($accountName: String!, $memberId: ID!) {
accounts_removeAccountMembership(accountName: $accountName, memberId: $memberId)
}
-mutation consoleVerifyInviteCode($invitationCode: String!) {
- auth_verifyInviteCode(invitationCode: $invitationCode)
-}
-
query consoleGetCredToken($username: String!) {
cr_getCredToken(username: $username)
}
@@ -6485,6 +6481,10 @@ mutation authVerifyEmail($token: String!) {
}
}
+mutation authResendVerificationEmail {
+ auth_resendVerificationEmail
+}
+
query authLoginPageInitUrls {
githubLoginUrl: oAuth_requestLogin(provider: "github")
gitlabLoginUrl: oAuth_requestLogin(provider: "gitlab")
diff --git a/web/lib/server/helpers/minimal-auth.ts b/web/lib/server/helpers/minimal-auth.ts
index 7809357a5..1cc2993e9 100644
--- a/web/lib/server/helpers/minimal-auth.ts
+++ b/web/lib/server/helpers/minimal-auth.ts
@@ -53,10 +53,6 @@ export const minimalAuth = async (ctx: IExtRemixCtx) => {
return redirect(`${authBaseUrl}/verify-email`);
}
- if (whoAmI.data && !whoAmI.data.approved) {
- return redirect(`${consoleBaseUrl}/invite-code`);
- }
-
ctx.authProps = (props: MapType) => {
return {
...props,
diff --git a/web/package.json b/web/package.json
index 027606336..619a19c82 100644
--- a/web/package.json
+++ b/web/package.json
@@ -26,7 +26,7 @@
"@jengaicons/react": "1.6.0",
"@mdx-js/react": "^2.3.0",
"@monaco-editor/react": "^4.6.0",
- "@oshq/react-select": "^1.4.2",
+ "@oshq/react-select": "^1.4.4",
"@radix-ui/primitive": "^1.0.1",
"@radix-ui/react-alert-dialog": "1.0.4",
"@radix-ui/react-checkbox": "^1.0.4",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 275a7d09f..ba52b6d77 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -15,8 +15,8 @@ dependencies:
specifier: ^4.6.0
version: 4.6.0(monaco-editor@0.49.0)(react-dom@18.3.1)(react@18.2.0)
'@oshq/react-select':
- specifier: ^1.4.2
- version: 1.4.2(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0)
+ specifier: ^1.4.4
+ version: 1.4.4(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0)
'@radix-ui/primitive':
specifier: ^1.0.1
version: 1.0.1
@@ -2554,8 +2554,8 @@ packages:
json-parse-even-better-errors: 2.3.1
dev: true
- /@oshq/react-select@1.4.2(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0):
- resolution: {integrity: sha512-yQwzBxFb5z2XwmuEZHLdJGmpzn1+Xo+zn5u/DV1FzvUKlRUWXo/ChQ73ZG62uN/mODTEJhsUW8SbPiP93G89iw==}
+ /@oshq/react-select@1.4.4(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0):
+ resolution: {integrity: sha512-jfMSnookesY0ge/q1amjpj16cmG09MU6YAjfHlpJ3GDxB5vjo/60I+cv9pWzTUcKNlZd1tuRZd9zKjggALz3IA==}
peerDependencies:
'@radix-ui/react-portal': ^1.0.4
classnames: ^2.3.2
diff --git a/web/src/apps/auth/routes/_main+/verify-email.tsx b/web/src/apps/auth/routes/_main+/verify-email.tsx
index a1dcd8fb8..b4684551f 100644
--- a/web/src/apps/auth/routes/_main+/verify-email.tsx
+++ b/web/src/apps/auth/routes/_main+/verify-email.tsx
@@ -1,4 +1,3 @@
-import { useAPIClient } from '~/root/lib/client/hooks/api-provider';
import usePersistState from '~/root/lib/client/hooks/use-persist-state';
import { useEffect, useState } from 'react';
import { GQLServerHandler } from '~/auth/server/gql/saved-queries';
@@ -14,12 +13,13 @@ import { IRemixCtx } from '~/root/lib/types/common';
import { ArrowLeft } from '~/components/icons';
import { cn } from '~/components/utils';
import Container from '~/auth/components/container';
+import { useAuthApi } from '~/auth/server/gql/api-provider';
const VerifyEmail = () => {
const { query, email } = useLoaderData();
const navigate = useNavigate();
const { token } = query;
- const api = useAPIClient();
+ const api = useAuthApi();
const [rateLimiter, setRateLimiter] = usePersistState('rateLimiter', {});
@@ -27,7 +27,7 @@ const VerifyEmail = () => {
(async () => {
try {
if (!token) return;
- const { _, errors } = await api.verifyEmail({
+ const { errors } = await api.verifyEmail({
token,
});
if (errors) {
@@ -68,7 +68,7 @@ const VerifyEmail = () => {
setSending(true);
- const { errors } = await api.resendVerificationEmail({ email });
+ const { errors } = await api.resendVerificationEmail();
setSending(false);
diff --git a/web/src/apps/auth/server/gql/saved-queries.ts b/web/src/apps/auth/server/gql/saved-queries.ts
index 6f2b15002..ccab30de7 100644
--- a/web/src/apps/auth/server/gql/saved-queries.ts
+++ b/web/src/apps/auth/server/gql/saved-queries.ts
@@ -25,6 +25,8 @@ import {
AuthCheckOauthEnabledQueryVariables,
AuthSetRemoteAuthHeaderMutation,
AuthSetRemoteAuthHeaderMutationVariables,
+ AuthResendVerificationEmailMutation,
+ AuthResendVerificationEmailMutationVariables,
} from '~/root/src/generated/gql/server';
import { cliQueries } from './cli-queries';
@@ -138,6 +140,19 @@ export const GQLServerHandler = ({ headers, cookies }: IGQLServerProps) => {
}
),
+ resendVerificationEmail: executor(
+ gql`
+ mutation Mutation {
+ auth_resendVerificationEmail
+ }
+ `,
+ {
+ transformer: (data: AuthResendVerificationEmailMutation) =>
+ data.auth_resendVerificationEmail,
+ vars(_: AuthResendVerificationEmailMutationVariables) {},
+ }
+ ),
+
loginPageInitUrls: executor(
gql`
query Query {
diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx
index a4e2a832c..2e94c38d7 100644
--- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx
+++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx
@@ -1,5 +1,5 @@
import {
- BackingServices,
+ // BackingServices,
CirclesFour,
GearSix,
// Plus,
@@ -103,16 +103,16 @@ const tabs = [
to: '/cs/configs',
value: '/cs',
},
- {
- label: (
-
-
- Managed resources
-
- ),
- to: '/managed-resources',
- value: '/managed-resources',
- },
+ // {
+ // label: (
+ //
+ //
+ // Managed resources
+ //
+ // ),
+ // to: '/managed-resources',
+ // value: '/managed-resources',
+ // },
// {
// label: 'Jobs & Crons',
// to: '/jc/task',
diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx
index 441a698d1..735a0b022 100644
--- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx
+++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx
@@ -4,6 +4,7 @@ import Popup from '~/components/molecule/popup';
import { IDialog, IModifiedItem } from '~/console/components/types.d';
import { ConsoleApiType } from '~/console/server/gql/saved-queries';
import { parseName } from '~/console/server/r-utils/common';
+import { constants } from '~/console/server/utils/constants';
import useForm from '~/lib/client/hooks/use-form';
import Yup from '~/lib/server/helpers/yup';
import { handleError } from '~/lib/utils/common';
@@ -75,6 +76,7 @@ const Handle = ({
validationSchema: Yup.object({
key: Yup.string()
.required()
+ .matches(constants.keyFormatRegex, 'Invalid key format')
.test('is-valid', 'Key already exists.', (value) => {
if (isUpdate) {
return true;
diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx
index a4512e4ad..e973eabdc 100644
--- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx
+++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx
@@ -25,13 +25,13 @@ const HandleConfig = ({ show, setShow }: IDialog) => {
name: Yup.string().required(),
}),
onSubmit: async (val) => {
- if ( !environment) {
+ if (!environment) {
throw new Error('Project and Environment is required!.');
}
try {
const { errors: e } = await api.createConfig({
envName: environment,
-
+
config: {
metadata: {
name: val.name,
diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx
index 207dd460f..e97badfb4 100644
--- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx
+++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx
@@ -162,6 +162,7 @@ const ExposedRoute = () => {
// error={!!portError}
// message={portError}
disableWhileLoading
+ createLabel="Exposed Domains"
/>
);
@@ -219,6 +220,7 @@ export const ExposedPorts = () => {
error={!!portError}
message={portError}
disableWhileLoading
+ createLabel="Exposed ports"
/>
diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx
index fcbacb710..c18f649ce 100644
--- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx
+++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx
@@ -4,6 +4,7 @@ import Popup from '~/components/molecule/popup';
import { IDialog, IModifiedItem } from '~/console/components/types.d';
import { ConsoleApiType } from '~/console/server/gql/saved-queries';
import { parseName } from '~/console/server/r-utils/common';
+import { constants } from '~/console/server/utils/constants';
import useForm from '~/lib/client/hooks/use-form';
import Yup from '~/lib/server/helpers/yup';
import { handleError } from '~/lib/utils/common';
@@ -72,6 +73,7 @@ const Handle = ({
validationSchema: Yup.object({
key: Yup.string()
.required()
+ .matches(constants.keyFormatRegex, 'Invalid key format')
.test('is-valid', 'Key already exists.', (value) => {
if (isUpdate) {
return true;
diff --git a/web/src/apps/console/routes/_main+/_index.tsx b/web/src/apps/console/routes/_main+/_index.tsx
index da4852812..7c104e7ff 100644
--- a/web/src/apps/console/routes/_main+/_index.tsx
+++ b/web/src/apps/console/routes/_main+/_index.tsx
@@ -1,11 +1,5 @@
import { redirect } from '@remix-run/node';
-import { GQLServerHandler } from '~/root/lib/server/gql/saved-queries';
-import { IRemixCtx } from '~/root/lib/types/common';
-export const loader = async (ctx: IRemixCtx) => {
- const { data } = await GQLServerHandler(ctx.request).whoAmI();
- if (data && !data.approved) {
- return redirect(`/invite-code`);
- }
+export const loader = async () => {
return redirect('/teams');
};
diff --git a/web/src/apps/console/routes/_main+/_layout/_layout.tsx b/web/src/apps/console/routes/_main+/_layout/_layout.tsx
index 2f70a78cc..32bce5690 100644
--- a/web/src/apps/console/routes/_main+/_layout/_layout.tsx
+++ b/web/src/apps/console/routes/_main+/_layout/_layout.tsx
@@ -36,7 +36,7 @@ import {
InfraAsCode,
GearSix,
Project,
- BackingServices,
+ // BackingServices,
BellFill,
Sliders,
} from '~/console/components/icons';
@@ -86,16 +86,16 @@ const AccountTabs = () => {
to: '/environments',
value: '/environments',
},
- {
- label: (
-
-
- Managed Services
-
- ),
- to: '/managed-services',
- value: '/managed-services',
- },
+ // {
+ // label: (
+ //
+ //
+ // Managed Services
+ //
+ // ),
+ // to: '/managed-services',
+ // value: '/managed-services',
+ // },
{
label: (
diff --git a/web/src/apps/console/routes/invite-code.tsx b/web/src/apps/console/routes/invite-code.tsx
deleted file mode 100644
index fdf1aaf1d..000000000
--- a/web/src/apps/console/routes/invite-code.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-import { redirect } from '@remix-run/node';
-import { useNavigate } from '@remix-run/react';
-import { BrandLogo } from '~/components/branding/brand-logo';
-import { toast } from '~/components/molecule/toast';
-import { useConsoleApi } from '~/console/server/gql/api-provider';
-import useForm from '~/root/lib/client/hooks/use-form';
-import Yup from '~/root/lib/server/helpers/yup';
-import { IRemixCtx } from '~/root/lib/types/common';
-import { GQLServerHandler } from '~/lib/server/gql/saved-queries';
-import { Badge } from '~/components/atoms/badge';
-import TextInputLg from '~/console/components/text-input-lg';
-
-const InviteCode = () => {
- const api = useConsoleApi();
- const navigate = useNavigate();
-
- const { values, handleChange, submit, handleSubmit } = useForm({
- initialValues: {
- inviteCode: '',
- },
- validationSchema: Yup.object({
- inviteCode: Yup.string().required('invite code is required'),
- }),
- onSubmit: async (v) => {
- try {
- const { errors } = await api.verifyInviteCode({
- invitationCode: v.inviteCode,
- });
- if (errors) {
- throw new Error(errors[0].message);
- }
- toast.success('Invitation code verification successful.');
- navigate('/teams');
- } catch (err) {
- const errorMessage =
- err instanceof Error
- ? err.message
- : 'An error occurred. Please try again.';
- toast.error(errorMessage);
- }
- },
- });
-
- return (
-
-
-
- 🔥 Amazing curated{' '}
- Open-Source{' '}
- remote local envs
-
-
- Unlock early access now!
-
-
- Dont miss the chance to try our product. Enter your referral code now to
- move up the waitlist and secure early access!
-
-
-
- );
-};
-
-export const loader = async (ctx: IRemixCtx) => {
- const { data, errors } = await GQLServerHandler(ctx.request).whoAmI();
-
- if (!data || errors) {
- return redirect('/');
- }
-
- const { approved } = data || {};
-
- if (approved) {
- return redirect('/teams');
- }
-
- return {};
-};
-
-export default InviteCode;
diff --git a/web/src/apps/console/server/gql/queries/access-queries.ts b/web/src/apps/console/server/gql/queries/access-queries.ts
index a92b83a1e..8256426dc 100644
--- a/web/src/apps/console/server/gql/queries/access-queries.ts
+++ b/web/src/apps/console/server/gql/queries/access-queries.ts
@@ -20,8 +20,6 @@ import {
ConsoleRejectInvitationMutationVariables,
ConsoleDeleteAccountMembershipMutation,
ConsoleDeleteAccountMembershipMutationVariables,
- ConsoleVerifyInviteCodeMutation,
- ConsoleVerifyInviteCodeMutationVariables,
} from '~/root/src/generated/gql/server';
export type IInvites = NN<
@@ -210,17 +208,4 @@ export const accessQueries = (executor: IExecutor) => ({
vars(_: ConsoleDeleteAccountMembershipMutationVariables) {},
}
),
-
- verifyInviteCode: executor(
- gql`
- mutation Auth_verifyInviteCode($invitationCode: String!) {
- auth_verifyInviteCode(invitationCode: $invitationCode)
- }
- `,
- {
- transformer: (data: ConsoleVerifyInviteCodeMutation) =>
- data.auth_verifyInviteCode,
- vars(_: ConsoleVerifyInviteCodeMutationVariables) {},
- }
- ),
});
diff --git a/web/src/apps/console/server/gql/queries/config-queries.ts b/web/src/apps/console/server/gql/queries/config-queries.ts
index 6e645e532..c130b1bf7 100644
--- a/web/src/apps/console/server/gql/queries/config-queries.ts
+++ b/web/src/apps/console/server/gql/queries/config-queries.ts
@@ -20,50 +20,32 @@ export type IConfigs = NN;
export const configQueries = (executor: IExecutor) => ({
updateConfig: executor(
gql`
- mutation Core_updateConfig(
- $envName: String!
- $config: ConfigIn!
- ) {
- core_updateConfig(
- envName: $envName
- config: $config
- ) {
+ mutation Core_updateConfig($envName: String!, $config: ConfigIn!) {
+ core_updateConfig(envName: $envName, config: $config) {
id
}
}
`,
{
transformer: (data: ConsoleUpdateConfigMutation) => data,
- vars(_: ConsoleUpdateConfigMutationVariables) { },
+ vars(_: ConsoleUpdateConfigMutationVariables) {},
}
),
deleteConfig: executor(
gql`
- mutation Core_deleteConfig(
- $envName: String!
- $configName: String!
- ) {
- core_deleteConfig(
- envName: $envName
- configName: $configName
- )
+ mutation Core_deleteConfig($envName: String!, $configName: String!) {
+ core_deleteConfig(envName: $envName, configName: $configName)
}
`,
{
transformer: (data: ConsoleDeleteConfigMutation) => data,
- vars(_: ConsoleDeleteConfigMutationVariables) { },
+ vars(_: ConsoleDeleteConfigMutationVariables) {},
}
),
getConfig: executor(
gql`
- query Core_getConfig(
- $envName: String!
- $name: String!
- ) {
- core_getConfig(
- envName: $envName
- name: $name
- ) {
+ query Core_getConfig($envName: String!, $name: String!) {
+ core_getConfig(envName: $envName, name: $name) {
binaryData
data
displayName
@@ -83,7 +65,7 @@ export const configQueries = (executor: IExecutor) => ({
`,
{
transformer: (data: ConsoleGetConfigQuery) => data.core_getConfig,
- vars(_: ConsoleGetConfigQueryVariables) { },
+ vars(_: ConsoleGetConfigQueryVariables) {},
}
),
listConfigs: executor(
@@ -93,11 +75,7 @@ export const configQueries = (executor: IExecutor) => ({
$search: SearchConfigs
$pq: CursorPaginationIn
) {
- core_listConfigs(
- envName: $envName
- search: $search
- pq: $pq
- ) {
+ core_listConfigs(envName: $envName, search: $search, pq: $pq) {
edges {
cursor
node {
@@ -141,19 +119,13 @@ export const configQueries = (executor: IExecutor) => ({
`,
{
transformer: (data: ConsoleListConfigsQuery) => data.core_listConfigs,
- vars(_: ConsoleListConfigsQueryVariables) { },
+ vars(_: ConsoleListConfigsQueryVariables) {},
}
),
createConfig: executor(
gql`
- mutation Core_createConfig(
- $envName: String!
- $config: ConfigIn!
- ) {
- core_createConfig(
- envName: $envName
- config: $config
- ) {
+ mutation Core_createConfig($envName: String!, $config: ConfigIn!) {
+ core_createConfig(envName: $envName, config: $config) {
id
}
}
@@ -161,7 +133,7 @@ export const configQueries = (executor: IExecutor) => ({
{
transformer: (data: ConsoleCreateConfigMutation) =>
data.core_createConfig,
- vars(_: ConsoleCreateConfigMutationVariables) { },
+ vars(_: ConsoleCreateConfigMutationVariables) {},
}
),
});
diff --git a/web/src/apps/console/server/utils/constants.ts b/web/src/apps/console/server/utils/constants.ts
index 0c7b19033..1a2bd8b69 100644
--- a/web/src/apps/console/server/utils/constants.ts
+++ b/web/src/apps/console/server/utils/constants.ts
@@ -10,4 +10,5 @@ export const constants = {
metadot: '·',
dockerImageFormatRegex:
/^(([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,}(:[0-9]+)?\/)?([a-z0-9]+(-[a-z0-9]+)*\/)*[a-z0-9]+([._-][a-z0-9]+)*(:[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}[a-zA-Z0-9])?(@[A-Za-z][A-Za-z0-9]*(?:[._-][A-Za-z0-9]+)?:[A-Fa-f0-9]{32,})?$/,
+ keyFormatRegex: /^[A-Za-z0-9_]+([./-][A-Za-z0-9_]+)*$/,
};
diff --git a/web/src/generated/gql/sdl.graphql b/web/src/generated/gql/sdl.graphql
index 2939e4473..0f1d6e720 100644
--- a/web/src/generated/gql/sdl.graphql
+++ b/web/src/generated/gql/sdl.graphql
@@ -2074,7 +2074,8 @@ type GlobalVPN {
creationTime: Date!
displayName: String!
id: ID!
- kloudliteDevice: GlobalVPNKloudliteDevice!
+ kloudliteClusterLocalDevice: GlobalVPNKloudliteClusterLocalDevice!
+ kloudliteGatewayDevice: GlobalVPNKloudliteGatewayDevice!
lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy!
markedForDeletion: Boolean
metadata: Metadata!
@@ -2134,7 +2135,8 @@ input GlobalVPNIn {
allocatableCIDRSuffix: Int!
CIDR: String!
displayName: String!
- kloudliteDevice: GlobalVPNKloudliteDeviceIn!
+ kloudliteClusterLocalDevice: GlobalVPNKloudliteClusterLocalDeviceIn!
+ kloudliteGatewayDevice: GlobalVPNKloudliteGatewayDeviceIn!
metadata: MetadataIn!
nonClusterUseAllowedIPs: [String!]!
numAllocatedClusterCIDRs: Int!
@@ -2143,12 +2145,22 @@ input GlobalVPNIn {
wgInterface: String!
}
-type GlobalVPNKloudliteDevice {
+type GlobalVPNKloudliteClusterLocalDevice {
ipAddr: String!
name: String!
}
-input GlobalVPNKloudliteDeviceIn {
+input GlobalVPNKloudliteClusterLocalDeviceIn {
+ ipAddr: String!
+ name: String!
+}
+
+type GlobalVPNKloudliteGatewayDevice {
+ ipAddr: String!
+ name: String!
+}
+
+input GlobalVPNKloudliteGatewayDeviceIn {
ipAddr: String!
name: String!
}
diff --git a/web/src/generated/gql/server.ts b/web/src/generated/gql/server.ts
index a16dee36c..7be9e999a 100644
--- a/web/src/generated/gql/server.ts
+++ b/web/src/generated/gql/server.ts
@@ -1048,7 +1048,8 @@ export type GlobalVpnIn = {
allocatableCIDRSuffix: Scalars['Int']['input'];
CIDR: Scalars['String']['input'];
displayName: Scalars['String']['input'];
- kloudliteDevice: GlobalVpnKloudliteDeviceIn;
+ kloudliteClusterLocalDevice: GlobalVpnKloudliteClusterLocalDeviceIn;
+ kloudliteGatewayDevice: GlobalVpnKloudliteGatewayDeviceIn;
metadata: MetadataIn;
nonClusterUseAllowedIPs: Array;
numAllocatedClusterCIDRs: Scalars['Int']['input'];
@@ -1057,7 +1058,12 @@ export type GlobalVpnIn = {
wgInterface: Scalars['String']['input'];
};
-export type GlobalVpnKloudliteDeviceIn = {
+export type GlobalVpnKloudliteClusterLocalDeviceIn = {
+ ipAddr: Scalars['String']['input'];
+ name: Scalars['String']['input'];
+};
+
+export type GlobalVpnKloudliteGatewayDeviceIn = {
ipAddr: Scalars['String']['input'];
name: Scalars['String']['input'];
};
@@ -3627,14 +3633,6 @@ export type ConsoleDeleteAccountMembershipMutation = {
accounts_removeAccountMembership: boolean;
};
-export type ConsoleVerifyInviteCodeMutationVariables = Exact<{
- invitationCode: Scalars['String']['input'];
-}>;
-
-export type ConsoleVerifyInviteCodeMutation = {
- auth_verifyInviteCode: boolean;
-};
-
export type ConsoleGetCredTokenQueryVariables = Exact<{
username: Scalars['String']['input'];
}>;
@@ -8111,6 +8109,14 @@ export type AuthVerifyEmailMutationVariables = Exact<{
export type AuthVerifyEmailMutation = { auth_verifyEmail: { id: string } };
+export type AuthResendVerificationEmailMutationVariables = Exact<{
+ [key: string]: never;
+}>;
+
+export type AuthResendVerificationEmailMutation = {
+ auth_resendVerificationEmail: boolean;
+};
+
export type AuthLoginPageInitUrlsQueryVariables = Exact<{
[key: string]: never;
}>;