Problem
Plugin overview pages (e.g. https://kestra.io/plugins/plugin-gcp) only show versions ≥ 1.0.0. All pre-1.0.0 releases are silently filtered out. A user on Kestra 0.22 looking for the compatible plugin-gcp release would have no way to find it from the docs.
Root cause
Two issues compound each other:
1. src/pages/api/github-releases.ts lines 51–54 applies a hard major >= 1 filter after fetching GitHub releases:
.filter((v) => {
const major = parseInt(v.version.split(".")[0])
return !isNaN(major) && major >= 1
})
This drops every 0.x.x tag, including the entire pre-1.0 history of plugins like plugin-gcp (which had releases from v0.1.22 through v0.24.0).
2. The kestra-io_plugin-artifacts Elasticsearch index (confirmed via Kibana) has no entries for plugin-gcp, so the minCoreCompatibilityVersion enrichment in fetchPluginPageData.ts always returns null — for every version, old and new alike.
Expected behavior
All published, non-draft releases should appear in the version list, each annotated with its minCoreCompatibilityVersion. For example:
| Plugin version |
Min Kestra version |
| v0.22.0 |
0.22.0 |
| v0.21.2 |
0.21.0 |
| v0.20.0 |
0.20.0 |
| … |
… |
Fix
In github-releases.ts: remove the major >= 1 guard. The only remaining filter should be !release.draft.
In fetchPluginPageData.ts: add a fallback for pre-1.0.0 versions not present in the artifacts index. For pre-1.0.0 releases the versioning convention was strict — plugin 0.X.Y always required Kestra 0.X.* — so minCoreCompatibilityVersion can be derived:
if (!v.minCoreCompatibilityVersion) {
const parts = v.version.split(".")
if (parts.length >= 2 && parseInt(parts[0]) === 0) {
v.minCoreCompatibilityVersion = `0.${parts[1]}.0`
}
}
This covers e.g. plugin-gcp 0.22.4 → min Kestra 0.22.0.
If the version list becomes very long, the UI already has a "Previous Versions" collapsible section — no UI changes needed.
Note on api.kestra.io
Post-1.0.0 versions (where plugin and Kestra versions diverged, e.g. plugin-gcp 2.3.0 requires Kestra 1.3.13) cannot be derived from the version number alone. Those require the plugin-artifacts index to be populated for plugin-gcp — that is a separate data issue on api.kestra.io.
Problem
Plugin overview pages (e.g. https://kestra.io/plugins/plugin-gcp) only show versions ≥ 1.0.0. All pre-1.0.0 releases are silently filtered out. A user on Kestra 0.22 looking for the compatible plugin-gcp release would have no way to find it from the docs.
Root cause
Two issues compound each other:
1.
src/pages/api/github-releases.tslines 51–54 applies a hardmajor >= 1filter after fetching GitHub releases:This drops every
0.x.xtag, including the entire pre-1.0 history of plugins like plugin-gcp (which had releases fromv0.1.22throughv0.24.0).2. The
kestra-io_plugin-artifactsElasticsearch index (confirmed via Kibana) has no entries for plugin-gcp, so theminCoreCompatibilityVersionenrichment infetchPluginPageData.tsalways returns null — for every version, old and new alike.Expected behavior
All published, non-draft releases should appear in the version list, each annotated with its
minCoreCompatibilityVersion. For example:Fix
In
github-releases.ts: remove themajor >= 1guard. The only remaining filter should be!release.draft.In
fetchPluginPageData.ts: add a fallback for pre-1.0.0 versions not present in the artifacts index. For pre-1.0.0 releases the versioning convention was strict — plugin0.X.Yalways required Kestra0.X.*— sominCoreCompatibilityVersioncan be derived:This covers e.g. plugin-gcp
0.22.4→ min Kestra0.22.0.If the version list becomes very long, the UI already has a "Previous Versions" collapsible section — no UI changes needed.
Note on api.kestra.io
Post-1.0.0 versions (where plugin and Kestra versions diverged, e.g. plugin-gcp
2.3.0requires Kestra1.3.13) cannot be derived from the version number alone. Those require theplugin-artifactsindex to be populated for plugin-gcp — that is a separate data issue on api.kestra.io.