Page and search the org directory, and stop two row builders drifting

FeatureSecurityService
Shipped
September 2, 2026 at 1:09 AM UTC
Author
Kamo
Commit
c704178

The networks endpoints answer with the whole set in one body. That is fine for a member of a dozen orgs and impossible for an operator on an estate meant to reach to show twenty. Adds GET /org/network-directory, which matches, orders and windows in the database and returns one page. scope=all is gated on exactly the check all-networks applies — SYSTEM_USER through PlatformRightsService — so all three routes to the right keep working and the list can never be wider than the action behind it. The same answer rides back as canEnterAsSystemMember, so a client builds its rows and its buttons from one reply. my-networks and all-networks had a hand-written row builder each, and the copies had already drifted: all-networks never emitted primaryColor, logoUrl or logoSimpleUrl, so /network drew every org an operator was not a member of in the console default accent rather than the org's own. Nothing reported it — the keys were simply absent and the client's fallback did the rest. All three now share OrgNetworkRowBuilder.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing