Source: qdash /teams (Teams & Users) — c61 design-pass concepts, 2026-08-08
The page's name promises member management; what it delivers is a per-person risk rollup — and the one write path it has (assigning a team) is a hidden inline affordance. Four concepts against the Meridian world (14 users · 4 teams · 34 monitored agents · $1.34k/30d, of which $306 is unattributed). Ideas 1–3 are buildable against today's data model; idea 4 is the page's SCIM-day future, labeled projected. It is Monday: felix's egress destination is still undecided, sofia's secrets.yaml finding is unassigned, and chen showed up this morning.
One risk story per row
The current table spreads "why is this person risky" across five columns and two expand levels. This keeps the risk-ranked spine but synthesizes each person's exposure into one sentence with one verb — the same move the Overview's decision queue makes. Eight columns become five; everything here is computable from the joins the page already does.
| Person | Team | Risk story | Activity | Spend · 30d |
|---|---|---|---|---|
| fefelix@duck.com | Data | 1 Critical — undecided egress to metrics.coderelay.io · Sun | 2 agents · 31m ago | $70 |
| sosofia | Platform | 1 Elevated — secrets.yaml read · Fri · unassigned | 2 agents · 2h ago | $98 |
| prpriya | Payments | ok | 3 agents · 12m ago | $1692.4× median |
| mamarcus | Platform | ok | 3 agents · 48m ago | $121 |
| dadana | Data | ok | 3 agents · 1h ago | $112 |
| chchennew today | ok | 1 agent · 19m ago | $4 | |
| + 9 more, all ok — show → | $489 | |||
Teams as the unit
The eng-manager and FinOps read: teams as first-class objects with their own rollups, people nested inside. The unassigned bucket stops being a footnote and becomes a card with a dollar amount on it — the to-do list that funds idea 3. Grouping is client-side; this is buildable today.
The mapping workspace
Team assignment is the page's only write path, and today it's a hidden inline input. This makes identity→org mapping a designed job: a queue of unresolved identities with evidence and suggestions, bulk assignment, and an honest count of what's at stake. The SCIM banner shows why the work is worth doing either way — most of it survives the IdP join as verified truth.
Members & roles — SCIM day
projectedWhat the page becomes when the IdP join lands — the conventional page the name has promised all along. Membership and teams arrive verified from Okta; roles govern the console itself. The observed rollup (idea 1) doesn't go away — it stays as the activity lens over a now-verified roster. Rendered so the projected future has a face.
| Member | Role | Team | Status | Observed activity |
|---|---|---|---|---|
ps priya sharma✓priya@meridian.dev | Operator ▾ | Payments🔒 | active | 3 agents · $169/30d |
fo felix osei✓felix@meridian.dev | Operator ▾ | Data🔒 | active | 2 agents · 1 Critical open |
sr sofia reyes✓sofia@meridian.dev | Admin ▾ | Platform🔒 | active | 2 agents · 1 Elevated open |
cl chen liu✓chen@meridian.dev | Viewer ▾ | Frontend🔒 | active | 1 agent · first session today |
nh noor haddadnoor@meridian.dev | Viewer ▾ | Security🔒 | invited Fri · resend → | none yet |
The composed page
Two stacks for today, one milestone. A keeps the risk-first console read; B leads with teams as the accountable unit. Idea 4 isn't a stack choice — it's what either stack becomes the day the IdP joins, and the mapping work (idea 3) is how you arrive there with the fewest surprises.