Skip to content

serviceability: enforce EdgeSeat feed metro gate at connect#3955

Draft
nikw9944 wants to merge 2 commits into
nikw9944/infra-1700-2-feed-provisioningfrom
nikw9944/infra-1700-3-feed-gate
Draft

serviceability: enforce EdgeSeat feed metro gate at connect#3955
nikw9944 wants to merge 2 commits into
nikw9944/infra-1700-2-feed-provisioningfrom
nikw9944/infra-1700-3-feed-gate

Conversation

@nikw9944

@nikw9944 nikw9944 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Stack — review/merge bottom-up. Replaces #3952.

  1. serviceability: add Feed catalog account and CRUD #3953 — Feed catalog account + CRUD
  2. serviceability: EdgeSeat feed-seat data model and SetAccessPassFeeds #3954 — EdgeSeat data model + SetAccessPassFeeds
  3. serviceability: enforce EdgeSeat feed metro gate at connect #3955 — metro gate enforcement at connect
  4. sdk: Feed and EdgeSeat read support for Go, Python, and TypeScript #3956 — Go/Python/TS SDK read support + fixtures

---## Summary

  • Enforce the EdgeSeat feed metro gate at multicast connect: a device whose exchange is not covered by any feed on the pass is rejected with MetroMismatch; the joinable groups are the matching feed's group set for that exchange; the matching feed's per-feed seat is ticked (the legacy max_multicast_users cap is superseded).
  • Thread an optional Feed account through the connect/subscribe/delete instructions.
  • Part 3 of 4 (malbeclabs/infra#1700).

Testing Verification

  • Program integration tests for the four scenarios: wrong-metro device rejected, right-metro joins the metro's group set, multi-feed seat (matching feed admits + ticks), no-metro feed reachable from anywhere.

@martinsander00

Copy link
Copy Markdown
Contributor

i think since we added new feed_pk field we need to update some client/ files

@martinsander00

Copy link
Copy Markdown
Contributor

MetroMismatch (Custom(91)) is overloaded across 5 distinct conditions (no feed account / feed-not-on-pass / not-covered / group-not-joinable / no-seat)

@nikw9944 nikw9944 force-pushed the nikw9944/infra-1700-2-feed-provisioning branch from 8fa12fc to 4d30675 Compare July 2, 2026 19:41
nikw9944 added 2 commits July 2, 2026 19:42
Add MetroMismatch and the per-feed metro gate: at multicast connect a device whose
exchange is not covered by any feed on the pass is rejected, joinable groups come from
the matching feed's group set, and the feed seat is ticked (max_multicast_users
superseded). Threads an optional Feed account through create/subscribe/delete.
Thread the new SDK command fields (feed_pk/device_pk) through the client/doublezero
callers so the client crate builds, and split the overloaded MetroMismatch error into
FeedAccountRequired, FeedNotOnAccessPass, and GroupNotInFeed (MetroMismatch now means
only 'device exchange not covered').
@nikw9944 nikw9944 force-pushed the nikw9944/infra-1700-3-feed-gate branch from 442209f to 989ea70 Compare July 2, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants