Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
f559721
test(permission-groups): pin config coercion before deriving it
waleedlatif1 Aug 29, 2026
1230c21
refactor(permission-groups): derive the config from one field registry
waleedlatif1 Aug 29, 2026
d47f5d6
feat(permission-groups): add the capability gate to the authorization…
waleedlatif1 Aug 29, 2026
66cb9c0
feat(permission-groups): enforce the twelve UI-only keys on the server
waleedlatif1 Aug 29, 2026
d0ea115
fix(permission-groups): close the legacy-block and enrichment bypasses
waleedlatif1 Aug 29, 2026
060fc79
feat(permission-groups): govern personal API keys per group
waleedlatif1 Aug 29, 2026
b37d822
feat(permission-groups): govern log export
waleedlatif1 Aug 29, 2026
395d47f
chore(docs): publish the permission-group 403 code
waleedlatif1 Aug 29, 2026
8992e09
feat(permission-groups): declare the remaining governed capabilities
waleedlatif1 Aug 29, 2026
25f13a0
fix(permission-groups): gate the MCP route that bypasses its use case
waleedlatif1 Aug 29, 2026
9aa8fb9
fix(permission-groups): gate API-key management, closing the workspac…
waleedlatif1 Aug 29, 2026
8db1db2
feat(permission-groups): declare capabilities on the remaining resour…
waleedlatif1 Aug 29, 2026
9c7800c
feat(permission-groups): enforce workspace.create, member directory a…
waleedlatif1 Aug 29, 2026
724f2e9
feat(permission-groups): enforce the knowledge capabilities
waleedlatif1 Aug 29, 2026
d4eabdb
merge: annotate operations across mcp, skills, custom tools, catalog …
waleedlatif1 Aug 29, 2026
02b4bca
feat(permission-groups): enforce tables.create, tables.export and fil…
waleedlatif1 Aug 29, 2026
a946ebd
merge: govern workspace creation, the member directory and CLI access
waleedlatif1 Aug 29, 2026
880f24d
merge: govern knowledge base creation, uploads and connector sources
waleedlatif1 Aug 29, 2026
21020ca
feat(permission-groups): annotate workflow operations and close the p…
waleedlatif1 Aug 29, 2026
c76129f
merge: govern table creation, table export and bulk file download
waleedlatif1 Aug 29, 2026
7d4d405
merge: annotate workflow operations and validate blocks at persist time
waleedlatif1 Aug 29, 2026
dacf676
feat(permission-groups): enforce the four declared-but-unwired capabi…
waleedlatif1 Aug 29, 2026
9b2483f
chore(permission-groups): re-record the settings page module baseline
waleedlatif1 Aug 29, 2026
e36105c
merge: govern execution cost, personal credentials, webhooks and tool…
waleedlatif1 Aug 29, 2026
015fde2
feat(permission-groups): require a capability on every workspace oper…
waleedlatif1 Aug 29, 2026
31cce78
refactor(permission-groups): one way to ask whether a capability is w…
waleedlatif1 Aug 29, 2026
85975b4
docs(skills): add add-permission-group-item and validate-permission-g…
waleedlatif1 Aug 29, 2026
fa155e3
docs(skills): add and validate a permission-group item
waleedlatif1 Aug 29, 2026
fb3339d
refactor(permission-groups): remove the count-down mode and settle th…
waleedlatif1 Aug 29, 2026
10d8e79
perf(permission-groups): hoist the block-allowlist check out of the s…
waleedlatif1 Aug 29, 2026
a877371
refactor(permission-groups): one API for every capability gate
waleedlatif1 Aug 29, 2026
3466d27
merge: clean the permission-groups module and its audit
waleedlatif1 Aug 29, 2026
2c9c366
merge: route every capability decision through the shared assertion API
waleedlatif1 Aug 29, 2026
037b4e9
fix(permission-groups): stop capabilities refusing workflow runs
waleedlatif1 Aug 29, 2026
393d9f8
refactor(permission-groups): keep only the validators that outlive th…
waleedlatif1 Aug 29, 2026
1d17c78
merge: collapse the redundant permission-check validators
waleedlatif1 Aug 29, 2026
481146d
fix(permission-groups): close the defects an adversarial review found
waleedlatif1 Aug 30, 2026
145716a
Merge remote-tracking branch 'origin/staging' into feat/permission-gr…
waleedlatif1 Aug 30, 2026
5f190fb
refactor(permission-groups): route every config read through the requ…
waleedlatif1 Aug 30, 2026
e8b044a
test(permission-groups): cover the inbox, workflow-MCP, and Chat capa…
waleedlatif1 Aug 30, 2026
feb05aa
Merge branches 'pgx/memo' and 'pgx/tests' into feat/permission-groups…
waleedlatif1 Aug 30, 2026
d8dfb35
docs(permission-groups): tell admins what they are actually revoking
waleedlatif1 Aug 30, 2026
a7cebeb
refactor(permission-groups): remove indirection and close the audit's…
waleedlatif1 Aug 30, 2026
a9f1718
Merge branch 'pgx/docs' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
597a5e5
Merge branch 'pgx/module' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
681986c
refactor(permission-groups): drop the types.ts re-export shim
waleedlatif1 Aug 30, 2026
6ea2ed1
fix(permission-groups): enforce tables.use on the raw internal table …
waleedlatif1 Aug 30, 2026
0ee1f42
Merge branch 'pgx/tables' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
99483a6
test(permission-groups): make every operation fixture declare its cap…
waleedlatif1 Aug 30, 2026
246a866
Merge branch 'pgx/fixtures' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
a53e5b3
refactor(permission-groups): share the memo, the refusal sentence, an…
waleedlatif1 Aug 30, 2026
fdb0c21
Merge branch 'pgx/leftovers' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
6eab5a4
test(knowledge): assert the shared connector refusal sentence
waleedlatif1 Aug 30, 2026
4254b17
fix(permission-groups): enforce declared capabilities on the v1 publi…
waleedlatif1 Aug 30, 2026
faff3bd
Merge branch 'pgx/v1' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
c4c4a11
refactor(permission-groups): keep the authorization funnel's module g…
waleedlatif1 Aug 30, 2026
9e75a43
Merge branch 'pgx/graph' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
cb412fc
refactor(permission-groups): keep the universal route wrapper's graph…
waleedlatif1 Aug 30, 2026
35807ef
fix(permission-groups): keep a workspace API key out of its creator's…
waleedlatif1 Aug 30, 2026
a87e28c
Merge branch 'pgx/principal' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
d55446c
fix(permission-groups): make the key-creator substitution structurall…
waleedlatif1 Aug 30, 2026
413d851
docs(skills): realign add-permission-group-item with the refactored code
waleedlatif1 Aug 30, 2026
55b5356
docs(permission-groups): state what the executor exemption actually does
waleedlatif1 Aug 30, 2026
ce90988
docs(skills): realign validate-permission-group-item with the refacto…
waleedlatif1 Aug 30, 2026
7a22b63
Merge branch 'pgx/sweep' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
f93bce7
fix(permission-groups): enforce secrets.manage and integrations.manag…
waleedlatif1 Aug 30, 2026
852267b
test(permission-groups): pin the secrets.manage gate on the environme…
waleedlatif1 Aug 30, 2026
fe4edd0
fix(permission-groups): gate the CLI key mint on api_keys.manage
waleedlatif1 Aug 30, 2026
3681c0e
test(permission-groups): pin the integrations.manage gate on current-…
waleedlatif1 Aug 30, 2026
bc433f3
Merge branch 'pgx/cli' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
f4eac12
Merge branch 'pgx/secrets' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
4deb73f
fix(permission-groups): close the cost oracle and two capability-befo…
waleedlatif1 Aug 30, 2026
54f5153
Merge branch 'pgx/proj' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
8aaa3e4
fix(permission-groups): make an operation the audit cannot read a fai…
waleedlatif1 Aug 30, 2026
a2a8953
fix(permission-groups): gate the session arm of the OAuth credentials…
waleedlatif1 Aug 30, 2026
50e7c57
Merge branch 'pgx/audit' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
e7a886f
fix(permission-groups): project logs on the v2 surface and close its …
waleedlatif1 Aug 30, 2026
1729b69
test(oauth): mock the organization lookup the new capability gate makes
waleedlatif1 Aug 30, 2026
40149f3
Merge branch 'pgx/logs2' into feat/permission-groups-coverage
waleedlatif1 Aug 30, 2026
3f74686
fix(permission-groups): project run cost on the v2 workflow-runs listing
waleedlatif1 Aug 30, 2026
100f919
test(permission-groups): share the v1 ambient request-admission mocks
waleedlatif1 Aug 31, 2026
dbf04d5
refactor(permission-groups): one builder for the internal capability-…
waleedlatif1 Aug 31, 2026
f55c2b4
test(permission-groups): drop the duplicated v1 log-projection gate t…
waleedlatif1 Aug 31, 2026
26b9eae
docs(skills): trim the permission-group-item skills to their load-bea…
waleedlatif1 Aug 31, 2026
98ce514
test(v1): make the mocked middleware helpers mirror the real ones
waleedlatif1 Aug 31, 2026
62fcc19
refactor(permission-groups): converge the workspace-else-organization…
waleedlatif1 Aug 31, 2026
405ff13
refactor(table): delete the dead ungated table access checks
waleedlatif1 Aug 31, 2026
061d6a1
refactor(permission-groups): fold the single-caller unverified contex…
waleedlatif1 Aug 31, 2026
b5f789b
Merge branch 'pgx/c2' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
e9c4f21
docs(permission-groups): correct the organization-scope call-site claim
waleedlatif1 Aug 31, 2026
ee7a841
Merge branch 'pgx/c1' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
12e616d
chore(permission-groups): apply the /cleanup pass findings
waleedlatif1 Aug 31, 2026
23a6d17
docs(skills): patch six omissions in the permission-group skills
waleedlatif1 Aug 31, 2026
1285a08
fix(permission-groups): say where hideOrgMemberDirectory is read from
waleedlatif1 Aug 31, 2026
a5da277
fix(logs): project cost and execution payloads on the run-detail and …
waleedlatif1 Aug 31, 2026
02bee70
fix(permission-groups): let the fail-closed api-keys policy heal
waleedlatif1 Aug 31, 2026
806848e
fix(v1): run the personal-key group check behind the role check
waleedlatif1 Aug 31, 2026
414302c
fix(audits): close the user-scope gap in check:capability-subject
waleedlatif1 Aug 31, 2026
eb5a07e
test(logs): cover the run-detail, snapshot and @log-mention projections
waleedlatif1 Aug 31, 2026
a51592a
Merge branch 'pgx/p2' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
5b384d7
Merge branch 'pgx/p1' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
f328c91
Merge remote-tracking branch 'origin/staging' into feat/permission-gr…
waleedlatif1 Aug 31, 2026
94a1cc1
feat(permission-groups): declare capabilities on the operations stagi…
waleedlatif1 Aug 31, 2026
ed1e3ca
Merge remote-tracking branch 'origin/staging' into feat/permission-gr…
waleedlatif1 Aug 31, 2026
492018d
feat(permission-groups): declare a capability on the unified selector…
waleedlatif1 Aug 31, 2026
ad07b52
fix(permission-groups): gate copilot.use on the workspace a chat land…
waleedlatif1 Aug 31, 2026
884fbe5
fix(permission-groups): close reactivation and creation gaps in the c…
waleedlatif1 Aug 31, 2026
6cbebf1
fix(permission-groups): exempt retired entry points and normalize all…
waleedlatif1 Aug 31, 2026
4b51925
fix(workflows): judge an import's blocks against the caller's own group
waleedlatif1 Aug 31, 2026
bd0d32d
fix(credentials): assert the personal-credential gate on the branch t…
waleedlatif1 Aug 31, 2026
8b516d9
fix(billing): apply the group's personal-key refusal to workspace bil…
waleedlatif1 Aug 31, 2026
50dc1da
fix(permission-groups): close the spend leaks the log projections lef…
waleedlatif1 Aug 31, 2026
eaf512d
fix(permission-groups): align the resource-level capability sites wit…
waleedlatif1 Aug 31, 2026
3576df4
fix(access-control): correct three affordance and documentation defects
waleedlatif1 Aug 31, 2026
1822355
fix(audits): close two renames that made the graph and subject audits…
waleedlatif1 Aug 31, 2026
3345f27
fix(enrichments): state the actorless dispatch's null subject explicitly
waleedlatif1 Aug 31, 2026
4a3f455
Merge branch 'pgx/r2' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
6eba056
Merge branch 'pgx/r3' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
b719016
Merge branch 'pgx/r4' into feat/permission-groups-coverage
waleedlatif1 Aug 31, 2026
2c2c815
test(v1): teach the import suite's middleware mock the governed-subje…
waleedlatif1 Aug 31, 2026
f9f8b01
Merge remote-tracking branch 'origin/staging' into feat/permission-gr…
waleedlatif1 Sep 1, 2026
bdeb07a
feat(permission-groups): declare a capability on the organization bil…
waleedlatif1 Sep 1, 2026
1a387ed
fix(permission-groups): gate selector execution on allowedIntegration…
waleedlatif1 Sep 1, 2026
45b4bed
fix(permission-groups): key the table-import capability re-check on t…
waleedlatif1 Sep 1, 2026
f73c019
fix(permission-groups): gate table enrichments on the acting person, …
waleedlatif1 Sep 1, 2026
24e5d6b
fix(v1): attribute a workspace-key table delete to the system actor
waleedlatif1 Sep 1, 2026
f47a9e1
fix(permission-groups): carry the capability detail code on the works…
waleedlatif1 Sep 1, 2026
4413130
fix(permission-groups): canonicalize each integration policy before i…
waleedlatif1 Sep 1, 2026
87eb783
docs(skills): chain the permission-group verification commands after …
waleedlatif1 Sep 1, 2026
3398257
fix(access-control): normalize block-type casing before resolving its…
waleedlatif1 Sep 1, 2026
f34dae8
perf(logs): resolve the permission-group config only for cost-selecti…
waleedlatif1 Sep 1, 2026
c1a0602
refactor(permission-groups): name the canonicalize-then-intersect rul…
waleedlatif1 Sep 1, 2026
0b7fc4b
test(permission-groups): pin block-type casing and the stats config-l…
waleedlatif1 Sep 1, 2026
5d0452f
Merge branch 'pgx/s2' into feat/permission-groups-coverage
waleedlatif1 Sep 1, 2026
4ff4ced
docs(db): state the deploy-window semantics of the governed-subject c…
waleedlatif1 Sep 1, 2026
964bb6d
fix(permission-groups): require the governed subject on every table d…
waleedlatif1 Sep 1, 2026
eacf218
fix(permission-groups): stop a deleted account's table runs instead o…
waleedlatif1 Sep 1, 2026
2f8d064
test(permission-groups): pin the governed subject end to end
waleedlatif1 Sep 1, 2026
954db6e
docs(skills): fix two checklist semantics bugs in the permission-grou…
waleedlatif1 Sep 1, 2026
bfd0398
feat(permission-groups): generate the access-control successor map fr…
waleedlatif1 Sep 1, 2026
3b36667
fix(permission-groups): canonicalize both policy layers before inters…
waleedlatif1 Sep 1, 2026
ad317b5
fix(selectors): gate a selector on the resource it reaches, not the c…
waleedlatif1 Sep 1, 2026
6e1b053
refactor(copilot): read the chat capability off its operation declara…
waleedlatif1 Sep 1, 2026
2d20245
fix(api): answer an unresolvable workspace actor and a denied workspa…
waleedlatif1 Sep 1, 2026
bf9cdd7
test(v1): pin the workspace-actor projection
waleedlatif1 Sep 1, 2026
3e30fe3
Merge branch 'pgx/t2' into feat/permission-groups-coverage
waleedlatif1 Sep 1, 2026
e84519e
fix(permission-groups): read the successor map by its own keys only
waleedlatif1 Sep 1, 2026
ee40593
fix(table): govern CSV-import auto-fire by the person the route alrea…
waleedlatif1 Sep 1, 2026
66056ad
fix(access-control): keep superseded blocks out of the editor's allow…
waleedlatif1 Sep 1, 2026
8a3c289
fix(table): carry the acting person into the backfill's downstream ca…
waleedlatif1 Sep 1, 2026
ae8785b
fix(copilot): capture prompt telemetry only once the turn is allowed …
waleedlatif1 Sep 1, 2026
f4768b3
fix(table): stop a queued cell whose dispatch was cancelled
waleedlatif1 Sep 1, 2026
8d29616
fix(selectors): gate raw-context and api-key selectors on their integ…
waleedlatif1 Sep 1, 2026
b028ce6
fix(table): run a drained pre-stamp under the subject that stamped it
waleedlatif1 Sep 1, 2026
78744eb
test(table): pin the governed subject at the import route, the deleti…
waleedlatif1 Sep 1, 2026
77c5cd4
Merge branch 'pgx/u2' into feat/permission-groups-coverage
waleedlatif1 Sep 1, 2026
b8e7f4a
Merge remote-tracking branch 'origin/staging' into feat/permission-gr…
waleedlatif1 Sep 1, 2026
b78516d
Merge remote-tracking branch 'origin/staging' into feat/permission-gr…
waleedlatif1 Sep 1, 2026
f40821e
fix(db): make 0316's pre-COMMIT section replay-safe
waleedlatif1 Sep 1, 2026
a1ded74
fix(table): require the governed subject on the add-output payload
waleedlatif1 Sep 1, 2026
e3052e6
fix(table): derive the CSV import governed subject from the auth type
waleedlatif1 Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
258 changes: 258 additions & 0 deletions .agents/skills/add-permission-group-item/SKILL.md

