Skip to content
Open
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
2 changes: 1 addition & 1 deletion .claude/agents/issue-creator.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Output the issue URL and type.
- Use issue **types**, not labels, for categorization.
- Every issue should have clear done-when / acceptance criteria.
- Use the affected area dropdown values from the templates:
- Core (synthetic IDs, cookies, GDPR)
- Core (Edge Cookies, GDPR)
- Integrations (prebid, lockr, permutive, etc.)
- HTML processing / JS injection
- Ad serving (Equativ)
Expand Down
2 changes: 1 addition & 1 deletion .claude/agents/repo-explorer.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ implementation details.

This is a Rust workspace with three crates:

- `crates/trusted-server-core/` — core library (integrations, HTML processing, synthetic IDs, GDPR)
- `crates/trusted-server-core/` — core library (integrations, HTML processing, Edge Cookies, GDPR)
- `crates/trusted-server-adapter-fastly/` — Fastly Compute entry point
- `crates/js/` — TypeScript/JS build pipeline (per-integration IIFE bundles)

Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-integration-test-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ runs:
env:
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL: http://127.0.0.1:${{ inputs.origin-port }}
TRUSTED_SERVER__PUBLISHER__PROXY_SECRET: integration-test-proxy-secret
TRUSTED_SERVER__SYNTHETIC__SECRET_KEY: integration-test-secret-key
TRUSTED_SERVER__EDGE_COOKIE__SECRET_KEY: integration-test-secret-key
TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK: "false"
run: cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
## Project Overview

Rust-based edge computing application targeting **Fastly Compute**. Handles
privacy-preserving synthetic ID generation, ad serving with GDPR compliance,
privacy-preserving Edge Cookie (EC) ID generation, ad serving with GDPR compliance,
real-time bidding integration, and publisher-side JavaScript injection.

## Workspace Layout
Expand Down Expand Up @@ -366,7 +366,7 @@ both runtime behavior and build/tooling changes.
| `crates/trusted-server-core/src/tsjs.rs` | Script tag generation with module IDs |
| `crates/trusted-server-core/src/html_processor.rs` | Injects `<script>` at `<head>` start |
| `crates/trusted-server-core/src/publisher.rs` | `/static/tsjs=` handler, concatenates modules |
| `crates/trusted-server-core/src/synthetic.rs` | Synthetic ID generation |
| `crates/trusted-server-core/src/edge_cookie.rs` | Edge Cookie (EC) ID generation |
| `crates/trusted-server-core/src/cookies.rs` | Cookie handling |
| `crates/trusted-server-core/src/consent/mod.rs` | GDPR and broader consent management |
| `crates/trusted-server-core/src/http_util.rs` | HTTP abstractions and request utilities |
Expand Down
63 changes: 0 additions & 63 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions OPTIMIZATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ This document presents a performance analysis and optimization plan for the Trus
| ~2% | `IntegrationRegistry` | Route lookup + attribute rewriting + initialization |
| ~0.8% | Memory allocation (`RawVec::reserve`) | Buffer growth during processing |
| ~0.5% | Logging (`fern` / `log_fastly`) | Minimal overhead |
| ~0.5% | Synthetic ID generation | HMAC computation |
| ~0.5% | EC ID generation | HMAC computation |
| ~0.5% | Header extraction | `fastly::http::handle::get_header_values` |

### Key Takeaways
Expand Down Expand Up @@ -271,7 +271,6 @@ let settings: Settings = postcard::from_bytes(SETTINGS_DATA)
| `eq_ignore_ascii_case` for compression detection | `streaming_processor.rs:47` | 5 |
| `Cow<str>` for string replacements | `streaming_replacer.rs:120-125` | 5-10 |
| Remove base64 roundtrip in token computation | `http_util.rs:286-294` | 10-15 |
| Replace Handlebars with manual interpolation | `synthetic.rs:82-99` | ~20 |
| Cache `origin_host()` result per-request | `settings.rs` | 5-10 |

---
Expand Down
7 changes: 3 additions & 4 deletions PUBLISHER_IDS_AUDIT.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This document lists all publisher-specific IDs and configurations found in the c
- `server_url = "https://securepubads.g.doubleclick.net/gampad/ads"` (line 15)

**Equativ Configuration:**
- `sync_url = "https://adapi-srv-eu.smartadserver.com/ac?pgid=2040327&fmtid=137675&synthetic_id={{synthetic_id}}"` (line 8)
- `sync_url = "https://adapi-srv-eu.smartadserver.com/ac?pgid=2040327&fmtid=137675&ec_id={{ec_id}}"` (line 8)
- Page ID: `2040327`
- Format ID: `137675`

Expand All @@ -20,9 +20,8 @@ This document lists all publisher-specific IDs and configurations found in the c
- `cookie_domain = ".test-publisher.com"` (line 3)
- `origin_url = "https://origin.test-publisher.com"` (line 4)

**KV Store Names (user-specific):**
- `counter_store = "jevans_synth_id_counter"` (line 24)
- `opid_store = "jevans_synth_id_opid"` (line 25)
**KV Store Names:**
*(Removed — `counter_store` and `opid_store` were removed in the EC rename; they were vestigial from the template-based SyntheticID generation.)*

## Hardcoded in Source Code

Expand Down
76 changes: 46 additions & 30 deletions crates/integration-tests/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 0 additions & 10 deletions crates/integration-tests/fixtures/configs/viceroy-template.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,6 @@
[local_server.backends]

[local_server.kv_stores]
# These inline placeholders satisfy Viceroy's local KV configuration
# requirements without exercising KV-backed application behavior.
[[local_server.kv_stores.counter_store]]
key = "placeholder"
data = "placeholder"

[[local_server.kv_stores.opid_store]]
key = "placeholder"
data = "placeholder"

[[local_server.kv_stores.creative_store]]
key = "placeholder"
data = "placeholder"
Expand Down
Loading
Loading