Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
'@red-hat-developer-hub/backstage-plugin-intelligent-assistant-backend': major
'@red-hat-developer-hub/backstage-plugin-intelligent-assistant-common': major
'@red-hat-developer-hub/backstage-plugin-intelligent-assistant': major
---

Breaking changes to MCP permissions using behavior-linked vocabulary rather than CRUD-linked vocabulary:

| Before (Lightspeed) | Before (Intelligent Assistant) | After |
| ----------------------- | ---------------------------------- | ------------------ |
| `lightspeed.mcp.read` | `intelligent-assistant.mcp.read` | `mcp.tools.use` |
| `lightspeed.mcp.manage` | `intelligent-assistant.mcp.manage` | `mcp.tools.manage` |

Removed permission CRUD action attributes; RBAC entries for these permission sets now use the generic `use` action.

Permission variable renamed from `iaMcpReadPermission` to `iaMcpUsePermission`; `iaMcpManagePermission` keeps its name.

Plugin documentation and example RBAC policy CSV updated to reflect the new MCP permission names.
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ Update permission names in your `rbac-policy.csv`:
| `lightspeed.chat.delete` | `intelligent-assistant.chat.manage` |
| `lightspeed.chat.update` | `intelligent-assistant.chat.manage` |
| `lightspeed.notebooks.use` | `intelligent-assistant.notebooks.use` |
| `lightspeed.mcp.read` | `intelligent-assistant.mcp.read` |
| `lightspeed.mcp.manage` | `intelligent-assistant.mcp.manage` |
| `lightspeed.mcp.read` | `mcp.tools.use` |
| `lightspeed.mcp.manage` | `mcp.tools.manage` |

#### 5. OFS dynamic plugin configuration

Expand Down Expand Up @@ -340,8 +340,8 @@ p, role:default/team_a, intelligent-assistant.chat.manage, use, allow
p, role:default/team_a, intelligent-assistant.notebooks.use, update, allow

# Required for MCP server management (if configured)
p, role:default/team_a, intelligent-assistant.mcp.read, read, allow
p, role:default/team_a, intelligent-assistant.mcp.manage, update, allow
p, role:default/team_a, mcp.tools.use, use, allow
p, role:default/team_a, mcp.tools.manage, use, allow

# Required for saved prompts
p, role:default/team_a, intelligent-assistant.saved-prompts.manage, update, allow
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import {
iaChatManagePermission,
iaChatUsePermission,
iaMcpManagePermission,
iaMcpReadPermission,
iaMcpUsePermission,
iaPermissions,
iaSavedPromptsManagePermission,
iaSkillsAccessPermission,
Expand Down Expand Up @@ -318,7 +318,7 @@ export async function createRouter(
router.get(
'/mcp-servers',
generalRateLimiter,
requirePermission(iaMcpReadPermission),
requirePermission(iaMcpUsePermission),
async (req, res) => {
try {
const { userEntityRef } = getIdentity(req);
Expand Down Expand Up @@ -359,7 +359,7 @@ export async function createRouter(
router.post(
'/mcp-servers/validate',
generalRateLimiter,
requirePermission(iaMcpReadPermission),
requirePermission(iaMcpUsePermission),
async (req, res) => {
try {
const { url, token } = req.body;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const iaChatUsePermission: BasicPermission;
export const iaMcpManagePermission: BasicPermission;

// @public
export const iaMcpReadPermission: BasicPermission;
export const iaMcpUsePermission: BasicPermission;

// @public
export const iaNotebooksUsePermission: BasicPermission;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,20 @@ export const iaChatManagePermission = createPermission({
attributes: {},
});

/** This permission is used to list configured MCP servers
/** This permission is used to use MCP tooling
* @public
*/
export const iaMcpReadPermission = createPermission({
name: 'intelligent-assistant.mcp.read',
attributes: {
action: 'read',
},
export const iaMcpUsePermission = createPermission({
name: 'mcp.tools.use',
attributes: {},
});

/** This permission is used to add, update, delete, and validate MCP servers
/** This permission is used to manage MCP tooling
* @public
*/
export const iaMcpManagePermission = createPermission({
name: 'intelligent-assistant.mcp.manage',
attributes: {
action: 'update',
},
name: 'mcp.tools.manage',
attributes: {},
});

/** This permission is used to access AI Notebooks features
Expand Down Expand Up @@ -97,7 +93,7 @@ export const iaPermissions = [
iaChatAccessPermission,
iaChatManagePermission,
iaChatUsePermission,
iaMcpReadPermission,
iaMcpUsePermission,
iaMcpManagePermission,
iaNotebooksUsePermission,
iaSavedPromptsManagePermission,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ p, role:default/team_a, intelligent-assistant.chat.manage, use, allow
p, role:default/team_a, intelligent-assistant.notebooks.use, update, allow

# Required for MCP server management (if configured)
p, role:default/team_a, intelligent-assistant.mcp.read, read, allow
p, role:default/team_a, intelligent-assistant.mcp.manage, update, allow
p, role:default/team_a, mcp.tools.use, use, allow
p, role:default/team_a, mcp.tools.manage, use, allow

# Required for saved prompts
p, role:default/team_a, intelligent-assistant.saved-prompts.manage, update, allow
Expand Down
4 changes: 2 additions & 2 deletions workspaces/intelligent-assistant/rbac-policy.csv
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
p, role:default/intelligent-assistant-user, intelligent-assistant.chat.access, use, allow
p, role:default/intelligent-assistant-user, intelligent-assistant.chat.use, use, allow
p, role:default/intelligent-assistant-user, intelligent-assistant.chat.manage, use, allow
p, role:default/intelligent-assistant-user, intelligent-assistant.mcp.read, read, allow
p, role:default/intelligent-assistant-user, intelligent-assistant.mcp.manage, update, allow
p, role:default/intelligent-assistant-user, mcp.tools.use, use, allow
p, role:default/intelligent-assistant-user, mcp.tools.manage, use, allow
p, role:default/intelligent-assistant-user, intelligent-assistant.notebooks.use, update, allow
p, role:default/intelligent-assistant-user, intelligent-assistant.skills.access, use, allow

Expand Down
Loading