Large diffs are not rendered by default.

154 changes: 154 additions & 0 deletions .agents/skills/validate-permission-group-item/SKILL.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .claude/skills/add-permission-group-item
1 change: 1 addition & 0 deletions .claude/skills/validate-permission-group-item
2 changes: 1 addition & 1 deletion apps/docs/openapi-v2-billing.json
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@
"description": "Human-readable explanation of the error."
},
"details": {
"description": "Structured error details. On a `403` whose cause a caller can act on, this carries a `code` from a closed set:\n- `INSUFFICIENT_WORKSPACE_ROLE` — The caller has access to the workspace but its role is below the one this operation requires.\n- `PERSONAL_API_KEYS_DISABLED` — The workspace's organization does not allow personal API keys. Use a workspace API key.\n- `WORKSPACE_KEY_OPERATION_NOT_PERMITTED` — This operation is not available to a workspace-scoped API key. Use a personal API key.\n- `PRINCIPAL_KIND_NOT_PERMITTED` — This operation does not accept the caller’s kind of API key.\n- `ORGANIZATION_MEMBERSHIP_REQUIRED` — The caller is not a member of the organization it named.\n- `ORGANIZATION_ADMIN_REQUIRED` — The caller is a member of the organization but not an admin or owner.\n- `ENTERPRISE_PLAN_REQUIRED` — The organization has no active enterprise subscription.\n- `ORGANIZATION_PLAN_REQUIRED` — The organization has no active organization subscription (Pro for Teams, Max for Teams, or Enterprise).\n- `AUDIT_LOGS_DISABLED` — Audit logging is not enabled for this deployment.\n- `SKILL_EDITOR_ACCESS_REQUIRED` — The caller can write in the workspace but is not an editor of this skill.\n- `SECRET_ADMIN_ACCESS_REQUIRED` — The caller can write in the workspace but is not an admin of this secret. Ask a workspace admin, or someone holding admin on the secret, to grant access or set the value.\n- `WORKSPACE_RESOURCE_LIMIT_REACHED` — The workspace already holds the maximum number of resources of this kind. Delete one, or contact Sim to raise the limit; the message names the ceiling.\n- `PUBLIC_SHARING_NOT_ALLOWED` — The workspace's organization does not permit sharing this resource publicly. An organization admin controls the policy.\n- `CREDENTIAL_ADMIN_ACCESS_REQUIRED` — The caller can reach the workspace but cannot administer this credential.\n- `MCP_SERVER_URL_NOT_ALLOWED` — The supplied MCP server URL is outside the allowed domains or resolves to an internal address.\n- `WORKSPACE_PLAN_CAPABILITY_REQUIRED` — The workspace's plan does not include a capability this request depends on. The message names the capability; upgrading the workspace's plan is the remedy.\n- `CHAT_AUTH_MODE_NOT_PERMITTED` — The workspace's permission group does not allow the chat authentication mode the request selected. A mode already saved on the deployment may still be re-saved; changing to a disallowed one cannot.\n- `CONNECTOR_MANAGED_RESOURCE_READ_ONLY` — This resource is managed by a knowledge base connector and cannot be edited directly. Change it at the source and re-sync, or exclude the document from the connector."
"description": "Structured error details. On a `403` whose cause a caller can act on, this carries a `code` from a closed set:\n- `INSUFFICIENT_WORKSPACE_ROLE` — The caller has access to the workspace but its role is below the one this operation requires.\n- `PERSONAL_API_KEYS_DISABLED` — The workspace's organization does not allow personal API keys. Use a workspace API key.\n- `WORKSPACE_KEY_OPERATION_NOT_PERMITTED` — This operation is not available to a workspace-scoped API key. Use a personal API key.\n- `PRINCIPAL_KIND_NOT_PERMITTED` — This operation does not accept the caller’s kind of API key.\n- `ORGANIZATION_MEMBERSHIP_REQUIRED` — The caller is not a member of the organization it named.\n- `ORGANIZATION_ADMIN_REQUIRED` — The caller is a member of the organization but not an admin or owner.\n- `ENTERPRISE_PLAN_REQUIRED` — The organization has no active enterprise subscription.\n- `ORGANIZATION_PLAN_REQUIRED` — The organization has no active organization subscription (Pro for Teams, Max for Teams, or Enterprise).\n- `AUDIT_LOGS_DISABLED` — Audit logging is not enabled for this deployment.\n- `SKILL_EDITOR_ACCESS_REQUIRED` — The caller can write in the workspace but is not an editor of this skill.\n- `SECRET_ADMIN_ACCESS_REQUIRED` — The caller can write in the workspace but is not an admin of this secret. Ask a workspace admin, or someone holding admin on the secret, to grant access or set the value.\n- `WORKSPACE_RESOURCE_LIMIT_REACHED` — The workspace already holds the maximum number of resources of this kind. Delete one, or contact Sim to raise the limit; the message names the ceiling.\n- `PUBLIC_SHARING_NOT_ALLOWED` — The workspace's organization does not permit sharing this resource publicly. An organization admin controls the policy.\n- `CREDENTIAL_ADMIN_ACCESS_REQUIRED` — The caller can reach the workspace but cannot administer this credential.\n- `MCP_SERVER_URL_NOT_ALLOWED` — The supplied MCP server URL is outside the allowed domains or resolves to an internal address.\n- `WORKSPACE_PLAN_CAPABILITY_REQUIRED` — The workspace's plan does not include a capability this request depends on. The message names the capability; upgrading the workspace's plan is the remedy.\n- `CHAT_AUTH_MODE_NOT_PERMITTED` — The workspace's permission group does not allow the chat authentication mode the request selected. A mode already saved on the deployment may still be re-saved; changing to a disallowed one cannot.\n- `CONNECTOR_MANAGED_RESOURCE_READ_ONLY` — This resource is managed by a knowledge base connector and cannot be edited directly. Change it at the source and re-sync, or exclude the document from the connector.\n- `PERMISSION_GROUP_CAPABILITY_BLOCKED` — The caller's permission group does not allow this capability. The message names it; an organization admin controls the group."
}
},
"required": ["code", "message"],
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/openapi-v2-files-audit.json
Original file line number Diff line number Diff line change
Expand Up @@ -2793,7 +2793,7 @@
"description": "Human-readable explanation of the error."
},
"details": {
"description": "Structured error details. On a `403` whose cause a caller can act on, this carries a `code` from a closed set:\n- `INSUFFICIENT_WORKSPACE_ROLE` — The caller has access to the workspace but its role is below the one this operation requires.\n- `PERSONAL_API_KEYS_DISABLED` — The workspace's organization does not allow personal API keys. Use a workspace API key.\n- `WORKSPACE_KEY_OPERATION_NOT_PERMITTED` — This operation is not available to a workspace-scoped API key. Use a personal API key.\n- `PRINCIPAL_KIND_NOT_PERMITTED` — This operation does not accept the caller’s kind of API key.\n- `ORGANIZATION_MEMBERSHIP_REQUIRED` — The caller is not a member of the organization it named.\n- `ORGANIZATION_ADMIN_REQUIRED` — The caller is a member of the organization but not an admin or owner.\n- `ENTERPRISE_PLAN_REQUIRED` — The organization has no active enterprise subscription.\n- `ORGANIZATION_PLAN_REQUIRED` — The organization has no active organization subscription (Pro for Teams, Max for Teams, or Enterprise).\n- `AUDIT_LOGS_DISABLED` — Audit logging is not enabled for this deployment.\n- `SKILL_EDITOR_ACCESS_REQUIRED` — The caller can write in the workspace but is not an editor of this skill.\n- `SECRET_ADMIN_ACCESS_REQUIRED` — The caller can write in the workspace but is not an admin of this secret. Ask a workspace admin, or someone holding admin on the secret, to grant access or set the value.\n- `WORKSPACE_RESOURCE_LIMIT_REACHED` — The workspace already holds the maximum number of resources of this kind. Delete one, or contact Sim to raise the limit; the message names the ceiling.\n- `PUBLIC_SHARING_NOT_ALLOWED` — The workspace's organization does not permit sharing this resource publicly. An organization admin controls the policy.\n- `CREDENTIAL_ADMIN_ACCESS_REQUIRED` — The caller can reach the workspace but cannot administer this credential.\n- `MCP_SERVER_URL_NOT_ALLOWED` — The supplied MCP server URL is outside the allowed domains or resolves to an internal address.\n- `WORKSPACE_PLAN_CAPABILITY_REQUIRED` — The workspace's plan does not include a capability this request depends on. The message names the capability; upgrading the workspace's plan is the remedy.\n- `CHAT_AUTH_MODE_NOT_PERMITTED` — The workspace's permission group does not allow the chat authentication mode the request selected. A mode already saved on the deployment may still be re-saved; changing to a disallowed one cannot.\n- `CONNECTOR_MANAGED_RESOURCE_READ_ONLY` — This resource is managed by a knowledge base connector and cannot be edited directly. Change it at the source and re-sync, or exclude the document from the connector."
"description": "Structured error details. On a `403` whose cause a caller can act on, this carries a `code` from a closed set:\n- `INSUFFICIENT_WORKSPACE_ROLE` — The caller has access to the workspace but its role is below the one this operation requires.\n- `PERSONAL_API_KEYS_DISABLED` — The workspace's organization does not allow personal API keys. Use a workspace API key.\n- `WORKSPACE_KEY_OPERATION_NOT_PERMITTED` — This operation is not available to a workspace-scoped API key. Use a personal API key.\n- `PRINCIPAL_KIND_NOT_PERMITTED` — This operation does not accept the caller’s kind of API key.\n- `ORGANIZATION_MEMBERSHIP_REQUIRED` — The caller is not a member of the organization it named.\n- `ORGANIZATION_ADMIN_REQUIRED` — The caller is a member of the organization but not an admin or owner.\n- `ENTERPRISE_PLAN_REQUIRED` — The organization has no active enterprise subscription.\n- `ORGANIZATION_PLAN_REQUIRED` — The organization has no active organization subscription (Pro for Teams, Max for Teams, or Enterprise).\n- `AUDIT_LOGS_DISABLED` — Audit logging is not enabled for this deployment.\n- `SKILL_EDITOR_ACCESS_REQUIRED` — The caller can write in the workspace but is not an editor of this skill.\n- `SECRET_ADMIN_ACCESS_REQUIRED` — The caller can write in the workspace but is not an admin of this secret. Ask a workspace admin, or someone holding admin on the secret, to grant access or set the value.\n- `WORKSPACE_RESOURCE_LIMIT_REACHED` — The workspace already holds the maximum number of resources of this kind. Delete one, or contact Sim to raise the limit; the message names the ceiling.\n- `PUBLIC_SHARING_NOT_ALLOWED` — The workspace's organization does not permit sharing this resource publicly. An organization admin controls the policy.\n- `CREDENTIAL_ADMIN_ACCESS_REQUIRED` — The caller can reach the workspace but cannot administer this credential.\n- `MCP_SERVER_URL_NOT_ALLOWED` — The supplied MCP server URL is outside the allowed domains or resolves to an internal address.\n- `WORKSPACE_PLAN_CAPABILITY_REQUIRED` — The workspace's plan does not include a capability this request depends on. The message names the capability; upgrading the workspace's plan is the remedy.\n- `CHAT_AUTH_MODE_NOT_PERMITTED` — The workspace's permission group does not allow the chat authentication mode the request selected. A mode already saved on the deployment may still be re-saved; changing to a disallowed one cannot.\n- `CONNECTOR_MANAGED_RESOURCE_READ_ONLY` — This resource is managed by a knowledge base connector and cannot be edited directly. Change it at the source and re-sync, or exclude the document from the connector.\n- `PERMISSION_GROUP_CAPABILITY_BLOCKED` — The caller's permission group does not allow this capability. The message names it; an organization admin controls the group."
}
},
"required": ["code", "message"],
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/openapi-v2-knowledge.json
Original file line number Diff line number Diff line change
Expand Up @@ -4499,7 +4499,7 @@
"description": "Human-readable explanation of the error."
},
"details": {
"description": "Structured error details. On a `403` whose cause a caller can act on, this carries a `code` from a closed set:\n- `INSUFFICIENT_WORKSPACE_ROLE` — The caller has access to the workspace but its role is below the one this operation requires.\n- `PERSONAL_API_KEYS_DISABLED` — The workspace's organization does not allow personal API keys. Use a workspace API key.\n- `WORKSPACE_KEY_OPERATION_NOT_PERMITTED` — This operation is not available to a workspace-scoped API key. Use a personal API key.\n- `PRINCIPAL_KIND_NOT_PERMITTED` — This operation does not accept the caller’s kind of API key.\n- `ORGANIZATION_MEMBERSHIP_REQUIRED` — The caller is not a member of the organization it named.\n- `ORGANIZATION_ADMIN_REQUIRED` — The caller is a member of the organization but not an admin or owner.\n- `ENTERPRISE_PLAN_REQUIRED` — The organization has no active enterprise subscription.\n- `ORGANIZATION_PLAN_REQUIRED` — The organization has no active organization subscription (Pro for Teams, Max for Teams, or Enterprise).\n- `AUDIT_LOGS_DISABLED` — Audit logging is not enabled for this deployment.\n- `SKILL_EDITOR_ACCESS_REQUIRED` — The caller can write in the workspace but is not an editor of this skill.\n- `SECRET_ADMIN_ACCESS_REQUIRED` — The caller can write in the workspace but is not an admin of this secret. Ask a workspace admin, or someone holding admin on the secret, to grant access or set the value.\n- `WORKSPACE_RESOURCE_LIMIT_REACHED` — The workspace already holds the maximum number of resources of this kind. Delete one, or contact Sim to raise the limit; the message names the ceiling.\n- `PUBLIC_SHARING_NOT_ALLOWED` — The workspace's organization does not permit sharing this resource publicly. An organization admin controls the policy.\n- `CREDENTIAL_ADMIN_ACCESS_REQUIRED` — The caller can reach the workspace but cannot administer this credential.\n- `MCP_SERVER_URL_NOT_ALLOWED` — The supplied MCP server URL is outside the allowed domains or resolves to an internal address.\n- `WORKSPACE_PLAN_CAPABILITY_REQUIRED` — The workspace's plan does not include a capability this request depends on. The message names the capability; upgrading the workspace's plan is the remedy.\n- `CHAT_AUTH_MODE_NOT_PERMITTED` — The workspace's permission group does not allow the chat authentication mode the request selected. A mode already saved on the deployment may still be re-saved; changing to a disallowed one cannot.\n- `CONNECTOR_MANAGED_RESOURCE_READ_ONLY` — This resource is managed by a knowledge base connector and cannot be edited directly. Change it at the source and re-sync, or exclude the document from the connector."
"description": "Structured error details. On a `403` whose cause a caller can act on, this carries a `code` from a closed set:\n- `INSUFFICIENT_WORKSPACE_ROLE` — The caller has access to the workspace but its role is below the one this operation requires.\n- `PERSONAL_API_KEYS_DISABLED` — The workspace's organization does not allow personal API keys. Use a workspace API key.\n- `WORKSPACE_KEY_OPERATION_NOT_PERMITTED` — This operation is not available to a workspace-scoped API key. Use a personal API key.\n- `PRINCIPAL_KIND_NOT_PERMITTED` — This operation does not accept the caller’s kind of API key.\n- `ORGANIZATION_MEMBERSHIP_REQUIRED` — The caller is not a member of the organization it named.\n- `ORGANIZATION_ADMIN_REQUIRED` — The caller is a member of the organization but not an admin or owner.\n- `ENTERPRISE_PLAN_REQUIRED` — The organization has no active enterprise subscription.\n- `ORGANIZATION_PLAN_REQUIRED` — The organization has no active organization subscription (Pro for Teams, Max for Teams, or Enterprise).\n- `AUDIT_LOGS_DISABLED` — Audit logging is not enabled for this deployment.\n- `SKILL_EDITOR_ACCESS_REQUIRED` — The caller can write in the workspace but is not an editor of this skill.\n- `SECRET_ADMIN_ACCESS_REQUIRED` — The caller can write in the workspace but is not an admin of this secret. Ask a workspace admin, or someone holding admin on the secret, to grant access or set the value.\n- `WORKSPACE_RESOURCE_LIMIT_REACHED` — The workspace already holds the maximum number of resources of this kind. Delete one, or contact Sim to raise the limit; the message names the ceiling.\n- `PUBLIC_SHARING_NOT_ALLOWED` — The workspace's organization does not permit sharing this resource publicly. An organization admin controls the policy.\n- `CREDENTIAL_ADMIN_ACCESS_REQUIRED` — The caller can reach the workspace but cannot administer this credential.\n- `MCP_SERVER_URL_NOT_ALLOWED` — The supplied MCP server URL is outside the allowed domains or resolves to an internal address.\n- `WORKSPACE_PLAN_CAPABILITY_REQUIRED` — The workspace's plan does not include a capability this request depends on. The message names the capability; upgrading the workspace's plan is the remedy.\n- `CHAT_AUTH_MODE_NOT_PERMITTED` — The workspace's permission group does not allow the chat authentication mode the request selected. A mode already saved on the deployment may still be re-saved; changing to a disallowed one cannot.\n- `CONNECTOR_MANAGED_RESOURCE_READ_ONLY` — This resource is managed by a knowledge base connector and cannot be edited directly. Change it at the source and re-sync, or exclude the document from the connector.\n- `PERMISSION_GROUP_CAPABILITY_BLOCKED` — The caller's permission group does not allow this capability. The message names it; an organization admin controls the group."
}
},
"required": ["code", "message"],
Expand Down
Loading