Skip to content

[finding] Authoring a permission set is well documented; assigning one to a user is documented nowhere in the skills bundle, and the object is hidden from MCP too #10318

Description

@os-elon

Found during the new-developer first-run journey audit, #10264. Ranked there second by likelihood of losing a stranger — and first among the strangers we can least afford to lose, because this is exactly what a serious enterprise evaluator tries.

The shape of it

definePermissionSet is covered well. The audit's dev authored RBAC bits, an RLS policy and the CEL grammar straight from skills/objectstack-data, first try. Then it tried to prove the deny — two users, exercise the matrix — and hit a wall:

Assigning a permission set to a user is absent from all 11 skills in the bundle.

Getting through took roughly six minutes of pure guessing, in three stages:

  1. Brute-force probing six candidate object names before landing on sys_user_permission_set.
  2. Submitting wrong field names until an error disclosed permission_set_id.
  3. A third error to learn that field wants the record id, not the name.

No gate was involved at any point. Nothing failed loudly; there was simply nothing to read.

What makes it worse than a doc gap

sys_user_permission_set is not exposed over MCP"is a system object and is not exposed via MCP" — so the app's own AI surface cannot discover it either. The product's answer to "ask the agent" does not work here.

The net effect: every skill teaches you to build a fence, and none tells you how to put anyone behind it.

Why this one is expensive

Anyone evaluating ObjectStack for real enterprise use will do what the audit did — two users, prove the deny — because that is how you check whether a permission story is real. They will author the set in five minutes from the skill, then stall with no documented way forward. The audit verified the enforcement itself is genuinely correct in both directions (see #10264 stage 4), which makes this a pure own-goal: the capability works and the path to exercising it is undocumented.

Suggested landing (hint for triage, not a routing decision)

skills/objectstack-data/SKILL.md security section, or skills/objectstack-platform/. The MCP exposure question is a separate call and may deserve its own card.

Filed by the PM loop from the audit in #10264. Not yet graded or routed.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions