Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# trusted-server-adapter-fastly → wasm32-wasip1 (Fastly Compute)
# trusted-server-adapter-axum → native (dev server)
# trusted-server-adapter-cloudflare → wasm32-unknown-unknown (Cloudflare Workers)
# trusted-server-adapter-spin → wasm32-wasip1 (Fermyon Spin)
# trusted-server-adapter-spin → wasm32-wasip2 (Fermyon Spin)
# trusted-server-cli → native (operator CLI)
#
# All adapters are workspace members so `-p` resolves each.
Expand Down Expand Up @@ -54,9 +54,9 @@ clippy-cloudflare-wasm = "clippy -p trusted-server-adapter-cloudflare --target w
test-cloudflare = "test -p trusted-server-adapter-cloudflare"

# --- Spin adapter (native host tests + wasm32-wasip1 target) ---
check-spin = "check -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin"
check-spin = "check -p trusted-server-adapter-spin --target wasm32-wasip2 --features spin"
clippy-spin-native = "clippy -p trusted-server-adapter-spin --all-targets -- -D warnings"
clippy-spin-wasm = "clippy -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin --lib -- -D warnings"
clippy-spin-wasm = "clippy -p trusted-server-adapter-spin --target wasm32-wasip2 --features spin --lib -- -D warnings"
test-spin = "test -p trusted-server-adapter-spin"

# --- ts operator CLI (native host; install uses the current host platform) ---
Expand Down
37 changes: 37 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Allow only build inputs, never the entire operator checkout.
**
!Cargo.toml
!Cargo.lock
!.tool-versions
!rust-toolchain.toml
!edgezero.toml
!.cargo/
!.cargo/config.toml
!crates/
!crates/**
# Exclude operator TOMLs even if placed below a crate.
**/*.toml
!**/Cargo.toml
!rust-toolchain.toml
!edgezero.toml
!.cargo/config.toml
!trusted-server.example.toml
**/.git
**/target
**/node_modules
**/dist
crates/trusted-server-adapter-cloudflare/build
crates/trusted-server-adapter-cloudflare/pkg
**/.env
**/.env.*
**/*.pem
**/*.key
**/*.p12
**/*.pfx
**/keys
**/secrets
**/.aws
**/.npmrc
**/.cargo/credentials*
**/.ts-tmp
**/.tsjs-npm-ci.lock
7 changes: 5 additions & 2 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
- name: Set up rust toolchain
uses: ./.github/actions/setup-rust
with:
target: wasm32-wasip1,wasm32-unknown-unknown
target: wasm32-wasip1,wasm32-wasip2,wasm32-unknown-unknown
components: "clippy, rustfmt"
cache-key: cargo-clippy

Expand All @@ -85,7 +85,7 @@ jobs:
- name: Run cargo clippy (Spin — native)
run: cargo clippy-spin-native

- name: Run cargo clippy (Spin — wasm32-wasip1)
- name: Run cargo clippy (Spin — wasm32-wasip2)
run: cargo clippy-spin-wasm

- name: Run host-target CLI clippy
Expand Down Expand Up @@ -196,3 +196,6 @@ jobs:

- name: Test proposal scripts
run: scripts/docs-proposal/test.sh

- name: Test native and local smoke helpers
run: node --test scripts/tests/*.test.mjs
5 changes: 4 additions & 1 deletion .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,10 @@ jobs:
node-version: ${{ steps.shared-setup.outputs.node-version }}

- name: Install wrangler
run: npm install -g wrangler
run: |
version=$(awk '$1 == "wrangler" { print $2 }' .tool-versions)
test -n "$version"
npm install -g "wrangler@$version"

- name: Run integration tests
run: >-
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/native-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Native RC container

on:
pull_request:
paths:
- Dockerfile
- .dockerignore
- .tool-versions
- rust-toolchain.toml
- Cargo.toml
- Cargo.lock
- edgezero.toml
- .cargo/**
- crates/trusted-server-adapter-axum/**
- crates/trusted-server-core/**
- crates/trusted-server-js/**
- crates/trusted-server-openrtb*/**
- scripts/test-native-container.mjs
- .github/workflows/native-container.yml
workflow_dispatch:

permissions:
contents: read

jobs:
local-provider-image:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Read pinned Node version
id: node
run: |
version=$(awk '$1 == "nodejs" { print $2 }' .tool-versions)
test -n "$version"
echo "version=$version" >> "$GITHUB_OUTPUT"
- uses: actions/setup-node@v4
with:
node-version: ${{ steps.node.outputs.version }}
- name: Build local-provider image
run: docker build --build-arg TRUSTED_SERVER__GIT_VERSION="${{ github.sha }}" -t ts-rc-local:test .
- name: Check real TS routes, startup rejection and drain
run: node scripts/test-native-container.mjs ts-rc-local:test
10 changes: 5 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,21 +135,21 @@ jobs:
run: cargo test-cloudflare

