Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7e2c7e5
Harden the Edge Cookie withdrawal write path
prk-Jr Sep 1, 2026
3573fb9
Log why a withdrawal could not be confirmed
prk-Jr Sep 2, 2026
92273b1
Check for the exact key instead of counting a prefix
prk-Jr Sep 2, 2026
45c0689
Follow every page when checking for an exact key
prk-Jr Sep 2, 2026
b5b68bb
Redact an identifier by character, not by byte
prk-Jr Sep 2, 2026
f6181d1
Move the paged existence decision somewhere it can be tested
prk-Jr Sep 2, 2026
6ebd8c3
Merge branch 'main' into fix/ec-withdrawal-write-gate
prk-Jr Sep 2, 2026
d80311f
Report an undetermined existence check as an error
prk-Jr Sep 2, 2026
0d22e19
Answer an exhausted prefix listing as undetermined, not absent
prk-Jr Sep 2, 2026
44d904d
Redact the identifier in errors this module builds itself
prk-Jr Sep 2, 2026
6cce0d3
Cover every self-built error in the redaction test
prk-Jr Sep 2, 2026
b36eb1e
Reach the last redacted message from the test
prk-Jr Sep 3, 2026
7b5ea57
Merge branch 'main' into fix/ec-withdrawal-write-gate
aram356 Sep 4, 2026
0031fc3
Answer the withdrawal existence check with a lookup
prk-Jr Sep 4, 2026
cee87c2
Cover the Fastly KV backend against the local simulator
prk-Jr Sep 4, 2026
eea0f6b
Confirm withdrawals against strong KV state
prk-Jr Sep 7, 2026
12f5f1e
Merge main and reconcile Edge Cookie withdrawal safeguards
prk-Jr Sep 7, 2026
a4c61b5
Merge branch 'main' into fix/ec-withdrawal-write-gate
prk-Jr Sep 8, 2026
8c2f161
Force withdrawal callers to record the post-tombstone snapshot
prk-Jr Sep 8, 2026
e99a127
Cover orphan recovery against a prefix-neighbour key
prk-Jr Sep 8, 2026
7212953
Warn backend implementors that key_exists needs a strong read
prk-Jr Sep 8, 2026
c4d569d
Drop stray trailing commas in Fastly KV error messages
prk-Jr Sep 8, 2026
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
378 changes: 370 additions & 8 deletions crates/trusted-server-adapter-fastly/src/ec_kv.rs

Large diffs are not rendered by default.

17 changes: 14 additions & 3 deletions crates/trusted-server-core/src/ec/admin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,8 @@ mod tests {

use base64::{Engine as _, engine::general_purpose::STANDARD as BASE64};

use crate::ec::kv::TombstoneOutcome;

use super::*;
use crate::ec::kv_backend::test_support::InMemoryEcKv;
use crate::ec::kv_backend::{EcKvStore as _, EcKvWrite, EcKvWriteMode};
Expand Down Expand Up @@ -1114,9 +1116,18 @@ mod tests {
#[test]
fn reports_tombstone_entries() {
let ec_id = test_ec_id();
let kv = KvIdentityGraph::in_memory("test-store");
kv.write_withdrawal_tombstone(&ec_id)
.expect("should write tombstone");
// Only an identity the store already holds can be tombstoned, so seed
// the live entry the withdrawal replaces.
let kv = kv_with_entry(
&ec_id,
&KvEntry::minimal("bidstream.example", "uid-live", 1_741_824_000),
);
assert_eq!(
kv.write_withdrawal_tombstone(&ec_id, drop)
.expect("should write tombstone"),
TombstoneOutcome::Written,
"should tombstone the seeded identity"
);
let req = get_request(&format!("/_ts/admin/ec/{ec_id}"));

let response = handle_admin_ec_lookup(Some(&kv), &test_registry(), &req)
Expand Down
Loading
Loading