Skip to content

Commit fa846e3

Browse files
Align batch sync semantics with review feedback
1 parent 93461e4 commit fa846e3

3 files changed

Lines changed: 253 additions & 57 deletions

File tree

crates/trusted-server-adapter-fastly/src/main.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,21 @@ async fn route_request(
8989
// Extract geo info before auth check or routing consumes the request.
9090
let geo_info = GeoInfo::from_request(&req);
9191

92+
// S2S batch sync — uses Bearer auth (not EC cookies), so skip EC
93+
// context creation and the EC finalize middleware entirely.
94+
if req.get_method() == Method::POST && req.get_path() == "/api/v1/sync" {
95+
let mut response = require_identity_graph(settings)
96+
.and_then(|kv| {
97+
require_partner_store(settings).and_then(|partner_store| {
98+
let limiter = FastlyRateLimiter::new(RATE_COUNTER_NAME);
99+
handle_batch_sync(&kv, &partner_store, &limiter, req)
100+
})
101+
})
102+
.unwrap_or_else(|e| to_error_response(&e));
103+
finalize_response(settings, geo_info.as_ref(), &mut response);
104+
return Ok(response);
105+
}
106+
92107
let mut ec_context =
93108
match EcContext::read_from_request_with_geo(settings, &req, geo_info.as_ref()) {
94109
Ok(context) => context,
@@ -118,21 +133,6 @@ async fn route_request(
118133
let method = req.get_method().clone();
119134

120135
// Match known routes and handle them
121-
// S2S batch sync — uses Bearer auth (not EC cookies), so skip the
122-
// EC finalize middleware and return directly.
123-
if method == Method::POST && path == "/api/v1/sync" {
124-
let mut response = require_identity_graph(settings)
125-
.and_then(|kv| {
126-
require_partner_store(settings).and_then(|partner_store| {
127-
let limiter = FastlyRateLimiter::new(RATE_COUNTER_NAME);
128-
handle_batch_sync(&kv, &partner_store, &limiter, req)
129-
})
130-
})
131-
.unwrap_or_else(|e| to_error_response(&e));
132-
finalize_response(settings, geo_info.as_ref(), &mut response);
133-
return Ok(response);
134-
}
135-
136136
let result = match (method, path.as_str()) {
137137
// Serve the tsjs library
138138
(Method::GET, path) if path.starts_with("/static/tsjs=") => {

0 commit comments

Comments
 (0)