test-spin:
name: cargo check/build/test (spin native + wasm32-wasip1)
name: cargo check/build/test (spin native + wasm32-wasip2)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Rust toolchain (native + wasm32-wasip1)
- name: Set up Rust toolchain (native + wasm32-wasip2)
uses: ./.github/actions/setup-rust
with:
target: wasm32-wasip1
target: wasm32-wasip2
cache-key: cargo-spin

- name: Check Spin adapter (native host)
run: cargo check -p trusted-server-adapter-spin

- name: Check Spin adapter (wasm32-wasip1)
- name: Check Spin adapter (wasm32-wasip2)
run: cargo check-spin

- name: Build Spin adapter release WASM
Expand All @@ -162,7 +162,7 @@ jobs:
TRUSTED_SERVER__PUBLISHER__PROXY_SECRET: integration-test-proxy-secret
TRUSTED_SERVER__EC__PASSPHRASE: integration-test-ec-secret-padded-32
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release
run: cargo build --package trusted-server-adapter-spin --target wasm32-wasip2 --features spin --release

- name: Run Spin adapter tests (native host)
run: cargo test-spin
Expand Down
10 changes: 6 additions & 4 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
fastly 15.1.0
rust 1.95.0
fastly 16.0.0
rust 1.98.1
nodejs 24.12.0
viceroy 0.17.0
wasmtime 44.0.1
viceroy 0.21.0
wasmtime 48.0.2
spin-framework 4.1.0
wrangler 4.151.3
awscli 2.36.45
terraform 1.16.2
31 changes: 17 additions & 14 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,18 @@ Supporting files: `edgezero.toml`, `fastly.toml`,

## Toolchain

| Tool | Version / Target |
| ----------- | ---------------------------------------- |
| Rust | 1.95.0 (pinned in `rust-toolchain.toml`) |
| WASM target | `wasm32-wasip1` |
| Node | 24.12.0 (from `.tool-versions`) |
| Fastly CLI | 15.1.0 (from `.tool-versions`) |
| Viceroy | 0.17.0 (from `.tool-versions`) |
| Wasmtime | 44.0.1 (from `.tool-versions`) |
| AWS CLI | 2.36.45 (from `.tool-versions`) |
| Terraform | 1.16.2 (from `.tool-versions`) |
| Tool | Version / Target |
| ----------- | -------------------------------------------- |
| Rust | 1.98.1 (pinned in `rust-toolchain.toml`) |
| WASM target | Fastly `wasm32-wasip1`; Spin `wasm32-wasip2` |
| Node | 24.12.0 (from `.tool-versions`) |
| Fastly CLI | 16.0.0 (from `.tool-versions`) |
| Viceroy | 0.21.0 (from `.tool-versions`) |
| Wasmtime | 48.0.2 (from `.tool-versions`) |
| Spin | 4.1.0 (from `.tool-versions`) |
| Wrangler | 4.151.3 (from `.tool-versions`) |
| AWS CLI | 2.36.45 (from `.tool-versions`) |
| Terraform | 1.16.2 (from `.tool-versions`) |

---

Expand All @@ -62,7 +64,8 @@ fastly compute serve
EDGEZERO_MANIFEST="<release-root>/edgezero.toml" \
ts deploy --adapter fastly --service-id <service-id> --application-release "<release-root>"

# Run Axum dev server (native — no Viceroy)
# Run native TS with prepared config/secrets, not legacy TRUSTED_SERVER_* inputs.
# See docs/guide/native-rc-demo.md for local files, secret variables and providers.
cargo run -p trusted-server-adapter-axum

# Test Axum adapter only
Expand All @@ -87,7 +90,7 @@ cargo check-spin
cargo test-spin

# Production-style Spin WASM artifact used by crates/trusted-server-adapter-spin/spin.toml
cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release
cargo build --package trusted-server-adapter-spin --target wasm32-wasip2 --features spin --release

# Optional local Spin runtime smoke, if the Spin CLI is installed
spin up --from crates/trusted-server-adapter-spin
Expand Down Expand Up @@ -158,7 +161,7 @@ cd crates/trusted-server-js/lib && node build-all.mjs
### Install prerequisites

```bash
cargo install viceroy --version 0.17.0 --locked --force
cargo install viceroy --version 0.21.0 --locked --force
```

---
Expand Down Expand Up @@ -352,7 +355,7 @@ IntegrationRegistration::builder(ID)
| `fastly.toml` | Fastly service configuration and build settings |
| `trusted-server.example.toml` | Source-controlled Trusted Server app-config template |
| `trusted-server.toml` | Operator-owned app config; gitignored; `ts config push` publishes it as an EdgeZero blob envelope |
| `rust-toolchain.toml` | Pins Rust version to 1.95.0 |
| `rust-toolchain.toml` | Pins Rust version to 1.98.1 |
| `.env.dev` | Local development environment variables |

---
Expand Down
Loading
Loading