Aster Security Model
Security boundaries for the Aster product runtime.
Aster security is defined by Distro and exposed through Gate framework boundaries. Protocols declare the authority their operations imply, spaces declare the capabilities they require, and Distro binds those requirements only when the space has matching entitlement grants.
Enforcement Maturity
Aster uses four words for trust claims:
| Stage | Meaning |
|---|---|
| Declared | A protocol or requirement states the authority it needs. |
| Displayed | Install and plan review surfaces show the authority change before it is accepted. |
| Structural | The resolver, install path, or call site refuses work that exceeds the granted envelope. |
| Isolated | The operating system or substrate enforces the boundary directly. |
Current Aster builds are structural for entitlement binding and cooperative at runtime. That means ungranted capability requirements do not bind, high-trust provider rights are checked during install/import, inter-space delegation requires caller entitlement, and environment-provider selection refuses weaker isolation classes. Once work is bound, provider code and host runtime services still perform the operation; Aster does not yet claim platform-wide OS-level namespace, ACL, or sandbox enforcement for every authority kind.
Authority Kinds
| Authority | Current behavior |
|---|---|
fs | Grant-bound at requirement binding; runtime file access is mediated by providers and permission services. |
network | Grant-bound at requirement binding; provider code performs the egress. |
model_spend | Grant-bound at binding and visible through the kernel resource meter. |
child_run_spawn | Grant-bound at binding; child work enters through Run identity. |
inter_space_invocation | Checked before a caller can delegate to another space. |
secret | Declared and reviewable; concrete secret-store enforcement lands with the secret-store runtime. |
provider_right | Checked during high-trust provider install/import. |
isolation_class | Environment providers declare process, container, or vm; demands and gateway floors refuse weaker providers. |
Gate modules project only the spaces, tools, skills, services, apps, and
marketplace sources selected by Distro or installed by the user. Concrete
providers such as database, analytics, and observability adapters live outside
@aster/gate, so product runtimes can swap infrastructure without changing the
framework.