Skip to content

Commit 1ed3630

Browse files
committed
Fix types after resolving merge conflicts
1 parent a25ba0f commit 1ed3630

16 files changed

Lines changed: 63 additions & 47 deletions

frontend/src/components/pages/overview/api-connect-wizard.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { useGetOnboardingCodeSnippetQuery } from 'react-query/api/onboarding';
1515
import { useGetServerlessClusterQuery } from 'react-query/api/serverless';
1616
import { useAPIWizardStore } from 'state/api-wizard-store';
1717
import { uiState } from 'state/ui-state';
18+
import { getSASLMechanismName } from 'utils/user';
1819
import { capitalizeFirst } from 'utils/utils';
1920
import { useShallow } from 'zustand/react/shallow';
2021

@@ -153,7 +154,7 @@ export const APIConnectWizard = () => {
153154
if (userResult?.success && userResult.data && 'username' in userResult.data) {
154155
// SASL user data
155156
setUsername(userResult.data.username);
156-
setSaslMechanism(userResult.data.saslMechanism);
157+
setSaslMechanism(getSASLMechanismName(userResult.data.saslMechanism));
157158
}
158159
// Service account data doesn't set username/saslMechanism
159160
handleStepResult(userResult, methods.next);

frontend/src/components/pages/rp-connect/onboarding/add-user-step.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import { listACLs } from 'protogen/redpanda/api/dataplane/v1/acl-ACLService_conn
4242
import { Scope } from 'protogen/redpanda/api/dataplane/v1/secret_pb';
4343
import { listUsers } from 'protogen/redpanda/api/dataplane/v1/user-UserService_connectquery';
4444
import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
45-
import { useForm, useWatch } from 'react-hook-form';
45+
import { type Control, useForm, useWatch } from 'react-hook-form';
4646
import { useCreateSecretMutation } from 'react-query/api/secret';
4747
import { useListUsersQuery } from 'react-query/api/user';
4848
import { LONG_LIVED_CACHE_STALE_TIME } from 'react-query/react-query.utils';
@@ -66,12 +66,14 @@ import {
6666
checkUserHasConsumerGroupPermissions,
6767
checkUserHasTopicReadWritePermissions,
6868
getACLOperationName,
69+
SASL_MECHANISM_OPTIONS,
70+
SASLMechanism,
6971
useCreateUserWithSecretsMutation,
7072
} from '../utils/user';
7173

7274
type AddUserStepProps = {
7375
defaultUsername?: string;
74-
defaultSaslMechanism?: (typeof SASL_MECHANISMS)[number];
76+
defaultSaslMechanism?: SASLMechanism;
7577
hideInternal?: boolean;
7678
topicName?: string;
7779
defaultConsumerGroup?: string;
@@ -131,14 +133,16 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
131133
defaultValues: {
132134
username: defaultUsername || '',
133135
password: generatePassword(30, false),
134-
saslMechanism: defaultSaslMechanism || 'SCRAM-SHA-256',
136+
saslMechanism: defaultSaslMechanism ?? SASLMechanism.SASL_MECHANISM_SCRAM_SHA_256,
135137
grantTopicPermissions: true,
136138
specialCharactersEnabled: false,
137139
passwordLength: 30,
138140
consumerGroup: defaultConsumerGroup || '',
139141
},
140142
});
141143

