Relationships
#1337 Hide enterprise (SSO) operatives from announcements and leaderboard by default
Opened by keeb · 7/22/2026· Shipped 7/22/2026
Problem
Enterprise operatives who sign in via their company IdP (SAML/OIDC SSO) are, by design, corporate/managed accounts. Right now they are treated identically to public operatives: their activity drives tier-up announcements (Discord fan-out) and they appear on the public leaderboard. For an enterprise buyer this is usually the wrong default — internal engineers competing on a public board, or their milestones broadcast to a public Discord, is a privacy/optics problem and a likely blocker in security review.
Proposed solution
Make enterprise (SSO-provisioned) operatives excluded by default from:
- Announcements — tier-crossing / milestone Discord fan-out.
- The public leaderboard — the score board and any public roster/ranking surface.
…unless the operative (or their Collective admin) explicitly opts in.
Sketch of the mechanism:
- An operative is 'enterprise' when they were provisioned through an
ssoProvider(they already carryidpGroups; the linkedorganizationId/collective identifies the enterprise). That signal already exists from theprovisionUser/provisionSsoMembershiphooks. - Add an opt-in flag (default off) — most naturally per-operative on
operative_profile, with an optional Collective-admin-level default so an org can opt its whole team in at once. - Announcement path (
shouldAnnounce): suppress when the actor is enterprise-and-not-opted-in. Follow the existing convention of a flag on the event rather than a new event type ([[feedback_privacy_flag_not_event_type]]). - Leaderboard / roster reads: filter out enterprise-and-not-opted-in operatives at the serving query.
Open questions / alternatives
- Opt-in granularity: per-operative vs. Collective-admin toggle vs. both. Leaning toward a Collective-level default (admin decides for the org) with a per-operative override, since the enterprise buyer is the one who cares.
- Scope of 'leaderboard': global public board only, or also profile stats rails / roster sparklines? Default proposal: hide from the public global board; keep their own profile and in-Collective rosters intact (visible to their own org).
- Score still accrues: this is a visibility change only — enterprise operatives still earn score and tiers; they're just not surfaced publicly unless opted in. The ledger is untouched.
- Alternative considered: make it a Collective-wide 'private' switch rather than an enterprise-specific default. Rejected as the default because non-SSO public users should keep today's opt-out-by-default behavior; the new default should key specifically off SSO provisioning.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.