vault/ui/app/utils/forms/field.ts
Vault Automation 0b939eaaf4
[UI] Ember Data Migration - KV Secrets/Metadata (#9508) (#9762)
* adds error handling for control groups to api service as post request middleware

* updates kv list route to use api service

* updates kv config route to use api service

* updates kv secrets overview route to use api service

* updates kv secret details route to use api service

* adds kv form

* updates kv metadata details route to use api service

* updates kv paths and version history routes to use api service

* refactors kv-data-fields component to form component

* updates kv secret create route to use api service

* updates kv secret edit route to use api service

* updates kv metadata edit route to use api service

* adds waitFor to async middleware in api service to attempt to fix race conditions in tests

* adds kvMetadata path to capabilities path map

* fixes kv list item delete test selector

* fixes kv v2 workflow create tests

* fixes issue returning metadata for secret when latest version is deleted

* decodes uri in path returned by api service parseError method

* fixes kv v2 edge cases tests

* fixes issue deleteing control group token in api service

* decodes url for control group token lookup in api service

* fixes version history linked block link

* defaults cas to 0 when creating new secret

* removes log

* adds ember-template-lint to kv engine

* more test fixes

* updates kv helpers from classic format

* updates kv helpers imports

* reverts to use secret.version in details edit route

* fixes isDeleted import in kv version history test

* adds waitFor to api service parseError method

* reverts removing async from addQueryParams api method

Co-authored-by: Jordan Reimer <zofskeez@gmail.com>
2025-10-02 10:44:22 -06:00

43 lines
926 B
TypeScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
export interface FieldOptions {
label?: string;
subText?: string;
fieldValue?: string;
editType?: string;
defaultValue?: unknown;
possibleValues?: unknown[];
allowWhiteSpace?: boolean;
isSingleRow?: boolean;
keyPlaceholder?: string;
valuePlaceholder?: string;
editDisabled?: boolean;
sensitive?: boolean;
noCopy?: boolean;
docLink?: string;
helpText?: string;
helperTextDisabled?: string;
helperTextEnabled?: string;
placeholder?: string;
noDefault?: boolean;
isSectionHeader?: boolean;
}
export default class FormField {
name = '';
type: string | undefined;
options: FieldOptions = {};
constructor(key: string, type?: string, options: FieldOptions = {}) {
this.name = key;
this.type = type;
this.options = {
...options,
fieldValue: options.fieldValue || key,
};
}
}