Skip to content

Human-team membership and native service-credential audiences for project VMs #1097

Open

Description

@noamsiegel

Use case

One organization will include several human teams (for example HOA and Tax). Every current and future HOA member needs the same read-only database capability, independent of operator/developer/admin role; future Tax members must not inherit it. Ordinary HOA projects are shared within HOA, with personal scratch sessions still allowed. Production-derived conversations must never be publicly shared. Database read-only privileges do not make cross-team disclosure safe.

This request covers centrally managed human membership and native service-credential grants for project VMs, not static MCP-server authorization.

Source-grounded gap

Inspected public upstream at commit 1161c837, separately from an installed private release. These observations are about public upstream, not a claim that private deployment additions exist here:

Together, these paths do not provide a supported end-to-end configuration for automatic human-team entitlement and project-VM service-credential access. Per-person grants need manual onboarding; an org grant is too broad; project roster sync alone does not bridge the credential grant mismatch.

Requested behavior / acceptance

  1. Supported, centrally managed human-team membership with an authoritative source, consistently resolved for web, Slack, and current-member/resource authorization. Prefer extending existing identity, directory, managed-group/project-roster, and ACL abstractions; not a request for a new competing directory.
  2. One team-level grant should cover every current and future team member automatically, regardless of QM administrative role. Onboarding adds entitlement; removal/deactivation removes future use across existing sessions, cached identity, and reused project VMs, with documented refresh/revocation bounds. Missing or unresolved membership must not silently widen access.
  3. Support native service-credential grants for managed project groups, or an equivalent explicit supported binding between a project's current audience and the relevant team. Reuse existing credential delivery/broker machinery; do not merely relax grantee validation without the matching audience checks.
  4. Define per-room semantics explicitly. Personal scratch uses the acting person's current entitlement. Shared-project use must account for everyone who can receive results or access the VM, not only the caller. Adding a non-entitled member must not leave team credentials usable in that room; require an explicit authorized grant or deny. Linking a Slack channel must not implicitly equate channel and project grants or silently expand their audiences.
  5. Ordinary team projects can follow current team membership without repeated individual invitations/grants, while genuinely private scratch remains private. A different team's organization membership must not grant access. Keep raw credentials out of participant-visible configuration/prompts, retain actor/scope attribution, and define safe treatment of already-materialized credentials when membership changes. Revocation cannot undo information already disclosed.
  6. Do not require public links or public conversation sharing as an access workaround. This policy prohibits public sharing of production-derived conversations. Database credentials remain database-enforced read-only for every role; QM membership controls who may use them and where results may be disclosed.

Related, not substitutes

Evidence: source inspection and existing-issue search only. No database queries, cross-team access attempt, live QM operation, or functional test performed. No downstream core patch requested.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions