The app-approval replace-set (MCPG-1649, PRD SM2): the full principal set the Server Management permissions modal submits, diffed server-side. Principals added receive the D7 default grant (`ToolMode = All`); retained principals are untouched (a modal save never resets a tool narrowing); removed principals lose their row; bool ReplaceAppApprovalsRequest.AllUsers transitions follow the everyone-revoke lifecycle.
CompanyCloudIntegrationAutomationSecurityLow-Code
Properties
Name
Type
Description
allUsers
boolean
Gets a value indicating whether the library is approved for everyone (the D6 app-approved population is then tenant-wide).
userIds
array
Gets the individually approved Platform user ids (never the Identity token `sub`). Duplicates and Guid Guid.Empty are rejected.
groupIds
array
Gets the approved Platform group ids (never Keycloak group ids or paths). Duplicates and Guid Guid.Empty are rejected.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/stormmcp/json-schema/stormmcp-replace-app-approvals-request-schema.json",
"title": "ReplaceAppApprovalsRequest",
"description": "The app-approval replace-set (MCPG-1649, PRD SM2): the full principal set the Server\nManagement permissions modal submits, diffed server-side. Principals added receive the D7\ndefault grant (`ToolMode = All`); retained principals are untouched (a modal save\nnever resets a tool narrowing); removed principals lose their row; bool ReplaceAppApprovalsRequest.AllUsers\ntransitions follow the everyone-revoke lifecycle.",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/stormmcp-approvals-api-openapi.yml#/components/schemas/ReplaceAppApprovalsRequest",
"required": [
"allUsers"
],
"type": "object",
"properties": {
"allUsers": {
"type": "boolean",
"description": "Gets a value indicating whether the library is approved for everyone (the D6\napp-approved population is then tenant-wide)."
},
"userIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "Gets the individually approved Platform user ids (never the Identity token\n`sub`). Duplicates and Guid Guid.Empty are rejected."
},
"groupIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "Gets the approved Platform group ids (never Keycloak group ids or paths).\nDuplicates and Guid Guid.Empty are rejected."
}
}
}
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.