{{define "content"}}

Approval centre

Actions a mind wants to take that policy marks ASK. Approvals are bound to the exact request; modified parameters are re-validated and recorded.

{{$op := .Principal.User.Role.AtLeast "operator"}}

Pending {{len .Data.Pending}}

{{if .Data.Pending}}{{range .Data.Pending}}
{{.Risk}} {{index $.Data.MindNames .MindID}} wants {{.Capability}}{{if .Target}} on {{.Target}}{{end}} · requested {{ago .CreatedAt}} · expires {{.ExpiresAt.Local.Format "02 Jan 15:04"}}{{if .EventID}} · event{{end}}

Reason

{{if .Reason}}{{.Reason}}{{else}}none given{{end}}

{{if .Evidence}}

Evidence

    {{range .Evidence}}
  • {{.Kind}} {{if eq .Kind "event"}}{{.ID}}{{else}}{{.ID}}{{end}} {{.Note}}
  • {{end}}
{{end}}

Parameters

{{pretty (jsonOf .Params)}}
{{if $op}}
Modify parameters before approving
{{end}}
{{end}} {{else}}

Nothing is waiting.

{{end}}

Decided recently

{{if .Data.Decided}}{{range .Data.Decided}}{{end}}
StatusMindActionByNoteWhen
{{.Status}}{{index $.Data.MindNames .MindID}}{{.Capability}} {{.Target}}{{if .Error}}
{{.Error}}
{{end}}
{{.DecisionBy}}{{.DecisionNote}}{{ago .CreatedAt}}
{{else}}

None.

{{end}}

Executions

{{if .Data.Executions}}{{range .Data.Executions}}{{end}}
MindCapabilityTargetResultms
{{index $.Data.MindNames .MindID}}{{.Capability}}{{.Target}}{{if .Error}}{{trunc .Error 80}}{{else}}{{payloadField .Result "summary"}}{{end}}{{.DurationMS}}{{if .EventID}}event{{end}}
{{else}}

None yet.

{{end}}
{{end}}