{% from "components.html" import dot %}
{% set shell_base = base ~ "/shell" %}
- Policy
-
{% if shell_gate.policy_id %}
{{ shell_gate.policy_name }}
{% else %}
{{ "temporary edit" if shell_gate.policy_tag[0] == "temporary" else "none" }}
{% endif %}
{{ shell_gate.policy_tag[0] }}
- Configured
-
{{ shell_gate.configured }}
- Capabilities
-
{% for name in shell_gate.capabilities %}
{{ name }}
{% else %}
none
{% endfor %}
- Mount root
-
{% for root in shell_gate.roots %}
{{ root }}
{% else %}
none
{% endfor %}
- Changed live
-
{{ shell_gate.changed }}
{% for tile in shell_gate.tiles %}
{{ tile.label | upper }}
{% if tile.tone and tile.counted %}{{ dot(tile.tone) }}{% endif %}
{{ tile.value }}
{{ tile.note }}
{% endfor %}
{% if not shell_gate.started %}
The Run has not started
The runner configures the shell gate when it starts the VM.
Calls show here from then on.
{% elif not shell_gate.groups and not shell_gate.grants %}
No call yet
This Run has no shell policy, so the gate grants no capability and the agent is offered no shell tool.
Calls and the paths they read show here once a policy grants a capability.
{% else %}
| CAPABILITY |
PATH |
ALLOWED |
DENIED |
LAST CALL |
{% for group in shell_gate.groups %}
{{ group.capability }}
|
{{ group.path }} |
{{ group.allowed }} |
{{ group.denied }} |
{{ group.last }} |
{% else %}
| No call yet. |
{% endfor %}
| TIME |
DECISION |
CAPABILITY |
PATH |
REASON |
{% for row in shell_gate.calls %}
|
{{ row.time }}
|
{{ row.decision }}
|
{{ row.capability }}
|
{{ row.path }} |
{{ row.reason }} |
{% else %}
| No call yet. |
{% endfor %}
{% endif %}