Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Auto-detection of Elasticsearch and Kibana version being used

Chiusa
#766 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@JoshMock ci sta già lavorando.

Dal 13/10/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

Following the work done in #530, the CLI should be able to auto-detect what versions of Elasticsearch and Kibana it is targeting, so that the commands and flags exposed align with what features are available in that version.

Requirements

  • elasticsearch.version and kibana.version type changes from a semver string to string | { value: string, checked_ts: string } where value is the semver string (or serverless), and checked_ts is an ISO 8601 datetime string describing when that version was last checked.
  • The first time a CLI command is issued targeting an Elasticsearch or Kibana instance that has no version value set in its config file, it fetches the version first (GET / for Elasticsearch, GET /api/status for Kibana), setting it in the config using the { value, checked_ts } form. Once the sniff is complete, the original command runs as normal, with commands filtered for the detected version.
  • Running elastic status also sniffs and sets the same version information.
  • If checked_ts contains a date more than 30 days in the past, re-run the sniff and update the values.
  • A version set as a plain string is treated as user-pinned: it is never sniffed, refreshed, or overwritten. Only the { value, checked_ts } form expires.
  • An optional top-level detect_version: boolean key (applies to all contexts) controls detection. Defaults to true. If set to false, always skip the sniff step even if a version value is not set.
  • If the config file is not writable, the sniff step should be skipped.

Implementation details

  • Timing: the sniff runs during early config loading, before command registration, so availability filtering uses the detected version on the same invocation.
  • Skipped modes: never sniff on --help or --dry-run.
  • Credentials: secrets (including $(cmd:...) expressions) are resolved early only when a sniff is actually due. Invocations that do not need a sniff keep the current behavior from #706 (no early secret resolution).
  • Writing the config: update only the contexts.<name>.<service>.version node using yaml's parseDocument, preserving the user's comments and formatting. Do not round-trip through writeConfig/serializeConfig, which drops comments.
  • Sniff failure (network error, 401, 404, unparseable response): fail open. Print a one-line warning to stderr (suppressed with --json), continue without a version (all commands available), and write nothing. The next invocation retries.
  • HTTP: sniff requests set redirect: 'error', like the other credentialed requests.

authored by Pi Coding Agent (Claude Opus 5.5)

Lingua principale
TypeScript
Stelle
49
Fork
27
Merge medio
1g 23h
PR unite (30g)
67

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di elastic/cli

Tutte le issue di elastic/cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.