feat(den): team access visibility — what can this team use, edge by edge (P3 PR1) - #3424
Conversation
…tail screen (skill-sharing P3 PR1)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Photo roll — p3-team-access✅ 1/1 frames passed · 0 failed · 0 unvalidated · 2 expectations passed · 0 failed 1. A team access table lists a plugin with a direct team grant badge
Roll created 2026-08-02T08:27:55.701Z · Source: |
There was a problem hiding this comment.
Warden security clearance: clear. No new security issues found in this diff (8308d2cf3e65e3da80d99bf525f9da5132c73bae). Automated clearance satisfies the required-review gate only — a human still reviews and merges. Analysis run
…ructed code (CodeQL js/bad-code-sanitization)
There was a problem hiding this comment.
Warden security clearance: clear. No new security issues found in this diff (d026df61d405e5197b76e3addf9beae58867fe2d). Automated clearance satisfies the required-review gate only — a human still reviews and merges. Analysis run

What
PR1 of P3 from the Grant-Native Skill Sharing program — built to the Paper design ("P3 — Access Visibility", den-primitive-annotated): the admin answer to what can this team use, and via which edge.
den-api —
GET /v1/teams/:teamId/plugin-access: one item per (plugin, edge) —direct_team(with grantId for revoke),via_catalog(with marketplace),org_wide— role, server-resolved grantor names, grantedAt. Gated: org admin or member of the team; 404 unknown/foreign team. Active plugins only, componentCounts included.den-web — team names in Members ▸ Teams now link to a new team detail page (
members/teams/[teamId]): Overview (OrgMemberIdentity rows) + Access tab — members-grid pattern, edge badges on DenBadge tones, amber rows + bordered pill for editor grants (the 'this team can change it for everyone' warning), Revoke for direct grants (existing DELETE route), Open catalog for inherited ones, dashed empty state, edge legend. Hand-rolled Den* primitives only, per house rules (no shadows, UnderlineTabs, bracketed text sizes).Tests (commands + results)
Photo roll of the real screen follows as the sticky
photo-rollcomment (published via the evidence publisher). One test-infra fix rode along: the new bun suite seeded env after a hoisted value-import — made the schema import dynamic so the file is order-independent.