mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-23 07:31:09 +02:00
* [UI] Ember Data Migration - Secrets Engine Resource (#30791) * adds base factory for resources and secrets engine resource * updates dashboard and secret-engine list route to fetch mounts from api service * updates secret backends routes to use api service * updates secrets engine config routes to use api service * updates secrets backend route to use internal mounts endpoint and fixes error handling * updates property casing in config details card component * fixes dashboard tests * fixes issues with engine configuration * updates api service to only set token header if value is defined in auth service * fixes more tests * Update ui/app/routes/vault/cluster/secrets/backend/configuration/index.js Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com> * removes alwaysRender from publicKey field in secret engine configuration details component * removes unused hideToggle arg from secret engine mount config template * updates kv config route to load secret-engine model * fixes kv config route --------- Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com> * [UI] Ember Data Migration - Secrets Engine Forms (#30951) * adds secrets engine form class * updates mount-secret-backend route and form component to use secrets engine form class and api service * updates to form class proxy for nested form data properties * adds form classes for configurable secrets engines * updates secrets engine config edit route and components to use form classes and api service * adds missing copyright header * fixes tests * fixes type error * updates configure-ssh component to use form class and api service * updates configure-ssh tests * updates configuration-wif component tests * fixes mount secret backend and form tests * adds method to normalize request key casing to api service * addresses pr review feedback * removes unused secrets engine config models, adapters and serializers (#30980) * fixes azure config tests * fixes more ent tests --------- Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com>
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import Form from 'vault/forms/form';
|
|
import FormField from 'vault/utils/forms/field';
|
|
|
|
import type { Validations } from 'vault/app-types';
|
|
import type { SshConfigureCaRequest } from '@hashicorp/vault-client-typescript';
|
|
|
|
export default class SshConfigForm extends Form {
|
|
declare data: Partial<SshConfigureCaRequest>;
|
|
|
|
validations: Validations = {
|
|
generateSigningKey: [
|
|
{
|
|
validator(form: SshConfigForm) {
|
|
const { publicKey, privateKey, generateSigningKey } = form;
|
|
// if generateSigningKey is false, both public and private keys are required
|
|
if (!generateSigningKey && (!publicKey || !privateKey)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
message: 'Provide a Public and Private key or set "Generate Signing Key" to true.',
|
|
},
|
|
],
|
|
publicKey: [
|
|
{
|
|
validator(form: SshConfigForm) {
|
|
const { publicKey, privateKey } = form;
|
|
// regardless of generateSigningKey, if one key is set they both need to be set.
|
|
return publicKey || privateKey ? !!(publicKey && privateKey) : true;
|
|
},
|
|
message: 'You must provide a Public and Private keys or leave both unset.',
|
|
},
|
|
],
|
|
};
|
|
|
|
formFields = [
|
|
new FormField('privateKey', 'string', { sensitive: true }),
|
|
new FormField('publicKey', 'string', { sensitive: true }),
|
|
new FormField('generateSigningKey', 'boolean'),
|
|
];
|
|
}
|