Feature request: plugin update status + update mutation (parity with Docker container updates)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- graphql, typescript
- Ambito
- api, backend-api-design
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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).
- Lingua principale
- TypeScript
- Stelle
- 113
- Fork
- 22
- Merge medio
- 10h 40m
- PR unite (30g)
- 13
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di unraid/api
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
0xMiden/bridge-portal#132 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
area:tools bug good first issue help wanted priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
newrelic-experimental/preflight#793 · 1 commento ·