Feature request: plugin update status + update mutation (parity with Docker container updates)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- graphql, typescript
- Domain
- api, backend-api-design
Research direction
Start by tracing the existing installPlugin mutation, Plugin schema, PluginInstallOperation, and Docker update-status and update mutation patterns. Review how the webgui re-runs a plugin's .plg URL, then determine the needed schema and resolver entry points. Done means clients can read plugin update status and invoke individual or all-plugin updates with operation tracking comparable to Docker.
Written by the indexing model from the issue text.
Description
Context
Third-party clients (mobile/desktop dashboards, monitoring tools) currently can't tell users when an installed Unraid plugin has a newer .plg version available. The only programmatic install path today is installPlugin(input: InstallPluginInput!): PluginInstallOperation!, which requires the caller to already know the URL of a newer release.
Current schema
type Plugin {
name: String!
version: String!
hasApiModule: Boolean
hasCliModule: Boolean
}
No latestVersion, no updateAvailable, no equivalent of the Docker update-status surface.
Existing pattern that works well — Docker
The Docker side already solves this cleanly:
enum UpdateStatus { UP_TO_DATE UPDATE_AVAILABLE REBUILD_READY UNKNOWN }
type ExplicitStatusItem { name: String! updateStatus: UpdateStatus! }
type Docker { containerUpdateStatuses: [ExplicitStatusItem!]! }
type DockerMutations {
updateContainer(id: PrefixedID!): DockerContainer!
updateAllContainers: [DockerContainer!]!
}
Clients can render a "X updates available" badge and a one-tap update action without scraping registries.
Proposal — mirror for plugins
Either extend Plugin directly:
type Plugin {
# … existing fields
latestVersion: String
updateStatus: UpdateStatus
}
…or add a parallel query field analogous to containerUpdateStatuses:
type Query {
pluginUpdateStatuses: [ExplicitStatusItem!]!
}
Plus a mutation, reusing the existing PluginInstallOperation tracking:
type UnraidPluginsMutations {
updatePlugin(name: String!): PluginInstallOperation!
updateAllPlugins: [PluginInstallOperation!]!
}
Why this matters
Plugin updates today require users to visit Community Applications or each plugin's source URL manually. A schema-level surface unlocks "managed-from-anywhere" parity with the Docker experience the API already provides — and the implementation can reuse the existing .plg re-install path (Unraid's webgui already updates by re-running the .plg from the URL it has).
- Dominant language
- TypeScript
- Stars
- 113
- Forks
- 22
- Avg merge
- 10h 40m
- Merged PRs (30d)
- 13
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from unraid/api
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·