mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
* Gallery allows picking stuff * Small fixes * added sentinel templates * Can set enforcement level on policies * Working on the interactive sentinel dev mode * Very rough development flow on FE * Changed position in gutter menu * More sentinel stuff * PR cleanup: removed testmode, removed unneeded mixins and deps * Heliosification * Index-level sentinel policy deletion and page title fixes * Makes the Canaries sentinel policy real and then comments out the unfinished ones * rename Access Control to Administration in prep for moving Sentinel Policies and Node Pool admin there * Sentinel policies moved within the Administration section * Mirage fixture for sentinel policy endpoints * Description length check and 500 prevention * Sync review PR feedback addressed, implied butons on radio cards * Cull un-used sentinel policies --------- Co-authored-by: Mike Nomitch <mail@mikenomitch.com>
91 lines
2.3 KiB
Handlebars
91 lines
2.3 KiB
Handlebars
{{!
|
|
Copyright (c) HashiCorp, Inc.
|
|
SPDX-License-Identifier: BUSL-1.1
|
|
~}}
|
|
|
|
<form class="acl-form" autocomplete="off" {{on "submit" this.save}}>
|
|
{{#if @policy.isNew }}
|
|
<Hds::Form::TextInput::Field
|
|
@isRequired={{true}}
|
|
data-test-policy-name-input
|
|
@value={{@policy.name}}
|
|
{{on "input" this.updatePolicyName}}
|
|
{{autofocus}}
|
|
as |F|>
|
|
<F.Label>Policy Name</F.Label>
|
|
</Hds::Form::TextInput::Field>
|
|
{{/if}}
|
|
|
|
<div class="boxed-section">
|
|
<div class="boxed-section-head">
|
|
Policy Definition
|
|
</div>
|
|
<div class="boxed-section-body is-full-bleed">
|
|
<div
|
|
class="policy-editor"
|
|
data-test-policy-editor
|
|
{{code-mirror
|
|
screenReaderLabel="Policy definition"
|
|
theme="hashi"
|
|
mode="ruby"
|
|
content=@policy.policy
|
|
onUpdate=this.updatePolicy
|
|
autofocus=false
|
|
extraKeys=(hash Cmd-Enter=this.save)
|
|
}} />
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<label>
|
|
<span>
|
|
Description (optional)
|
|
</span>
|
|
<Input
|
|
data-test-policy-description
|
|
@value={{@policy.description}}
|
|
class="input"
|
|
/>
|
|
</label>
|
|
</div>
|
|
|
|
<div>
|
|
<Hds::Form::Radio::Group @layout="horizontal" @name="method-demo1" {{on "change" this.updatePolicyEnforcementLevel}} as |G|>
|
|
<G.Legend>Enforcement Level</G.Legend>
|
|
<G.HelperText>See <Hds::Link::Inline @href="https://developer.hashicorp.com/nomad/tutorials/access-control/access-control-tokens#token-types">Sentinel Policy documentation</Hds::Link::Inline> for more information.</G.HelperText>
|
|
<G.Radio::Field
|
|
@id="advisory"
|
|
checked={{eq @policy.enforcementLevel "advisory"}}
|
|
data-test-token-type="client"
|
|
as |F|>
|
|
<F.Label>Advisory</F.Label>
|
|
</G.Radio::Field>
|
|
<G.Radio::Field
|
|
@id="soft-mandatory"
|
|
checked={{eq @policy.enforcementLevel "soft-mandatory"}}
|
|
data-test-token-type="soft-mandatory"
|
|
as |F|>
|
|
<F.Label>Soft Mandatory</F.Label>
|
|
</G.Radio::Field>
|
|
<G.Radio::Field
|
|
@id="hard-mandatory"
|
|
checked={{eq @policy.enforcementLevel "hard-mandatory"}}
|
|
data-test-token-type="hard-mandatory"
|
|
as |F|>
|
|
<F.Label>Hard Mandatory</F.Label>
|
|
</G.Radio::Field>
|
|
</Hds::Form::Radio::Group>
|
|
</div>
|
|
|
|
<footer>
|
|
{{#if (can "update sentinel-policy")}}
|
|
<Hds::Button
|
|
@text="Save Policy"
|
|
@type="submit"
|
|
data-test-save-policy
|
|
{{on "click" this.save}}
|
|
/>
|
|
{{/if}}
|
|
</footer>
|
|
</form>
|