model

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2026 License: AGPL-3.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TenMinute = -10 * time.Minute
	OneHour   = -1 * time.Hour
	FiveHour  = -5 * time.Hour
	OneDay    = -24 * time.Hour
	ThreeDay  = -72 * time.Hour
)

Time-range presets — match the mock at terminal/page.tsx ViewTime. Custom… is a placeholder; selecting it leaves start/end editable.

Variables

View Source
var (
	FocusPrimary   = ui.Adaptive(func(p ui.Palette) lipgloss.Color { return p.Accent })
	FocusSecondary = ui.Adaptive(func(p ui.Palette) lipgloss.Color { return p.Accent2 })

	StandardPrimary   = ui.Adaptive(func(p ui.Palette) lipgloss.Color { return p.Body })
	StandardSecondary = ui.Adaptive(func(p ui.Palette) lipgloss.Color { return p.Mute })
)

Theme-derived styles. All palette atoms come from pkg/ui — to swap a color, edit ui.Dark / ui.Light, not these vars.

View Source
var PromqlNavigationMap = []string{"query", "time", "dataset", "step", "table"}

Functions

func IteratorNext

func IteratorNext(iter *iterator.QueryIterator[QueryData, FetchResult]) tea.Cmd

func IteratorPrev

func IteratorPrev(iter *iterator.QueryIterator[QueryData, FetchResult]) tea.Cmd

func NewFetchTask

func NewFetchTask(profile config.Profile, query string, startTime string, endTime string) tea.Cmd

func NewPromqlFetchTask

func NewPromqlFetchTask(profile config.Profile, expr, dataset, step, startTime, endTime string, instant bool) tea.Cmd

NewPromqlFetchTask returns a Bubble Tea command that fetches PromQL data asynchronously.

func NewPromqlModeFetchTask

func NewPromqlModeFetchTask(profile config.Profile, expr, dataset, step, startTime, endTime, mode string, displayMode TimeDisplayMode) tea.Cmd

func NewSQLWindowFetchTask

func NewSQLWindowFetchTask(profile config.Profile, runID int, baseQuery string, baseOffset, windowSize, fetchLimit, windowIndex int, startTime string, endTime string) tea.Cmd

func NewTimeRangeModel

func NewTimeRangeModel() list.Model

NewTimeRangeModel creates new range list — narrow column, no title, no pagination, no filter. Title is rendered by the modal wrapper.

func ResolvePromqlStep

func ResolvePromqlStep(step string, startTime, endTime time.Time) string

ResolvePromqlStep converts "auto" into a standard PromQL range-query step. Valid manual step values are returned unchanged; invalid values fall back to auto.

func RunQuery

func RunQuery(client *http.Client, profile *config.Profile, query string, startTime string, endTime string) (string, error)

func SavedQueriesMenu

func SavedQueriesMenu() *tea.Program

SavedQueriesMenu is a TUI which lists all available saved queries for the active user (only SQL queries )

Types

type FetchData

type FetchData struct {
	// contains filtered or unexported fields
}

type FetchResult

type FetchResult int

type Filter

type Filter struct {
	Version    string     `json:"version"`
	UserID     string     `json:"user_id"`
	StreamName string     `json:"stream_name"`
	FilterName string     `json:"filter_name"`
	FilterID   string     `json:"filter_id"`
	Query      Query      `json:"query"`
	TimeFilter TimeFilter `json:"time_filter"`
}

type FilterBuilder

type FilterBuilder struct {
	ID         string    `json:"id"`
	Combinator string    `json:"combinator"`
	Rules      []RuleSet `json:"rules"`
}

type Item

type Item struct {
	// contains filtered or unexported fields
}

Item represents the struct of the saved query item

func QueryToApply

func QueryToApply() Item

QueryToApply returns the selected saved query by user in the interactive list to apply

func QueryToDelete

func QueryToDelete() Item

QueryToDelete returns the selected saved query by user in the interactive list to delete

func (Item) Description

func (i Item) Description() string

func (Item) EndTime

func (i Item) EndTime() string

func (Item) FilterValue

func (i Item) FilterValue() string

func (Item) SavedQueryID

func (i Item) SavedQueryID() string

func (Item) StartTime

func (i Item) StartTime() string

func (Item) Stream

func (i Item) Stream() string

func (Item) Title

func (i Item) Title() string

type Mode

type Mode int

type PromqlFetchData

type PromqlFetchData struct {
	// contains filtered or unexported fields
}

PromqlFetchData is the message returned by NewPromqlFetchTask.

type PromqlModel

type PromqlModel struct {
	// contains filtered or unexported fields
}

PromqlModel is the Bubble Tea model for interactive PromQL queries.

func NewPromqlModel

func NewPromqlModel(profile config.Profile, expr string, startTime, endTime time.Time, step, dataset string, instant bool) PromqlModel

func (PromqlModel) Init

func (m PromqlModel) Init() tea.Cmd

func (PromqlModel) Update

func (m PromqlModel) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (PromqlModel) View

func (m PromqlModel) View() string

type Query

type Query struct {
	FilterType    string         `json:"filter_type"`
	FilterQuery   *string        `json:"filter_query,omitempty"`   // SQL query as string or null
	FilterBuilder *FilterBuilder `json:"filter_builder,omitempty"` // Builder or null
}

