Skip to content

Commit 9372efd

Browse files
committed
Merge branch 'main' into chore/sync-edgezero-pr-257
Reconcile main (Osano CMP mirror #773, fastly extraction out of core, EC/storage refactors) with this branch's EdgeZero/fastly-0.12 bump. Resolution decisions: - Keep this branch's dependency bump: fastly/log-fastly 0.12 and edgezero git deps tracking branch=main (over main's pinned rev + 0.11.12), plus the trusted-server-* crate renames. - Take main's newer runtime code for conflicted files (EC http:: migration, settings, geo, testlight, adapter restructure), then forward-port it to the edgezero-main / fastly-0.12 API surface: - Body::into_bytes() now returns Option<Bytes>; buffered sites use unwrap_or_default() (batch_sync, pull_sync, identify/testlight tests). - fastly 0.12 get_tls_protocol()/get_tls_cipher_openssl_name() return Result<Option>; call sites use .ok().flatten(). - edgezero-main moved adapter symbols into submodules (request::into_core_request, config_store::FastlyConfigStore, context::FastlyRequestContext) and made router oneshot()/IntoResponse into_response() fallible; dispatch and test sites updated accordingly. - Accept main's deletion of core storage/secret_store.rs (fastly removal). - Fix a directory-rename gap: main added Osano JS under the old crates/js path; relocated into crates/trusted-server-js so the bundle is discovered. Verified: cargo fmt/clippy/test --workspace, wasm release build, JS vitest + format. All green.
2 parents 32f45d5 + 5b0a413 commit 9372efd

75 files changed

Lines changed: 11824 additions & 4303 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/integration-tests.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,54 @@ jobs:
8383
INTEGRATION_ORIGIN_PORT: ${{ env.ORIGIN_PORT }}
8484
RUST_LOG: info
8585

86+
integration-tests-edgezero:
87+
name: integration tests (EdgeZero entry point)
88+
needs: prepare-artifacts
89+
runs-on: ubuntu-latest
90+
timeout-minutes: 15
91+
steps:
92+
- uses: actions/checkout@v4
93+
94+
- name: Set up integration test runtime
95+
id: shared-setup
96+
uses: ./.github/actions/setup-integration-test-env
97+
with:
98+
origin-port: ${{ env.ORIGIN_PORT }}
99+
check-dependency-versions: "false"
100+
install-viceroy: "true"
101+
build-wasm: "false"
102+
build-test-images: "false"
103+
104+
- name: Download integration test artifacts
105+
uses: actions/download-artifact@v4
106+
with:
107+
name: integration-test-artifacts
108+
path: ${{ env.ARTIFACTS_DIR }}
109+
110+
# Exercises the EdgeZero entry point against the same WASM binary by
111+
# pointing Viceroy at a config store with `edgezero_enabled = "true"`.
112+
# Scoped to the container-free EC lifecycle suite (minimal TCP origin), a
113+
# focused parity subset covering Fastly request conversion, config-store
114+
# dispatch, publisher fallback proxying, and end-to-end EC/API wiring on
115+
# the EdgeZero path. The legacy `integration-tests` job above still covers
116+
# the full framework matrix.
117+
- name: Run EdgeZero EC lifecycle tests
118+
run: >-
119+
cargo test
120+
--manifest-path crates/integration-tests/Cargo.toml
121+
--target x86_64-unknown-linux-gnu
122+
test_ec_lifecycle_fastly
123+
-- --include-ignored --test-threads=1
124+
env:
125+
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
126+
INTEGRATION_ORIGIN_PORT: ${{ env.ORIGIN_PORT }}
127+
VICEROY_CONFIG_PATH: ${{ github.workspace }}/crates/integration-tests/fixtures/configs/viceroy-template-edgezero.toml
128+
# Opt into the EdgeZero entry-point canary in test_ec_lifecycle_fastly.
129+
# Only set here, so the legacy integration-tests job runs the same
130+
# scenarios through legacy_main without asserting the EdgeZero-only 405.
131+
EXPECT_EDGEZERO_ENTRY_POINT: "true"
132+
RUST_LOG: info
133+
86134
browser-tests:
87135
name: browser integration tests
88136
needs: prepare-artifacts

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Changed
1111

1212
- **Breaking**`bid_param_zone_overrides` inner values must now be JSON objects; previously non-object or empty values (`"header" = "x"`, `"header" = {}`) were accepted and silently produced a dead rule at runtime. They now fail at startup with a configuration error. Operators upgrading should audit their `bid_param_zone_overrides` config for non-object zone entries.
13+
- **Breaking** — Sourcepoint browser module inclusion now requires explicit `[integrations.sourcepoint].enabled = true`; operators relying on the previous unconditional Sourcepoint module should enable the integration before upgrading.
1314

1415
### Security
1516

1617
- Validate synthetic ID format on inbound values from the `x-synthetic-id` header and `synthetic_id` cookie; values that do not match the expected format (`64-hex-hmac.6-alphanumeric-suffix`) are discarded and a fresh ID is generated rather than forwarded to response headers, cookies, or third-party APIs
1718

1819
### Added
1920

21+
- Added Osano consent mirror integration docs and public enablement guidance.
2022
- Implemented basic authentication for configurable endpoint paths (#73)
2123
- Added integrations guide with example `testlight` integration
2224

Cargo.lock

Lines changed: 5 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/trusted-server-adapter-fastly/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ log-fastly = { workspace = true }
2222
serde = { workspace = true }
2323
serde_json = { workspace = true }
2424
trusted-server-core = { workspace = true }
25+
url = { workspace = true }
2526
urlencoding = { workspace = true }
2627

2728
[dev-dependencies]
29+
bytes = { workspace = true }
2830
edgezero-core = { workspace = true, features = ["test-utils"] }
31+
trusted-server-core = { workspace = true, features = ["test-utils"] }

0 commit comments

Comments
 (0)