mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-18 12:37:02 +02:00
* UI: HDS adoption replace AlertBanner part 1 (#21163) * rename test selector * replace db banner * add class * replace db role edit * db creds * generate creds * simpler class * license banner component * oidc callback plash * raft * aws * secret create or update * change to compact alert for form field * change back to inline * combine alert banners * wrap in conditional * remove references to message class * UI: HDS adoption replace AlertBanner part 2 (#21243) * token expire warning * delete css * edit form * item details distribute mfa step 2 transit verify * back to secondary * distribute * oidc lease error * sign * kv obj and repl dash * more repl * update test selector * show, creds * shamir * pki csr * pki banners * add hds library to ember engines * woops comma * fix k8 test * update message error component for last! * hold off MessageError changes until next pr * revert test selectors * update pki tests * UI: part 3 remove alert banner (#21334) * final component swap * and actual final of MessageError * update MessageError selectors * delete alert-banner and remove references * update next step alerts to highlight color * finishing touches, auth form test and client dashboard inline link * fix more selectors * fix shamir flow test * ui: part 4 final cleanup (#21365) * replace AlertPopup * add test tag * move tag * one more message error tag * delete alert popup * final css cleanup * move preformatted flash into <p> tag * ui: address comments for sidebranch (#21388) * add periods, move link to trailing * more periods and typo fix
193 lines
6.4 KiB
Handlebars
193 lines
6.4 KiB
Handlebars
<Toolbar>
|
|
<ToolbarActions>
|
|
<div class="toolbar-separator"></div>
|
|
{{#if @autoTidyConfig.enabled}}
|
|
<ToolbarLink @route="tidy.auto" data-test-pki-auto-tidy-config>
|
|
Auto-tidy configuration
|
|
</ToolbarLink>
|
|
<ToolbarLink @route="tidy.manual" data-test-pki-manual-tidy-config>
|
|
Perform manual tidy
|
|
</ToolbarLink>
|
|
{{else}}
|
|
<button
|
|
type="button"
|
|
class="toolbar-link"
|
|
{{on "click" (fn (mut this.tidyOptionsModal) true)}}
|
|
data-test-pki-tidy-options-modal
|
|
>
|
|
Tidy
|
|
<Icon @name="chevron-right" />
|
|
</button>
|
|
{{/if}}
|
|
</ToolbarActions>
|
|
</Toolbar>
|
|
|
|
{{#if this.hasTidyConfig}}
|
|
<Hds::Alert
|
|
@type="inline"
|
|
@color={{this.tidyStateAlertBanner.color}}
|
|
@icon={{this.tidyStateAlertBanner.icon}}
|
|
class="has-top-margin-m"
|
|
data-test-tidy-status-alert
|
|
as |A|
|
|
>
|
|
<A.Title data-test-tidy-status-alert-title>{{this.tidyStateAlertBanner.title}}</A.Title>
|
|
<A.Description data-test-tidy-status-alert-description>{{this.tidyStateAlertBanner.message}}</A.Description>
|
|
{{#if this.tidyStateAlertBanner.shouldShowCancelTidy}}
|
|
<A.Button
|
|
@text="Cancel tidy"
|
|
@color="critical"
|
|
@icon={{if this.cancelTidy.isRunning "loading"}}
|
|
{{on "click" (fn (mut this.confirmCancelTidy) true)}}
|
|
data-test-cancel-tidy-action
|
|
/>
|
|
{{/if}}
|
|
{{#if @tidyStatus.responseTimestamp}}
|
|
<A.Description class="has-top-margin-xs" data-test-tidy-status-alert-updated-at>
|
|
Updated
|
|
{{date-format @tidyStatus.responseTimestamp "MMM d yyyy, h:mm:ss aaa" withTimeZone=true}}
|
|
</A.Description>
|
|
{{/if}}
|
|
</Hds::Alert>
|
|
|
|
{{#each this.tidyStatusGeneralFields as |attr|}}
|
|
<InfoTableRow
|
|
@label={{humanize (dasherize attr)}}
|
|
@formatDate={{if
|
|
(includes attr (array "time_started" "time_finished" "last_auto_tidy_finished"))
|
|
"MMM dd, yyyy hh:mm:ss a"
|
|
}}
|
|
@value={{get @tidyStatus attr}}
|
|
@alwaysRender={{true}}
|
|
/>
|
|
{{/each}}
|
|
|
|
<h2 class="title is-4 has-bottom-margin-xs has-top-margin-l has-border-bottom-light has-bottom-padding-s">
|
|
{{if (eq this.tidyState "Running") "Current" "Last"}}
|
|
tidy settings
|
|
</h2>
|
|
{{#each this.tidyStatusConfigFields as |attr|}}
|
|
<InfoTableRow
|
|
@label={{humanize (dasherize attr)}}
|
|
@value={{get @tidyStatus attr}}
|
|
@formatTtl={{includes attr (array "safety_buffer" "issuer_safety_buffer")}}
|
|
@alwaysRender={{true}}
|
|
/>
|
|
{{/each}}
|
|
|
|
{{#if this.isEnterprise}}
|
|
{{#each this.crossClusterOperation as |attr|}}
|
|
<InfoTableRow
|
|
@label={{humanize (dasherize attr)}}
|
|
@value={{get @tidyStatus attr}}
|
|
@formatTtl={{eq attr "revocation_queue_safety_buffer"}}
|
|
@alwaysRender={{true}}
|
|
/>
|
|
{{/each}}
|
|
{{/if}}
|
|
{{else}}
|
|
<EmptyState
|
|
@title="Tidy status unavailable"
|
|
@message="After the next tidy operation has been performed, information about the current or most recent tidy operation will display here."
|
|
>
|
|
<button
|
|
type="button"
|
|
class="link"
|
|
{{on "click" (fn (mut this.tidyOptionsModal) true)}}
|
|
data-test-tidy-empty-state-configure
|
|
>
|
|
Tidy
|
|
</button>
|
|
</EmptyState>
|
|
{{/if}}
|
|
|
|
{{! TIDY OPTIONS MODAL }}
|
|
<Modal
|
|
@title="Tidy this mount"
|
|
@onClose={{fn (mut this.tidyOptionsModal) false}}
|
|
@isActive={{this.tidyOptionsModal}}
|
|
@showCloseButton={{true}}
|
|
>
|
|
<section aria-label="tidy-options-modal-content" class="modal-card-body">
|
|
<h3 class="title is-5">How tidying will work</h3>
|
|
<p class="has-text-grey has-bottom-padding-s">
|
|
Tidying cleans up the storage backend and/or CRL by removing certificates that have expired and are past a certain
|
|
buffer period beyond their expiration time.
|
|
<DocLink @path="/vault/docs/secrets/pki/considerations#automate-crl-building-and-tidying">
|
|
Documentation.
|
|
</DocLink>
|
|
</p>
|
|
<p class="has-text-grey">
|
|
<ol class="has-left-margin-m has-bottom-margin-s">
|
|
<li>Select a tidy operation:</li>
|
|
<ul class="bullet has-bottom-margin-xs">
|
|
<li><strong>Automatic tidy</strong>
|
|
periodically runs a tidy operation with saved configuration settings after waiting the specified interval
|
|
duration between tidies
|
|
</li>
|
|
<li><strong>Manual tidy</strong> runs a tidy operation once</li>
|
|
</ul>
|
|
<li>Configure the parameters that determine how to tidy and run the operation.</li>
|
|
</ol>
|
|
</p>
|
|
<div class="has-top-margin-l has-padding">
|
|
<img src={{img-path "~/pki-tidy.png"}} alt="tidy operation diagram" />
|
|
</div>
|
|
</section>
|
|
<footer aria-label="tidy-option-buttons" class="modal-card-foot modal-card-foot-outlined">
|
|
<button
|
|
type="button"
|
|
class="button is-primary"
|
|
{{on "click" (transition-to "vault.cluster.secrets.backend.pki.tidy.auto.configure")}}
|
|
data-test-tidy-modal-auto-button
|
|
>
|
|
Automatic tidy
|
|
</button>
|
|
<button
|
|
type="button"
|
|
class="button is-primary"
|
|
{{on "click" (transition-to "vault.cluster.secrets.backend.pki.tidy.manual")}}
|
|
data-test-tidy-modal-manual-button
|
|
>
|
|
Manual tidy
|
|
</button>
|
|
<button
|
|
type="button"
|
|
class="button is-secondary"
|
|
{{on "click" (fn (mut this.tidyOptionsModal) false)}}
|
|
data-test-tidy-modal-cancel-button
|
|
>
|
|
Cancel
|
|
</button>
|
|
</footer>
|
|
</Modal>
|
|
|
|
{{! CANCEL TIDY CONFIRMATION MODAL }}
|
|
{{#if this.confirmCancelTidy}}
|
|
<Modal
|
|
@type="warning"
|
|
@title="Cancel tidy?"
|
|
@onClose={{fn (mut this.confirmCancelTidy) false}}
|
|
@isActive={{this.confirmCancelTidy}}
|
|
@showCloseButton={{true}}
|
|
>
|
|
<section aria-label="confirm-cancel-modal-content" class="modal-card-body">
|
|
This will cancel the tidy at the next available checkpoint, which may process additional certificates between when the
|
|
operation was marked as cancelled and when the operation stopped.
|
|
<p class="has-top-margin-s">Click “Confirm” to cancel the running tidy operation.</p>
|
|
</section>
|
|
<footer aria-label="confirm-cancel-buttons" class="modal-card-foot modal-card-foot-outlined">
|
|
<button
|
|
type="button"
|
|
class="button is-primary"
|
|
{{on "click" (perform this.cancelTidy)}}
|
|
data-test-tidy-modal-cancel-button
|
|
>
|
|
Confirm
|
|
</button>
|
|
<button type="button" class="button is-secondary" {{on "click" (fn (mut this.confirmCancelTidy) false)}}>
|
|
Cancel
|
|
</button>
|
|
</footer>
|
|
</Modal>
|
|
{{/if}} |