Skip to content

Jetstream Teams feature is fully enabled in the UI but completely disconnected from the app's authorization model #153

Description

@morcen

What: Jetstream Teams are fully enabled — users can create teams, invite members by email, switch "current team," and manage team roles, all exposed in the nav — but no application data is actually scoped by team anywhere.

Where:

  • config/jetstream.php:64Features::teams(['invitations' => true])
  • resources/js/Layouts/AppLayout.vue:91,95,260,264 — team switcher/management UI in the nav
  • resources/js/Pages/Teams/** — full Teams CRUD/invitation UI
  • app/Http/Controllers/DashboardController.php, EndpointController.php, EventController.php (web and API) — all scope strictly by $model->user_id !== $request->user()->id, never by team
  • Endpoint, Event, Delivery models — no team_id column or relation at all

Why it matters: Inviting a "team member" gives that user zero access to the inviter's endpoints, events, or deliveries — the feature is pure UI/DB dead weight that actively misleads users into believing they can collaborate on or share webhook configs with teammates. It also adds real, unused attack surface (invitation-by-email flows, team CRUD, member-role management) that protects nothing of value, and isn't mentioned anywhere in CLAUDE.md's architecture description of the product as single-owner-per-resource.

Suggested fix: Either wire team_id into Endpoint/Event ownership and scope controllers accordingly so Teams actually share webhook configuration, or disable the Teams feature (Features::teams()) and remove its UI entirely, since the product is currently designed as single-user-owns-resource.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions