Feature request: plugin update status + update mutation (parity with Docker container updates)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- graphql, typescript
- Área
- api, backend-api-design
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- TypeScript
- Estrellas
- 113
- Forks
- 22
- Merge medio
- 10 h 40 min
- PR fusionados (30 d)
- 13
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de unraid/api
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Todos los issues de unraid/api
Issues similares
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100