open-vault/ui/app/templates/vault/cluster/init.hbs
Matthew Irish 1f4f2b2f0f
Ui ie11 button form attr (#4378)
* move submit buttons in auth-form into a form tag because IE11 is sad

* add acceptance test for auth-method clearing

* update ember-cli-page-object

* actually remove the form attr on the auth-form component

* remove form attribute on init form

* remove form attribute from shamir-flow component

* stringify not strigify
2018-04-17 17:04:34 -05:00

173 lines
6.2 KiB
Handlebars
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{#splash-page as |s|}}
{{#s.header}}
<div class="has-text-white-bis">
Connect to Vault and initialize
</div>
{{/s.header}}
{{#s.content}}
{{#if keyData}}
<div class="box is-marginless is-shadowless">
<div class="columns is-mobile">
<div class="column is-half">
<h1 class="title is-5">
Vault has been initialized!
</h1>
</div>
<div class="column is-half is-relative">
<div class="init-illustration">
{{partial "svg/initialize"}}
</div>
</div>
</div>
<div class="message is-highlight is-relative">
<div class="message-body">
<h4 class="title is-uppercase is-7 is-marginless">
Initial Root Token
</h4>
<code class="is-word-break">{{keyData.root_token}}</code>
</div>
</div>
<div class="content">
<p>
Please securely distribute the keys below. When the Vault is re-sealed, restarted, or stopped, you must provide at least <strong class="has-text-danger">{{secret_threshold}}</strong> of these keys to unseal it again.
Vault does not store the master key. Without at least <strong class="has-text-danger">{{secret_threshold}}</strong> keys, your Vault will remain permanently sealed.
</p>
</div>
{{#each (if keyData.keys_base64 keyData.keys_base64 keyData.keys) as |key index| }}
<div class="message is-list">
<div class="message-body">
<h4 class="title is-7 is-uppercase is-marginless">
Key {{add index 1}}
</h4>
<code class="is-word-break">{{key}}</code>
</div>
</div>
{{/each}}
</div>
<div class="box is-marginless is-shadowless has-background-white-bis">
<div class="field is-grouped-split">
{{#if model.sealed}}
<div class="control">
{{#link-to 'vault.cluster.unseal' model.name class="button is-primary"}}
Continue to Unseal
{{/link-to}}
</div>
{{else}}
<div class="control">
{{#link-to 'vault.cluster.auth' model.name class="button is-primary"}}
Continue to Authenticate
{{/link-to}}
</div>
{{/if}}
{{download-button
actionText="Download Keys"
data=keyData
filename=keyFilename
mime="application/json"
extension="json"
class="button"
stringify=true
}}
</div>
</div>
{{else}}
<form {{action 'initCluster' (hash
secret_shares=secret_shares
secret_threshold=secret_threshold
pgp_keys=pgp_keys
use_pgp=use_pgp
use_pgp_for_root=use_pgp_for_root
root_token_pgp_key=root_token_pgp_key
)
on="submit"
}}
id="init"
>
<div class="box is-marginless is-shadowless">
<div class="columns is-mobile">
<div class="column is-half">
<h1 class="title is-5">
Lets set up the initial set of master keys and the backend data store structure
</h1>
</div>
<div class="column is-half is-relative">
<div class="init-illustration">
{{partial "svg/initialize"}}
</div>
</div>
</div>
{{message-error errors=errors}}
<div class="columns is-mobile">
<div class="column is-half">
<div class="field">
<label for="key-shares" class="is-label">
Key Shares
</label>
<div class="control">
{{input class="input" name="key-shares" type="number" step="1" min="1" pattern="[0-9]*" value=secret_shares}}
</div>
<p class="help has-text-grey">
The number of key shares to split the master key into
</p>
</div>
</div>
<div class="column is-half">
<div class="field">
<label for="key-threshold" class="is-label">
Key Threshold
</label>
<div class="control">
{{input class="input" name="key-threshold" type="number" step="1" min="1" pattern="[0-9]*" value=secret_threshold}}
</div>
<p class="help has-text-grey">
The number of key shares required to reconstruct the master key
</p>
</div>
</div>
</div>
{{toggle-button
openLabel="Encrypt Output with PGP"
closedLabel="Encrypt Output with PGP"
toggleTarget=this
toggleAttr="use_pgp"
class="is-block"
}}
{{#if use_pgp}}
<div class="box">
<p class="help has-text-grey">
The output unseal keys will be encrypted and hex-encoded, in order, with the given public keys.
</p>
{{pgp-list listLength=secret_shares onDataUpdate=(action 'setKeys')}}
</div>
{{/if}}
{{toggle-button
openLabel="Encrypt Root Token with PGP"
closedLabel="Encrypt Root Token with PGP"
toggleTarget=this
toggleAttr="use_pgp_for_root"
class="is-block"
}}
{{#if use_pgp_for_root}}
<div class="box">
<p class="help has-text-grey">
The root unseal key will be encrypted and hex-encoded with the given public key.
</p>
{{pgp-list listLength=1 onDataUpdate=(action 'setRootKey')}}
</div>
{{/if}}
</div>
<div class="box is-marginless is-shadowless has-background-white-bis">
<button
type="submit"
class="button is-primary {{if loading 'is-loading'}}"
disabled={{loading}}
>
Initialize
</button>
</div>
</form>
{{/if}}
{{/s.content}}
{{/splash-page}}