Every app instance, handler, sandbox, and GitHub Actions runner runs in a
hardware-isolated VM with its own Linux kernel. Container images package the
workload; the VM is the isolation boundary. Workloads do not share the host
kernel.

## VM boundary

An instance's memory and writable root are private to its VM and disappear
with the instance. Only explicit persistent state survives: `/shared.db`,
`/shared/`, or a [persistent volume](/docs/volumes).

Sandboxes and CI runners are destroyed after one run or job. App instances
restore from immutable deploy snapshots and keep changes in private
copy-on-write layers.

## network boundary

Apps join an account-scoped private network. Other accounts cannot initiate
connections to it. Compose `ports` publishes a service through Kedge's HTTPS
edge; `expose` remains private.

Public endpoints terminate TLS automatically. Cross-region private traffic
uses the encrypted fleet mesh. Sandboxes have outbound access by default;
`kedge eval -no-network` and `kedge sandbox -no-network` leave only loopback.
Anonymous sandboxes are always networkless.

See [network & domains](/docs/network) for ingress and private addressing.

## access and secrets

SSH keys authenticate CLI and Git operations. GitHub authenticates the web
console; expiring bearer tokens authenticate the [REST API](/docs/api) and can
be restricted to named apps and operations. App, repository, data, and runtime
operations enforce the owning account.

Coding-agent projects within one workspace share its VM and filesystem. Use
separate named workspaces when projects need isolation from each other.

An unknown verified SSH key starts a guest session. Run `login` there to link
that key to your web account and keep its apps.

An [app authentication policy](/docs/authentication) protects any static site,
HTML app, handler, or service at ingress and passes verified identity to the
workload.

Keep secrets out of source with `kedge env` or Compose secrets. Generated
secrets are stored outside Git and mounted under `/run/secrets`; see [secrets
and configs](/docs/compose#secrets-and-configs).

Report security issues to
[support@kedge.dev](mailto:support@kedge.dev).