144+
const control = form.control as Control<AddUserFormData>;
145+
142146
const watchedUsername = useWatch({
143147
control: form.control,
144148
name: 'username',
@@ -470,7 +474,7 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
470474

471475
<div className="flex gap-2">
472476
<FormField
473-
control={form.control}
477+
control={control}
474478
name="username"
475479
render={({ field }) => (
476480
<FormItem>
@@ -584,7 +588,7 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
584588
{userSelectionType === CreatableSelectionOptions.CREATE && (
585589
<>
586590
<FormField
587-
control={form.control}
591+
control={control}
588592
disabled={isPending || isReadOnly}
589593
name="password"
590594
render={({ field }) => (
@@ -612,7 +616,7 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
612616
<FormField
613617
disabled={isReadOnly}
614618
{...field}
615-
control={form.control}
619+
control={control}
616620
name="specialCharactersEnabled"
617621
render={({ field: specialCharsField }) => (
618622
<div className="flex flex-row items-center gap-2">
@@ -635,7 +639,7 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
635639
)}
636640
/>
637641
<FormField
638-
control={form.control}
642+
control={control}
639643
disabled={isPending || isReadOnly}
640644
name="saslMechanism"
641645
render={({ field }) => (
@@ -665,7 +669,7 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
665669

666670
{Boolean(topicName) && (
667671
<FormField
668-
control={form.control}
672+
control={control}
669673
disabled={isPending || isReadOnly}
670674
name="grantTopicPermissions"
671675
render={({ field }) => (
@@ -727,7 +731,7 @@ export const AddUserStep = forwardRef<UserStepRef, AddUserStepProps & MotionProp
727731
<div className="flex flex-col items-start gap-2">
728732
<div className="flex gap-2">
729733
<FormField
730-
control={form.control}
734+
control={control}
731735
name="consumerGroup"
732736
render={({ field }) => (
733737
<FormItem>

frontend/src/components/pages/rp-connect/onboarding/onboarding-wizard.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
import type { ExtendedConnectComponentSpec } from '../types/schema';
3737
import type { AddTopicFormData, BaseStepRef, ConnectTilesListFormData, UserStepRef } from '../types/wizard';
3838
import { parseSchema } from '../utils/schema';
39+
import { SASLMechanism } from '../utils/user';
3940
import { handleStepResult, regenerateYamlForTopicUserComponents } from '../utils/wizard';
4041
import { getConnectTemplate } from '../utils/yaml';
4142

@@ -275,7 +276,7 @@ export const ConnectOnboardingWizard = ({
275276
setUserData({
276277
authMethod: 'service-account',
277278
username: '',
278-
saslMechanism: 'SCRAM-SHA-256',
279+
saslMechanism: SASLMechanism.SASL_MECHANISM_SCRAM_SHA_256,
279280
consumerGroup: '',
280281
serviceAccountName: userResult.data.serviceAccountName,
281282
serviceAccountId: userResult.data.serviceAccountId,

frontend/src/components/pages/rp-connect/pipeline/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ import type {
107107
import { parseSchema } from '../utils/schema';
108108
import { useCreateModeInitialYaml } from '../utils/use-create-mode-initial-yaml';
109109
import { usePipelineMode } from '../utils/use-pipeline-mode';
110+
import { getSASLMechanismName } from '../utils/user';
110111
import {
111112
extractConnectorTopics,
112113
getConnectTemplate,
@@ -416,7 +417,7 @@ function useDiagramDialogs(yamlContent: string, handleConnectorYamlChange: (yaml
416417
setupResult = {
417418
authMethod: 'sasl',
418419
username: (data as AddUserFormData).username,
419-
saslMechanism: (data as AddUserFormData).saslMechanism,
420+
saslMechanism: getSASLMechanismName((data as AddUserFormData).saslMechanism),
420421
};
421422
}
422423
const patched = tryPatchRedpandaYaml(yamlContent, target.section, target.componentName, setupResult);

frontend/src/components/pages/rp-connect/utils/schema.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { toast } from 'sonner';
88
import { onboardingWizardStore } from 'state/onboarding-wizard-store';
99
import { formatToastErrorMessageGRPC } from 'utils/toast.utils';
1010

11+
import { getSASLMechanismName } from './user';
1112
import { isConsumerGroupField, isPasswordField, isSchemaRegistryUrlField, isTopicField, isUserField } from './wizard';
1213
import {
1314
convertToScreamingSnakeCase,
@@ -102,7 +103,8 @@ const generateRedpandaTopLevelConfig = (): Record<string, unknown> => {
102103

103104
redpandaConfig.sasl = [
104105
{
105-
mechanism: userData.saslMechanism || 'SCRAM-SHA-256',
106+
mechanism:
107+
userData.saslMechanism !== undefined ? getSASLMechanismName(userData.saslMechanism) : 'SCRAM-SHA-256',
106108
username: getSecretSyntax(usernameSecretId),
107109
password: getSecretSyntax(passwordSecretId),
108110
},
@@ -305,7 +307,7 @@ function populateConnectionDefaults(
305307
const isMechanismField = spec.name.toLowerCase() === 'mechanism' && parentName?.toLowerCase() === 'sasl';
306308
if (isMechanismField) {
307309
const userData = onboardingWizardStore.getUserData();
308-
return userData?.saslMechanism || 'SCRAM-SHA-256';
310+
return userData?.saslMechanism !== undefined ? getSASLMechanismName(userData.saslMechanism) : 'SCRAM-SHA-256';
309311
}
310312

311313
return;

frontend/src/components/pages/rp-connect/utils/user.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ import {
2222
} from '../../../../protogen/redpanda/api/dataplane/v1/acl_pb';
2323
import { CreateUserRequestSchema } from '../../../../protogen/redpanda/api/dataplane/v1/user_pb';
2424
import { convertToScreamingSnakeCase } from '../types/constants';
25+
26+
export { getSASLMechanismName, SASL_MECHANISM_OPTIONS, SASL_MECHANISMS, SASLMechanism } from 'utils/user';
27+
2528
import type { AddUserFormData, OperationResult } from '../types/wizard';
2629

2730
const createConsumerGroupACLs = (consumerGroupName: string, username: string) => {

frontend/src/components/pages/security/change-password-dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type ChangePasswordDialogProps = {
5151
};
5252

5353
function resolveInitialMechanism(current: SASLMechanism | undefined): SASLMechanism {
54-
return current !== undefined && SASL_MECHANISMS.includes(current)
54+
return current !== undefined && SASL_MECHANISMS.includes(current as (typeof SASL_MECHANISMS)[number])
5555
? current
5656
: SASLMechanism.SASL_MECHANISM_SCRAM_SHA_512;
5757
}

frontend/src/components/pages/security/permissions-tab.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { create } from '@bufbuild/protobuf';
1313
import { createQueryOptions, useTransport } from '@connectrpc/connect-query';
1414
import { useQueries } from '@tanstack/react-query';
1515
import { Link } from '@tanstack/react-router';
16-
import { getAclFromAclListResponse } from 'components/pages/acls/new-acl/acl.model';
16+
import { getAclFromAclListResponse } from 'components/pages/security/shared/acl-model';
1717
import { Badge } from 'components/redpanda-ui/components/badge';
1818
import { Button } from 'components/redpanda-ui/components/button';
1919
import { Empty, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from 'components/redpanda-ui/components/empty';
@@ -669,7 +669,7 @@ function PrincipalGroupCard({
669669
key={role.name}
670670
onClick={(e) => e.stopPropagation()}
671671
params={{ roleName: encodeURIComponent(role.name) }}
672-
to="/security/roles/$roleName"
672+
to="/security/roles/$roleName/details"
673673
>
674674
<Badge
675675
className="font-normal text-sm transition-colors hover:bg-accent-foreground/25"

frontend/src/components/pages/security/role-detail-page.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,7 @@ export function RoleDetailPage({ roleName }: RoleDetailPageProps) {
297297
<div className="flex flex-col items-center justify-center gap-4 py-12">
298298
<Text variant="muted">Role not found.</Text>
299299
<Button asChild variant="outline">
300-
<Link params={{ tab: 'roles' }} to="/security/$tab">
301-
Back to Security
302-
</Link>
300+
<Link to="/security/roles">Back to Security</Link>
303301
</Button>
304302
</div>
305303
);
@@ -311,7 +309,7 @@ export function RoleDetailPage({ roleName }: RoleDetailPageProps) {
311309
{/* Page Header */}
312310
<div>
313311
<Button asChild className="mb-4 -ml-3 text-muted-foreground" variant="ghost">
314-
<Link params={{ tab: 'roles' }} to="/security/$tab">
312+
<Link to="/security/roles">
315313
<ArrowLeft className="size-4" />
316314
Roles
317315
</Link>

frontend/src/components/pages/security/roles-tab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export function RolesTab() {
133133
};
134134

135135
const navigateToRole = (roleName: string) => {
136-
navigate({ to: '/security/roles/$roleName', params: { roleName: encodeURIComponent(roleName) } });
136+
navigate({ to: '/security/roles/$roleName/details', params: { roleName: encodeURIComponent(roleName) } });
137137
};
138138

139139
return (

0 commit comments

Comments
 (0)