Stands & access · {{ project.name }}
Actions on liveWhere this project runs, how agents reach it and what they may do there unasked. relaybay stores references only, never passwords, keys or tokens. The guard ({{ project_policy.guard_mode }}, preset {{ project_policy.preset }}) is a safety net against mistakes, not a sandbox: it only recognises the names listed here.
{{ error }}
{% endif %} {% if confirm %}Confirm
{{ confirm.message }}
{{ e.name }}
{{ e.kind }} agents: {{ level }}{% if origin != "environment" %} ({{ origin_label(origin) }}){% endif %} {% set href = e.base_url|http_url %}{% if href %}{{ e.base_url }}{% endif %}-
{% if e.overrides %}
- Per capability
- {% for cap, lvl in e.overrides.items() %}{{ cap }}: {{ lvl }} {% endfor %} {% endif %}
- Sign in
- {{ "agent may sign in and remember the login" if e.sign_in_allowed else "no" }}{% if e.login_state_path %} ·
{{ e.login_state_path }}{% endif %}
{% if e.notes %} - Notes
- {{ e.notes }} {% endif %}
- Changed
- by {{ e.updated_by }}
Access
{% if e.access %}-
{% for a in e.access %}
-
{{ a.kind }}
{% for k, v in a.fields.items() %}{{ k }}
{{ v }}{% endfor %}{% for k in a.test_secrets %}{{ k }}•••(test secret){% endfor %} {{ error_for("access-" ~ a.id) }}Edit
{{ access_form("/p/" ~ project.slug ~ "/environments/" ~ e.id ~ "/access/" ~ a.id, "", a, tests_allowed) }}
{% endfor %}
No access entries yet.
{% endif %}Add access
{{ access_form("/p/" ~ project.slug ~ "/environments/" ~ e.id ~ "/access", "access-new-" ~ e.id, None, tests_allowed) }}Edit environment and level
{{ environment_form(e, "/p/" ~ project.slug ~ "/environments/" ~ e.id, "") }}No environments yet. Add local, test and live below; agents read them with environments_get.
Add an environment
Levels from the policy: local {{ project_policy.level("local") }}, test {{ project_policy.level("test") }}, live {{ project_policy.level("live") }} (Settings → Policy). Raising live above read asks for a confirmation.
{{ environment_form(None, "/p/" ~ project.slug ~ "/environments", "new") }}