Support and Compatibility
This page lists what the main branch of APF supports, which OpenShell version it is built against, and the status of each capability and integration.
Status Definitions
The documentation uses these status labels consistently.
Releases
APF does not publish tagged releases yet. Every workspace crate is at version 0.1.0. Security fixes are provided for the default branch, as described in the repository’s SECURITY.md.
The project’s CI builds release binaries of apf-policy-service and apf-policy-gateway on the default branch, together with a SHA-256 checksum for each binary, LICENSE, and THIRD_PARTY_LICENSES.txt. Refer to Release Notes.
OpenShell Compatibility
APF generates its OpenShell bindings from the OpenShell protobuf sources at a pinned commit. The sources are committed under contracts/third_party/openshell/proto, and the pin is recorded in contracts/third_party/pins.toml.
OpenShell 0.1.x requires every gateway interceptor and supervisor middleware to exchange extension protocol metadata during Describe. APF advertises extension protocol 1.0 with one required capability per extension:
openshell.gateway-interceptor.contractfor the gateway interceptor.openshell.supervisor-middleware.contractfor the supervisor middleware.
Both APF adapters validate the gateway’s metadata and fail Describe with FAILED_PRECONDITION when it is missing or incompatible, so a mismatched OpenShell gateway cannot register APF. OpenShell calls Describe on every registered extension when its gateway starts, and does not start if one fails, so upgrade OpenShell and APF together. Refer to Upgrade Guides.
Build Requirements
APF builds from source with Cargo.
If cargo build reports a missing vendored OpenShell proto, the committed sources under contracts/third_party/ are incomplete. Run cargo xtask vendor-protos to restore them from the pinned commits; the build does not fall back to a placeholder.
Platforms
The service binaries use Unix domain sockets with SO_PEERCRED peer checks. The systemd units in deploy/systemd/ target Linux hosts, and the container images in deploy/docker/ are based on Debian bookworm.
The Helm chart needs Helm 3 and a Kubernetes cluster. With the default state volume, the cluster needs a default StorageClass, or you set persistence.state.storageClass. The repository’s verification harness exercises the chart on a local kind cluster next to an OpenShell 0.1.3 gateway and the Agent Sandbox controller v1.0.3 that OpenShell’s Kubernetes driver requires. The Compose stack is verified on Docker Desktop for macOS, runs with the same files on Docker Engine, and passes the same verification on rootless Podman through its Docker-compatible API socket.
Capability Matrix
Policy Supply
Decision and Enforcement
Evidence and Response
Deployment and Integrations
Next Steps
- To diagnose a problem, refer to Troubleshooting.
- To prepare a host, refer to Prerequisites.