vault/ui/app/forms/sync/gh.ts
Vault Automation 31fb778a51
[UI] VAULT-42756 - Secret sync WIF implementation (#14001) (#14167)
* VAULT-42427 - initial code updates for aws form

* VAULT-42756 - implemented wif support for secret sync

* VAULT-42756 - added acceptance and integration test cases for WIF support

* refactor: streamline WIF credential handling and enhance destination details management

* added changelog

* fixed review comments

* updated changelog

* fixed failing tests

* fixed review comments

* fixed validation for Edit scenario

* fixed region field to have no default value selected

* Refactor: updated string literals with centralized enums and some other refactors

Co-authored-by: mohit-hashicorp <mohit.ojha@hashicorp.com>
2026-04-22 12:46:13 +05:30

51 lines
1.8 KiB
TypeScript

/**
* Copyright IBM Corp. 2016, 2025
* SPDX-License-Identifier: BUSL-1.1
*/
import FormField from 'vault/utils/forms/field';
import FormFieldGroup from 'vault/utils/forms/field-group';
import { DestinationType } from 'sync/utils/constants';
import CreateDestinationForm from './create-destination';
import type { SystemWriteSyncDestinationsGhNameRequest } from '@hashicorp/vault-client-typescript';
type GhFormData = SystemWriteSyncDestinationsGhNameRequest & {
name: string;
};
export default class GhForm extends CreateDestinationForm<GhFormData> {
formFieldGroups = [
new FormFieldGroup('default', [
this.commonFields.name,
new FormField('repository_owner', 'string', {
subText:
'Github organization or username that owns the repository. If empty, Vault will use the GITHUB_REPOSITORY_OWNER environment variable if configured.',
editDisabled: true,
}),
new FormField('repository_name', 'string', {
subText:
'The name of the Github repository to connect to. If empty, Vault will use the GITHUB_REPOSITORY_NAME environment variable if configured.',
editDisabled: true,
}),
]),
new FormFieldGroup('Credentials', [
new FormField('access_token', 'string', {
subText:
'Personal access token to authenticate to the GitHub repository. If empty, Vault will use the GITHUB_ACCESS_TOKEN environment variable if configured.',
sensitive: true,
noCopy: true,
}),
]),
new FormFieldGroup('Advanced configuration', [
this.commonFields.granularity,
this.commonFields.secretNameTemplate,
]),
];
toJSON() {
const formState = super.toJSON();
const data = this.getPayload<GhFormData>(DestinationType.Gh, this.data, this.isNew);
return { ...formState, data };
}
}