Skip to content

Execution Surfaces

Ovara intercepts 11 execution surface types. Every surface routes through the same decision pipeline: identity, lease, policy, trust, receipt.

Surfaces

SurfaceExamples
shellshell:git push origin main, shell commands
execDirect process execution
git.pushPush to remotes
git.pullPull from remotes
git.fetchFetch from remotes
git.checkoutBranch and ref checkouts
github.pushGitHub push events
github.prPull request operations
github.mergeBranch merges into protected branches
github.delete_branchBranch deletion
ci.triggerCI/CD pipeline triggers
shell.sandboxedOpt-in sandboxed execution (OVARA_SANDBOX_ENABLED=true)

The core check endpoint

bash
curl -X POST http://localhost:8080/v1/runtime/check \
  -H "Content-Type: application/json" \
  -d '{
    "action_type": "shell",
    "resource": "shell:git push origin main",
    "agent_identity": { "issuer": "ovara", "subject_id": "agt_001" },
    "environment": "dev"
  }'

Batch checks

bash
POST /v1/runtime/batch-check

Evaluate many actions in one round trip.

Approval workflow

Escalated decisions move through a continuation state machine:

escalated -> approved -> queued -> executing -> executed

With race-safe atomic claiming, panic recovery, and a stuck-executing sweep. After repeated escalations an agent may be auto-restricted.

Containment

Compromised or drifting agents can be restricted at runtime:

bash
POST /v1/shield/restrict/{agent_id}

Shield endpoints expose anomaly signals and trust-degradation hooks.

Production hardening

  • AppArmor mandatory access control profile
  • eBPF ring-buffer syscall interceptor
  • Seccomp syscall allowlist (~130 syscalls)
  • Firecracker microVM sandbox config
  • Multi-region Terraform Kubernetes manifests
  • systemd, Docker, and Docker Compose deployment

Released under the Apache 2.0 License.