fix(edge): show edge settings [EE-4959] (#8581)

* fix(edge): show edge settings [EE-4959]

fix [EE-4959]

* fix(edge/settings): validate ce
pull/8449/head^2
Chaim Lev-Ari 2023-03-02 19:32:43 +02:00 committed by GitHub
parent 197b0bcbde
commit 8d6797dc9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 8 deletions

View File

@ -29,7 +29,7 @@ export function EdgeComputeSettings({ settings, onSubmit }: Props) {
EnableEdgeComputeFeatures: settings.EnableEdgeComputeFeatures,
EdgePortainerUrl: settings.EdgePortainerUrl,
Edge: {
TunnelServerAddress: settings.Edge.TunnelServerAddress,
TunnelServerAddress: settings.Edge?.TunnelServerAddress,
},
EnforceEdgeID: settings.EnforceEdgeID,
};

View File

@ -1,9 +1,30 @@
import { boolean, number, object } from 'yup';
import { boolean, object, SchemaOf, string } from 'yup';
export function validationSchema() {
return object().shape({
EdgeAgentCheckinInterval: number().required('This field is required.'),
EnableEdgeComputeFeatures: boolean().required('This field is required.'),
EnforceEdgeID: boolean().required('This field is required.'),
});
import { validation as tunnelValidation } from '@/react/portainer/common/PortainerTunnelAddrField';
import { validation as urlValidation } from '@/react/portainer/common/PortainerUrlField';
import { isBE } from '@/react/portainer/feature-flags/feature-flags.service';
import { FormValues } from './types';
export function validationSchema(): SchemaOf<FormValues> {
return object()
.shape({
EnableEdgeComputeFeatures: boolean().required('This field is required.'),
EnforceEdgeID: boolean().required('This field is required.'),
})
.concat(
isBE
? object({
EdgePortainerUrl: urlValidation(),
Edge: object({
TunnelServerAddress: tunnelValidation(),
}),
})
: object({
EdgePortainerUrl: string().default(''),
Edge: object({
TunnelServerAddress: string().default(''),
}),
})
);
}