Skip to content

Commit 0542206

Browse files
committed
fixup! Add one-command mock services demo
1 parent 2a92f04 commit 0542206

1 file changed

Lines changed: 3 additions & 50 deletions

File tree

README.md

Lines changed: 3 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -10,56 +10,9 @@ The proxy accepts incoming mTLS connections, extracts a custom extension value f
1010
cargo build --release
1111
```
1212

13-
The sidecar uses a simulated TPM identity. Install the native TPM stack before
14-
building or running it:
15-
16-
```bash
17-
sudo apt-get install libtss2-dev swtpm tpm2-tools pkg-config
18-
```
19-
20-
## Quick start
21-
22-
```bash
23-
./demo/setup.sh
24-
```
25-
26-
The setup script generates demo TLS material, creates `config.toml` when needed,
27-
starts Postgres and static HTTPS mock services with Podman Compose or Docker Compose, applies the
28-
database migration, builds and starts the gateway, enrolls a demo principal,
29-
grants access to `docstore` and `messaging`, creates a demo agent handle, and
30-
verifies that Claude Code can fetch `https://docstore/health` through the
31-
gateway.
32-
33-
`demo/generate-server-certs.sh` creates gateway TLS material (`server-ca.pem`,
34-
`server.pem`, ...) and mock HTTPS service TLS material (`mock-ca.pem`,
35-
`mock-services.pem`, ...). The local demo enrolls with `./demo/demo-agent.sh`,
36-
which starts a local `swtpm`, creates a persistent P-256 signing key in that
37-
simulated TPM, and prepares `machine-client.pem` as a certificate carrier for
38-
that public key and identity extension. The gateway does not trust a client CA
39-
bundle; it authorizes the exact subject public key recorded in signed Postgres
40-
permission rows.
41-
42-
`demo/setup.sh` keeps its tpm2-pkcs11 state under the demo state directory by
43-
default. Override `AGENT_GATEWAY_DEMO_TPM2_PKCS11_STORE` only when you
44-
intentionally want the demo principal to use another store.
45-
46-
After setup, prompt the demo agent:
47-
48-
```bash
49-
./demo/demo-agent.sh prompt agent-alpha \
50-
--prompt "Use the Bash tool to run exactly these commands: curl -sS https://docstore/documents and curl -sS https://messaging/messages. Then summarize what you found."
51-
```
52-
53-
On later runs, start the gateway first and use `./demo/demo-agent.sh prompt`. `./demo/connect.sh` prepares `machine-client.pem` for the current simulated TPM key and identity extension whenever it prepares or starts the sidecar. `--regenerate-certs` creates a fresh simulated TPM state; any permissions for the old subject key will no longer match.
54-
55-
Pass a custom policy extension value: `./demo/connect.sh start-sidecar ... --extension-value agent-beta`. The extension value must match `permission_registry.subject_identity` in an active signed permission row.
56-
57-
The simulated TPM state lives under `$AGENT_STATE/client/swtpm/`. By default,
58-
the sidecar uses TCTI `swtpm:host=127.0.0.1,port=2321` and persistent handle
59-
`0x81010004`; override the handle or simulator data port with
60-
`./demo/connect.sh start-sidecar --tpm-handle` and
61-
`--swtpm-port`. The swtpm control port is always the data port plus one, which
62-
matches the TSS swtpm TCTI convention.
13+
The end-to-end demo, sidecar, TPM setup, mock services, and registry helper
14+
scripts live in the split demo repository. The demo pins a gateway image such as
15+
`ghcr.io/TODO_ORG/TODO_IMAGE:TODO_TAG` and does not require this source checkout.
6316

6417
## Configuration
6518

0 commit comments

Comments
 (0)