Skip to content
Merged
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
11 changes: 7 additions & 4 deletions web/services/iroh/publicationPolicy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@
*/

export const MANAGED_RELAY_URLS = [
"https://euc1-1.relay.lawrence.cmux.iroh.link/",
"https://use1-1.relay.lawrence.cmux.iroh.link/",
"https://usw1-1.relay.lawrence.cmux.iroh.link/",
"https://aps1-1.relay.lawrence.cmux.iroh.link/",
"https://usc1.relay.cmux.dev/",
"https://usw1.relay.cmux.dev/",
"https://use4.relay.cmux.dev/",
"https://euw4.relay.cmux.dev/",
"https://apne1.relay.cmux.dev/",
"https://apse1.relay.cmux.dev/",
Comment on lines 10 to +16

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Old Relay Routes Lose Publication

When an already-deployed client continues reporting one of the four former relay URLs during rollout, the exact allowlist check now removes its relay hint. That device remains without a published relay path until it learns and reports the new fleet, so keep the old entries during a compatibility window or ensure clients migrate before this removal.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

"https://ape1.relay.cmux.dev/",
] as const;

const MANAGED_RELAY_URL_SET: ReadonlySet<string> = new Set(MANAGED_RELAY_URLS);
Expand Down
2 changes: 1 addition & 1 deletion web/tests/devices-route.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ let sql: Sql | null = null;
const DEVICE_A = "11111111-1111-4111-8111-111111111111";
const DEVICE_B = "22222222-2222-4222-8222-222222222222";
const IROH_ENDPOINT_ID = "a".repeat(64);
const APPROVED_IROH_RELAY = "https://use1-1.relay.lawrence.cmux.iroh.link/";
const APPROVED_IROH_RELAY = "https://use4.relay.cmux.dev/";

const legacyTailscaleRoute = {
id: "legacy",
Expand Down
11 changes: 7 additions & 4 deletions workers/presence/src/routePrivacy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
// The Worker cannot import from `web/` because each deployment has its own
// build root. Exact URLs are intentional: arbitrary relay URLs are path hints.
export const APPROVED_IROH_RELAY_URLS = [
"https://euc1-1.relay.lawrence.cmux.iroh.link/",
"https://use1-1.relay.lawrence.cmux.iroh.link/",
"https://usw1-1.relay.lawrence.cmux.iroh.link/",
"https://aps1-1.relay.lawrence.cmux.iroh.link/",
"https://usc1.relay.cmux.dev/",
"https://usw1.relay.cmux.dev/",
"https://use4.relay.cmux.dev/",
"https://euw4.relay.cmux.dev/",
"https://apne1.relay.cmux.dev/",
"https://apse1.relay.cmux.dev/",
"https://ape1.relay.cmux.dev/",
] as const;

const APPROVED_IROH_RELAY_URL_SET: ReadonlySet<string> = new Set(APPROVED_IROH_RELAY_URLS);
Expand Down
4 changes: 2 additions & 2 deletions workers/presence/test/core.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ describe("heartbeat routes", () => {
endpoint: {
type: "peer",
id: "a".repeat(64),
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
relay_hint: "legacy-private-relay-hint",
direct_addrs: ["192.168.1.20:49152"],
},
Expand All @@ -344,7 +344,7 @@ describe("heartbeat routes", () => {
endpoint: {
type: "peer",
id: "a".repeat(64),
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
};

Expand Down
8 changes: 4 additions & 4 deletions workers/presence/test/syncPairedMacs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ describe("parsePairedMacBackup", () => {
id: "a".repeat(64),
direct_addrs: ["192.168.1.20:49152"],
relay_hint: "legacy-private-relay-hint",
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
},
],
Expand All @@ -153,7 +153,7 @@ describe("parsePairedMacBackup", () => {
endpoint: {
type: "peer",
id: "a".repeat(64),
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
},
]);
Expand All @@ -175,7 +175,7 @@ describe("applyBackupOps", () => {
id: "a".repeat(64),
direct_addrs: ["192.168.1.20:49152"],
relay_hint: "legacy-private-relay-hint",
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
},
],
Expand Down Expand Up @@ -211,7 +211,7 @@ describe("applyBackupOps", () => {
endpoint: {
type: "peer",
id: "a".repeat(64),
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
},
]);
Expand Down
4 changes: 2 additions & 2 deletions workers/presence/test/syncStorage.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,7 @@ describe("deriveDeviceRecord edge cases", () => {
id: "a".repeat(64),
direct_addrs: ["192.168.1.20:49152"],
relay_hint: "legacy-private-relay-hint",
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
},
],
Expand All @@ -614,7 +614,7 @@ describe("deriveDeviceRecord edge cases", () => {
endpoint: {
type: "peer",
id: "a".repeat(64),
relay_url: "https://use1-1.relay.lawrence.cmux.iroh.link/",
relay_url: "https://use4.relay.cmux.dev/",
},
},
]);
Expand Down
2 changes: 1 addition & 1 deletion workers/presence/test/validate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { MAX_REQUEST_BYTES, MAX_ROUTES, parseHeartbeat, readBoundedJson } from "

const DEVICE_ID = "11111111-2222-4333-8444-555555555555";
const IROH_ENDPOINT_ID = "a".repeat(64);
const APPROVED_IROH_RELAY = "https://use1-1.relay.lawrence.cmux.iroh.link/";
const APPROVED_IROH_RELAY = "https://use4.relay.cmux.dev/";

function postRequest(
body: string | ReadableStream<Uint8Array>,
Expand Down
Loading