mirror of
https://github.com/jmagar/unraid-mcp.git
synced 2026-03-23 12:39:24 -07:00
feat: add 5 notification mutations + comprehensive refactors from PR review
New notification actions (archive_many, create_unique, unarchive_many, unarchive_all, recalculate) bring unraid_notifications to 14 actions. Also includes continuation of CodeRabbit/PR review fixes: - Remove redundant try-except in virtualization.py (silent failure fix) - Add QueryCache protocol with get/put/invalidate_all to core/client.py - Refactor subscriptions (manager, diagnostics, resources, utils) - Update config (logging, settings) for improved structure - Expand test coverage: http_layer, safety guards, schema validation - Minor cleanups: array, docker, health, keys tools Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -420,8 +420,8 @@ GRAPHQL_PUBSUB_CHANNEL {
|
||||
| `CreateApiKeyInput` | `apiKey.create` | `name!`, `description`, `roles[]`, `permissions[]`, `overwrite` |
|
||||
| `AddPermissionInput` | `addPermission` | `resource!`, `actions![]` |
|
||||
| `AddRoleForUserInput` | `addRoleForUser` | User + role assignment |
|
||||
| `AddRoleForApiKeyInput` | `apiKey.addRole` | API key + role assignment |
|
||||
| `RemoveRoleFromApiKeyInput` | `apiKey.removeRole` | API key + role removal |
|
||||
| `AddRoleForApiKeyInput` | `addRoleForApiKey` | API key + role assignment |
|
||||
| `RemoveRoleFromApiKeyInput` | `removeRoleFromApiKey` | API key + role removal |
|
||||
| `arrayDiskInput` | `addDiskToArray`, `removeDiskFromArray` | Disk assignment data |
|
||||
| `ConnectSignInInput` | `connectSignIn` | Connect credentials |
|
||||
| `EnableDynamicRemoteAccessInput` | `enableDynamicRemoteAccess` | Remote access config |
|
||||
@@ -619,7 +619,7 @@ The current MCP server has 10 tools (76 actions) after consolidation. The follow
|
||||
|--------------|---------------|---------------|
|
||||
| `list_api_keys()` | `apiKeys` query | Key inventory |
|
||||
| `get_api_key(id)` | `apiKey(id)` query | Key details |
|
||||
| `create_api_key(input)` | `apiKey.create` mutation | Key provisioning |
|
||||
| `create_api_key(input)` | `apiKey.create` mutation | Key provisioning — **already implemented** in `unraid_keys` |
|
||||
| `delete_api_keys(input)` | `apiKey.delete` mutation | Key cleanup |
|
||||
| `update_api_key(input)` | `apiKey.update` mutation | Key modification |
|
||||
|
||||
|
||||
@@ -713,6 +713,23 @@ type Mutation {
|
||||
addUser(input: addUserInput!): User
|
||||
deleteUser(input: deleteUserInput!): User
|
||||
}
|
||||
|
||||
type ApiKeyMutations {
|
||||
"""Create an API key"""
|
||||
create(input: CreateApiKeyInput!): ApiKey!
|
||||
|
||||
"""Add a role to an API key"""
|
||||
addRole(input: AddRoleForApiKeyInput!): Boolean!
|
||||
|
||||
"""Remove a role from an API key"""
|
||||
removeRole(input: RemoveRoleFromApiKeyInput!): Boolean!
|
||||
|
||||
"""Delete one or more API keys"""
|
||||
delete(input: DeleteApiKeyInput!): Boolean!
|
||||
|
||||
"""Update an API key"""
|
||||
update(input: UpdateApiKeyInput!): ApiKey!
|
||||
}
|
||||
```
|
||||
|
||||
> **Note:** The client schema above uses `ID!` for disk mutation args (e.g., `mountArrayDisk(id: ID!)`), but the actual server resolvers use `PrefixedID!`. The MCP tool code correctly uses `PrefixedID!` based on server source analysis.
|
||||
|
||||
1742
docs/superpowers/plans/2026-03-13-graphql-mutations-expansion.md
Normal file
1742
docs/superpowers/plans/2026-03-13-graphql-mutations-expansion.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user