type QueryData

type QueryData struct {
	Fields  []string                 `json:"fields"`
	Records []map[string]interface{} `json:"records"`
}

type QueryModel

type QueryModel struct {
	// contains filtered or unexported fields
}

func NewQueryModel

func NewQueryModel(profile config.Profile, queryStr string, startTime, endTime time.Time) QueryModel

func (QueryModel) Init

func (m QueryModel) Init() tea.Cmd

func (QueryModel) Update

func (m QueryModel) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*QueryModel) UpdateTable

func (m *QueryModel) UpdateTable(data FetchData)

func (*QueryModel) UpdateTableColumns

func (m *QueryModel) UpdateTableColumns(schema []string, sample []map[string]interface{})

func (QueryModel) View

func (m QueryModel) View() string

type Rule

type Rule struct {
	ID       string `json:"id"`
	Field    string `json:"field"`
	Value    string `json:"value"`
	Operator string `json:"operator"`
}

type RuleSet

type RuleSet struct {
	ID         string `json:"id"`
	Combinator string `json:"combinator"`
	Rules      []Rule `json:"rules"`
}

type StatusBar

type StatusBar struct {
	Info  string // optional info string (rows, etc.)
	Error string // error overrides Info on the right side
	// contains filtered or unexported fields
}

func NewStatusBar

func NewStatusBar(host string, width int) StatusBar

func (StatusBar) Init

func (m StatusBar) Init() tea.Cmd

func (*StatusBar) SetMode

func (m *StatusBar) SetMode(mode string)

SetMode lets callers update the MODE segment (e.g. "SQL" / "PromQL").

func (StatusBar) Update

func (m StatusBar) Update(_ tea.Msg) (tea.Model, tea.Cmd)

func (StatusBar) View

func (m StatusBar) View() string

type TableKeyMap

type TableKeyMap struct {
	RowUp       key.Binding
	RowDown     key.Binding
	PageUp      key.Binding
	PageDown    key.Binding
	PageFirst   key.Binding
	PageLast    key.Binding
	ScrollRight key.Binding
	ScrollLeft  key.Binding
	Filter      key.Binding
	FilterClear key.Binding
	FilterBlur  key.Binding
}

func (TableKeyMap) FullHelp

func (k TableKeyMap) FullHelp() [][]key.Binding

FullHelp returns keybindings for the expanded help view. It's part of the key.Map interface.

func (TableKeyMap) ShortHelp

func (k TableKeyMap) ShortHelp() []key.Binding

ShortHelp returns keybindings to be shown in the mini help view. It's part of the key.Map interface.

type TextAreaHelpKeys

type TextAreaHelpKeys struct{}

func (TextAreaHelpKeys) FullHelp

func (k TextAreaHelpKeys) FullHelp() [][]key.Binding

FullHelp returns keybindings for the expanded help view. It's part of the key.Map interface.

func (TextAreaHelpKeys) ShortHelp

func (k TextAreaHelpKeys) ShortHelp() []key.Binding

ShortHelp returns keybindings to be shown in the mini help view. It's part of the key.Map interface.

type TimeDisplayMode

type TimeDisplayMode string
const (
	// TimeDisplayLocal renders result timestamps in the selected local zone.
	TimeDisplayLocal TimeDisplayMode = "local"
	// TimeDisplayUTC renders result timestamps in UTC.
	TimeDisplayUTC TimeDisplayMode = "utc"
)

type TimeFilter

type TimeFilter struct {
	To   string `json:"to"`
	From string `json:"from"`
}

type TimeInputModel

type TimeInputModel struct {
	// contains filtered or unexported fields
}

func NewTimeInputModel

func NewTimeInputModel(startTime, endTime time.Time) TimeInputModel

NewTimeInputModel creates a new model

func (*TimeInputModel) DisplayMode

func (m *TimeInputModel) DisplayMode() TimeDisplayMode

func (*TimeInputModel) EndValueUtc

func (m *TimeInputModel) EndValueUtc() string

func (*TimeInputModel) FocusEnd

func (m *TimeInputModel) FocusEnd()

FocusEnd jumps directly to the end-time field — used by instant mode.

func (TimeInputModel) Init

func (m TimeInputModel) Init() tea.Cmd

func (*TimeInputModel) Navigate

func (m *TimeInputModel) Navigate(key tea.KeyMsg)

func (*TimeInputModel) SetDisplayMode

func (m *TimeInputModel) SetDisplayMode(mode TimeDisplayMode)

func (*TimeInputModel) SetEnd

func (m *TimeInputModel) SetEnd(t time.Time)

func (*TimeInputModel) SetInstant

func (m *TimeInputModel) SetInstant(v bool)

SetInstant switches between range (start+end) and instant (end only) mode.

func (*TimeInputModel) SetStart

func (m *TimeInputModel) SetStart(t time.Time)

func (*TimeInputModel) StartValueUtc

func (m *TimeInputModel) StartValueUtc() string

func (*TimeInputModel) SyncPreset

func (m *TimeInputModel) SyncPreset()

func (TimeInputModel) Update

func (m TimeInputModel) Update(msg tea.Msg) (TimeInputModel, tea.Cmd)

func (TimeInputModel) View

func (m TimeInputModel) View() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL