Skip to content

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:

StageMeaning
DeclaredA protocol or requirement states the authority it needs.
DisplayedInstall and plan review surfaces show the authority change before it is accepted.
StructuralThe resolver, install path, or call site refuses work that exceeds the granted envelope.
IsolatedThe 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

AuthorityCurrent behavior
fsGrant-bound at requirement binding; runtime file access is mediated by providers and permission services.
networkGrant-bound at requirement binding; provider code performs the egress.
model_spendGrant-bound at binding and visible through the kernel resource meter.
child_run_spawnGrant-bound at binding; child work enters through Run identity.
inter_space_invocationChecked before a caller can delegate to another space.
secretDeclared and reviewable; concrete secret-store enforcement lands with the secret-store runtime.
provider_rightChecked during high-trust provider install/import.
isolation_classEnvironment 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.