mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-19 13:41:10 +02:00
* Track the last PKI auto-tidy time ran for use across nodes - If the interval time for auto-tidy is longer then say a regularly scheduled restart of Vault, auto-tidy is never run. This is due to the time of the last run of tidy is only kept in memory and initialized on startup to the current time - Store the last run of any tidy, to maintain previous behavior, to a cluster local file, which is read in/initialized upon a mount initialization. * Add auto-tidy configuration fields for backing off at startup * Add new auto-tidy fields to UI * Update api docs for auto-tidy * Add cl * Update field description text * Apply Claire's suggestions from code review Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> * Implementing PR feedback from the UI team * remove explicit defaults and types so we retrieve from backend, decouple enabling auto tidy from duration, move params to auto settings section --------- Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> Co-authored-by: claire bontempo <cbontempo@hashicorp.com>
227 lines
10 KiB
TypeScript
227 lines
10 KiB
TypeScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
export const PKI_OVERVIEW = {
|
|
issueCertificateInput: '[data-test-issue-certificate-input]',
|
|
issueCertificatePowerSearch: '[data-test-issue-certificate-input] span',
|
|
issueCertificateButton: '[data-test-issue-certificate-button]',
|
|
viewCertificateInput: '[data-test-view-certificate-input]',
|
|
viewCertificatePowerSearch: '[data-test-view-certificate-input] span',
|
|
viewCertificateButton: '[data-test-view-certificate-button]',
|
|
viewIssuerPowerSearch: '[data-test-issue-issuer-input] span',
|
|
viewIssuerButton: '[data-test-view-issuer-button]',
|
|
firstPowerSelectOption: '[data-option-index="0"]',
|
|
};
|
|
|
|
// COMPONENTS
|
|
export const PKI_CONFIGURE_CREATE = {
|
|
// page::pki-configure-create
|
|
nextStepsBanner: '[data-test-config-next-steps]',
|
|
option: '[data-test-pki-config-option]',
|
|
optionByKey: (key: string) => `[data-test-pki-config-option="${key}"]`,
|
|
doneButton: '[data-test-done]',
|
|
configureButton: '[data-test-configure-pki-button]',
|
|
// pki-generate-root
|
|
generateRootOption: '[data-test-pki-config-option="generate-root"]',
|
|
// pki-ca-cert-import
|
|
importForm: '[data-test-pki-import-pem-bundle-form]',
|
|
importSubmit: '[data-test-pki-import-pem-bundle]',
|
|
importSectionLabel: '[data-test-import-section-label]',
|
|
importMapping: '[data-test-imported-bundle-mapping]',
|
|
importedIssuer: '[data-test-imported-issuer]',
|
|
importedKey: '[data-test-imported-key]',
|
|
// generate-intermediate
|
|
csrDetails: '[data-test-generate-csr-result]',
|
|
};
|
|
|
|
export const PKI_DELETE_ALL_ISSUERS = {
|
|
issuerLink: '[data-test-delete-all-issuers-link]',
|
|
deleteAllIssuerModal: '#confirmation-modal',
|
|
deleteAllIssuerInput: '[data-test-confirmation-modal-input="Delete all issuers?"]',
|
|
deleteAllIssuerButton: '[data-test-confirm-button="Delete all issuers?"]',
|
|
};
|
|
|
|
export const PKI_GENERATE_ROOT = {
|
|
mainSectionTitle: '[data-test-generate-root-title="Root parameters"]',
|
|
urlSectionTitle: '[data-test-generate-root-title="Issuer URLs"]',
|
|
keyParamsGroupToggle: '[data-test-toggle-group="Key parameters"]',
|
|
sanGroupToggle: '[data-test-toggle-group="Subject Alternative Name (SAN) Options"]',
|
|
additionalGroupToggle: '[data-test-toggle-group="Additional subject fields"]',
|
|
toggleGroupDescription: '[data-test-toggle-group-description]',
|
|
groupFields: (group: string) => `[data-test-group="${group}"] [data-test-field]`,
|
|
formInvalidError: '[data-test-pki-generate-root-validation-error]',
|
|
urlsSection: '[data-test-urls-section]',
|
|
urlField: '[data-test-urls-section] [data-test-input]',
|
|
// Shown values after save
|
|
saved: {
|
|
certificate: '[data-test-value-div="Certificate"] [data-test-certificate-card]',
|
|
commonName: '[data-test-row-value="Common name"]',
|
|
issuerName: '[data-test-row-value="Issuer name"]',
|
|
issuerLink: '[data-test-value-div="Issuer ID"] a',
|
|
keyName: '[data-test-row-value="Key name"]',
|
|
keyLink: '[data-test-value-div="Key ID"] a',
|
|
privateKey: '[data-test-value-div="Private key"] [data-test-certificate-card]',
|
|
serialNumber: '[data-test-row-value="Serial number"]',
|
|
},
|
|
};
|
|
|
|
export const PKI_CROSS_SIGN = {
|
|
objectListInput: (key: string, row = 0) => `[data-test-object-list-input="${key}-${row}"]`,
|
|
addRow: '[data-test-object-list-add-button',
|
|
statusCount: '[data-test-cross-sign-status-count]',
|
|
signedIssuerRow: (row = 0) => `[data-test-info-table-row="${row}"]`,
|
|
signedIssuerCol: (attr: string) => `[data-test-info-table-column="${attr}"]`,
|
|
rowValue: (attr: string) => `[data-test-row-value="${attr}"]`,
|
|
copyButton: (attr: string) => `[data-test-value-div="${attr}"] [data-test-copy-button]`,
|
|
};
|
|
|
|
export const PKI_ISSUER_DETAILS = {
|
|
configure: '[data-test-pki-issuer-configure]',
|
|
copyButtonByName: (name: string) => `[data-test-value-div="${name}"] [data-test-copy-button]`,
|
|
crossSign: '[data-test-pki-issuer-cross-sign]',
|
|
defaultGroup: '[data-test-details-group="default"]',
|
|
download: '[data-test-issuer-download]',
|
|
groupTitle: '[data-test-group-title]',
|
|
parsingAlertBanner: '[data-test-parsing-error-alert-banner]',
|
|
rotateModal: '#pki-rotate-root-modal',
|
|
rotateModalGenerate: '[data-test-root-rotate-step-one]',
|
|
rotateRoot: '[data-test-pki-issuer-rotate-root]',
|
|
row: '[data-test-component="info-table-row"]',
|
|
signIntermediate: '[data-test-pki-issuer-sign-int]',
|
|
urlsGroup: '[data-test-details-group="Issuer URLs"]',
|
|
valueByName: (name: string) => `[data-test-value-div="${name}"]`,
|
|
};
|
|
|
|
export const PKI_KEY_FORM = {
|
|
validationError: '[data-test-pki-key-validation-error]',
|
|
};
|
|
|
|
export const PKI_NOT_VALID_AFTER = {
|
|
radioTtl: '[data-test-radio-button="ttl"]',
|
|
radioTtlLabel: '[data-test-radio-label="ttl"]',
|
|
radioDate: '[data-test-radio-button="not_after"]',
|
|
radioDateLabel: '[data-test-radio-label="specificDate"]',
|
|
ttlForm: '[data-test-ttl-inputs]',
|
|
ttlTimeInput: '[data-test-ttl-value="TTL"]',
|
|
ttlUnitInput: '[data-test-select="ttl-unit"]',
|
|
dateInput: '[data-test-input="not_after"]',
|
|
};
|
|
|
|
export const PKI_ROLE_FORM = {
|
|
domainHandling: '[data-test-toggle-group="Domain handling"]',
|
|
keyParams: '[data-test-toggle-group="Key parameters"]',
|
|
keyUsage: '[data-test-toggle-group="Key usage"]',
|
|
digitalSignature: '[data-test-checkbox="DigitalSignature"]',
|
|
keyAgreement: '[data-test-checkbox="KeyAgreement"]',
|
|
keyEncipherment: '[data-test-checkbox="KeyEncipherment"]',
|
|
any: '[data-test-checkbox="Any"]',
|
|
serverAuth: '[data-test-checkbox="ServerAuth"]',
|
|
policyIdentifiers: '[data-test-toggle-group="Policy identifiers"]',
|
|
san: '[data-test-toggle-group="Subject Alternative Name (SAN) Options"]',
|
|
additionalSubjectFields: '[data-test-toggle-group="Additional subject fields"]',
|
|
};
|
|
|
|
export const PKI_ROLE_GENERATE = {
|
|
form: '[data-test-pki-generate-cert-form]',
|
|
optionsToggle: '[data-test-toggle-group="Subject Alternative Name (SAN) Options"]',
|
|
downloadButton: '[data-test-pki-cert-download-button]',
|
|
revokeButton: '[data-test-pki-cert-revoke-button]',
|
|
};
|
|
|
|
// PAGES
|
|
export const PKI_CONFIG_EDIT = {
|
|
errorBanner: '[data-test-config-edit-error]',
|
|
acmeEditSection: '[data-test-acme-edit-section]',
|
|
configEditSection: '[data-test-cluster-config-edit-section]',
|
|
configInput: (attr: string) => `[data-test-input="${attr}"]`,
|
|
stringListInput: (attr: string) => `[data-test-input="${attr}"] [data-test-string-list-input="0"]`,
|
|
urlsEditSection: '[data-test-urls-edit-section]',
|
|
urlFieldInput: (attr: string) => `[data-test-input="${attr}"] textarea`,
|
|
urlFieldLabel: (attr: string) => `[data-test-input="${attr}"] label`,
|
|
crlEditSection: '[data-test-crl-edit-section]',
|
|
crlToggleInput: (attr: string) => `[data-test-input="${attr}"] input`,
|
|
crlTtlInput: (attr: string) => `[data-test-ttl-value="${attr}"]`,
|
|
crlFieldLabel: (attr: string) => `[data-test-input="${attr}"] label`,
|
|
saveButton: '[data-test-configuration-edit-save]',
|
|
cancelButton: '[data-test-configuration-edit-cancel]',
|
|
validationAlert: '[data-test-configuration-edit-validation-alert]',
|
|
deleteButton: (attr: string) => `[data-test-input="${attr}"] [data-test-string-list-button="delete"]`,
|
|
groupHeader: (group: string) => `[data-test-crl-header="${group}"]`,
|
|
checkboxInput: (attr: string) => `[data-test-input="${attr}"]`,
|
|
};
|
|
|
|
export const PKI_ISSUER_LIST = {
|
|
// Page::PkiIssuerList
|
|
issuerListItem: (id: string) => `[data-test-issuer-list="${id}"]`,
|
|
importIssuerLink: '[data-test-generate-issuer="import"]',
|
|
generateIssuerDropdown: '[data-test-issuer-generate-dropdown]',
|
|
generateIssuerRoot: '[data-test-generate-issuer="root"]',
|
|
generateIssuerIntermediate: '[data-test-generate-issuer="intermediate"]',
|
|
issuerPopupDetails: '[data-test-pki-issuer-details]',
|
|
};
|
|
|
|
export const PKI_KEYS = {
|
|
// key index
|
|
importKey: '[data-test-pki-key-import]',
|
|
generateKey: '[data-test-pki-key-generate]',
|
|
keyId: '[data-test-key="id"]',
|
|
keyName: '[data-test-key="name"]',
|
|
popupMenuDetails: '[data-test-key-menu-link="details"]',
|
|
popupMenuEdit: '[data-test-key-menu-link="edit"]',
|
|
// key details
|
|
keyDeleteButton: '[data-test-pki-key-delete]',
|
|
downloadButton: '[data-test-download-button]',
|
|
keyEditLink: '[data-test-pki-key-edit]',
|
|
nextStepsAlert: '[data-test-pki-key-next-steps]',
|
|
};
|
|
|
|
export const PKI_ROLE_DETAILS = {
|
|
issuerLabel: '[data-test-row-label="Issuer"]',
|
|
noStoreValue: '[data-test-value-div="Store in storage backend"]',
|
|
noStoreMetadataValue: '[data-test-value-div="Store metadata in storage backend"]',
|
|
keyUsageValue: '[data-test-value-div="Key usage"]',
|
|
extKeyUsageValue: '[data-test-value-div="Ext key usage"]',
|
|
customTtlValue: '[data-test-value-div="Issued certificates expire after"]',
|
|
deleteRoleButton: '[data-test-pki-role-delete]',
|
|
generateCertLink: '[data-test-pki-role-generate-cert]',
|
|
signCertLink: '[data-test-pki-role-sign-cert]',
|
|
editRoleLink: '[data-test-pki-role-edit-link]',
|
|
createRoleLink: '[data-test-pki-role-create-link]',
|
|
};
|
|
|
|
export const PKI_TIDY_FORM = {
|
|
tidyFormName: (attr: string) => `[data-test-tidy-form="${attr}"]`,
|
|
inputByAttr: (attr: string) => `[data-test-input="${attr}"]`,
|
|
toggleInput: (attr: string) => `[data-test-input="${attr}"] input`,
|
|
acmeAccountSafetyBuffer: '[data-test-ttl-value="Tidy ACME enabled"]',
|
|
toggleLabel: (label: string) => `[data-test-toggle-label="${label}"]`,
|
|
tidySectionHeader: (header: string) => `[data-test-tidy-header="${header}"]`,
|
|
tidySave: '[data-test-pki-tidy-button]',
|
|
tidyCancel: '[data-test-pki-tidy-cancel]',
|
|
tidyPauseDuration: '[data-test-ttl-value="Pause duration"]',
|
|
editAutoTidyButton: '[data-test-pki-edit-tidy-auto-link]',
|
|
};
|
|
|
|
export const PKI_TIDY = {
|
|
hdsAlertTitle: '[data-test-tidy-status-alert-title]',
|
|
hdsAlertDescription: '[data-test-tidy-status-alert-description]',
|
|
alertUpdatedAt: '[data-test-tidy-status-alert-updated-at]',
|
|
cancelTidyAction: '[data-test-cancel-tidy-action]',
|
|
hdsAlertButtonText: '[data-test-cancel-tidy-action] .hds-button__text',
|
|
timeStartedRow: '[data-test-value-div="Time started"]',
|
|
timeFinishedRow: '[data-test-value-div="Time finished"]',
|
|
cancelTidyModalBackground: '#pki-cancel-tidy-modal',
|
|
tidyEmptyStateConfigure: '[data-test-tidy-empty-state-configure]',
|
|
manualTidyToolbar: '[data-test-pki-manual-tidy-config]',
|
|
autoTidyToolbar: '[data-test-pki-auto-tidy-config]',
|
|
tidyConfigureModal: {
|
|
configureTidyModal: '#pki-tidy-modal',
|
|
tidyModalAutoButton: '[data-test-tidy-modal-auto-button]',
|
|
tidyModalManualButton: '[data-test-tidy-modal-manual-button]',
|
|
tidyModalCancelButton: '[data-test-tidy-modal-cancel-button]',
|
|
tidyOptionsModal: '[data-test-pki-tidy-options-modal]',
|
|
},
|
|
};
|