UNPKG

@puls-atlas/cli

Version:

The Puls Atlas CLI tool for managing Atlas projects

30 lines 1.17 kB
import { fetchWithTimeout } from '../request.js'; import { createRequestHeaders, hasResolvedAuth, resolveAccess } from './access.js'; const failDiscovery = (access, message) => ({ targets: null, warnings: [...access.warnings, message] }); export const discoverIndexes = async context => { const access = await resolveAccess(context); if (!access.node || !hasResolvedAuth(access)) { return failDiscovery(access, 'Elasticsearch index discovery is unavailable because node or authentication could not be resolved.'); } try { const response = await fetchWithTimeout(`${access.node}/_cat/indices?format=json&h=index`, { headers: createRequestHeaders(access), method: 'GET' }); if (!response.ok) { return failDiscovery(access, `Elasticsearch index discovery failed with status ${response.status}.`); } const indexes = await response.json(); return { targets: indexes.map(index => ({ name: index?.index ?? null })), warnings: access.warnings }; } catch (error) { return failDiscovery(access, `Could not inspect Elasticsearch indexes at ${access.node}: ${error.message}`); } };